[parenscript-devel] ParenScript now uses Git for version control

Travis Cross tc at travislists.com
Fri Aug 22 05:27:39 UTC 2008


Greetings all,

ParenScript has migrated [4] from Darcs to Git for version control.  The 
new repository can be cloned with the command:

git clone http://common-lisp.net/project/parenscript/git/parenscript

Development momentum and adoption has clearly favored Git in recent 
years; it is used on an increasing number of major projects (the Linux 
kernel, X.org, Rails, etc.) [2].  There is no risk of it being abandoned 
anytime soon.

If it were just that though, I probably wouldn't have gone through the 
pain of converting.  The ParenScript darcs repository has become quite 
slow, especially given its modest size.  There are a handful of complex 
merges in the history that can trigger an exponential meltdown in 
certain situations [1].  Avoiding more of these types of merges 
basically means giving up the unique features of Darcs anyway.

I'm a big fan of Darcs, but there is also much to love about Git.  Once 
I discovered the power of `git rebase -i`, I stopped missing Darcs. 
Here are approximate translations for common commands you'll use:

darcs get    | git clone
darcs rec    | git commit -v
darcs pull   | git pull
darcs send   | git format-patch && git send-email

Finally, I do understand that this change may be inconvenient for anyone 
with a lot of local unsubmitted patches [3].  This change should be best 
for the project in the long run.

Cheers,

-- Travis

[1] For example, try pulling or unpulling the patch from Tue Jun 26 
21:05:23 UTC 2007.

[2] In the Lisp world, Kevin Rosenberg has notably converted all of his 
project repositories to Git.

[3] If you find yourself in this position, you have a couple of options:

   * Clean up your changes and submit them upstream before your branch 
diverges too much.

   * Use darcs2git to convert your Darcs repository, then use git-rebase 
to splice your local changes onto the upstream repository.

[4] The old repository is still available for now, but it won't be 
receiving any more commits.



More information about the parenscript-devel mailing list