Skip to content

Latest commit

 

History

History
28 lines (22 loc) · 1.38 KB

whygit.md

File metadata and controls

28 lines (22 loc) · 1.38 KB

---+ Why did SWI-Prolog move to GIT?

The SWI-Prolog project moved from CVS to GIT because

* CVS started to become too slow
* CVS doesn't support staging very well. I like frequent commits to
synchronise between machines, commit work that is known to be
incomplete, etc. For GIT this is the natural model, for CVS it is
just too cumbersome.
* GIT allows for offline working.
* GIT checkouts are totally stand alone, making local branches much
easier as well as providing security against system failure, etc. 

Sofar, we are very happy with this move. Recent system failures have indeed proved that the distributed approach allows to restoring the central repository from the development systems easily.

---++ Why GIT instead of SVN, Mercurial, Bazaar, ...?

SVN is a traditional central SCM. We wanted a distributed SCM to accommodate a more flexible and robust development model. Mercurial and Bazaar would have been serious options. GIT was brought to my attention by Markus Triska. A brief study on its working made me confident that it is a simple, robust and open SCM. The only drawback was relatively poor support of Windows clients, but CVS server emulation could deal with that. In the meanwhile, SWI-Prolog uses GIT modules that are (were?) not supported by the CVS bridge, but luckily the Windows clients have evolved to a usable level.