[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-smalltalk] Any objections on switching to git?

From: Paolo Bonzini
Subject: [Help-smalltalk] Any objections on switching to git?
Date: Tue, 20 Mar 2007 11:22:08 +0100
User-agent: Thunderbird (Macintosh/20070221)

I have recently been considering using git instead of arch
to manage GNU lightning and GNU Smalltalk.  I even contributed
some patches to make it easier to use for projects with long-term
"work on the side".

The Smalltalk archive seems to be "corrupted" now, according to
arch, and this "feature" has prompted me to poll about a switch.

Benefits include:

1) extremely fast.  I'm pretty fed up of the cost of arch's
revision library slowness.  And sometimes I must admit I've
been sloppy on committing separate changesets only to avoid
that slowness.

2) more actively maintained.  Bzr is not supported yet at
Savannah and does not include retrocompatibility with arch
anyway, so why bother looking at it.

3) widely deployed.  Used by Xorg and Wine among others.

4) fast development pace.  1.5.0 had a lot of usability
improvements and I contributed some more to 1.5.1.

5) good conversion from existing arch repositories.  I also
contributed some improvements here in the last month, and
these are already in released versions.  So the conversion
from arch to git will be good quality.

Drawbacks include:

1) one new tool to learn for users.  I think that git is
to arch, as svn was to cvs, so it would be worthwhile anyway
to learn it.  I'll still provide the CVS archive anyway.

I put together this small guide (for not-yet-released 1.5.1):

   "cvs checkout":
   tla get address@hidden/smalltalk--devo--2.2 PATH
   --> git clone --depth=100 MY-URL PATH

   tla commit
   --> git-commit -a

   create long-lived branch off remote archive:
   tla register-archive MY-URL
   tla get address@hidden/smalltalk--devo--2.2 PATH
   cd PATH
   tla branch smalltalk--BRANCHNAME--0
   --> mkdir PATH && cd PATH
       git-remote add -f upstream MY-URL  
       git-checkout --track -b BRANCHNAME upstream/master

   merge upstream into branch:
   tla star-merge address@hidden/smalltalk--devo--2.2
   --> git-pull

   merge local branch into another branch:
   tla star-merge address@hidden/smalltalk--coolfeature--2.3
   --> git-pull . mybranch:destbranch

   register archive to cherry pick from:
   tla register-archive THEIR-URL
   --> git-remote add -f them THEIR-URL  

   cherry pick from branch:
   tla replay address@hidden/smalltalk--coolfeature--2.3--patch-NNN
   --> git-fetch them
       git-cherry-pick <sha1 of commit to pick>

and it does not seem to be *that much* harder.

2) Write your own here.

I plan to wait for a couple of days for objections.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]