[crossfire] crossfire source code control systems

Raphaël Quinet raphael at gimp.org
Thu Aug 17 10:04:54 CDT 2006


On Tue, 15 Aug 2006 09:51:14 -0600, Alex Schultz <alex_sch at telus.net> wrote:
> Raphaël Quinet wrote:
> > On Tue, 15 Aug 2006 22:39:59 +0800, Lalo Martins <lalo.martins at gmail.com> wrote:
> >> On Tue, 15 Aug 2006 11:40:46 +0200, Raphaël Quinet wrote:
> >>> One thing that could be added in the "nice to have" list is the
> >>> support for migrating local branches to another repository.
> >>>       
> >> That's easy; all distributed revision control systems have that ability
[...]
> Well, most of them operate over ssh, so if you could make a branch on at
> a remote location, simply requires that you have permissions to the
> parent directory of where the branches are stored, in addition to the
> branches.

OK, maybe that would be sufficient.  One reason why I was asking if it is
possible to do some mirroring without requiring special actions from the
owner of a local branch was to see if some automatic mirroring could be
put in place easily.  i.e., something that could be done via a cron job
rather than something requiring manual intervention.

I forgot about some features that I would like to see in the "nice to have"
part of the comparison matrix: the ability to do partial checkouts or
partial updates.  Some systems based on atomic commits support partial
checkouts and/or updates but I do not know if this is the case for the
ones listed in the table.  CVS supports both.

By "partial checkout", I mean the ability to check out only a part of a
module.  For example, if you are not using your usual computer that has
all the modules checked out and you just want to fix a bug in one map, it
is possible to do a "cvs checkout crossfire-maps-bigworld/some/map".  Then
you only transfer what you need, make the changes and commit them without
having to check out the whole tree.

By "partial update", I mean the ability to synchronize only the files that
you want to update from the repository without having to update all files.
For example, if I am in a hurry while traveling or if I do not want to
spend too much time online, I can just go in my ~/cvs/crossfire directory
and do a "cvs checkout Changelog" to update only that file.  Then I have
a quick look at it and I can decide if I want to transfer anything else.
Even if some files are part of an atomic commit, some systems allow you to
synchronize only a subset of these files if you do not intend to work on
the other ones.

Partial checkouts and partial updates are more useful for those who want
to limit the amount of data to be transfered.  I do not know if these
features would be useful to all developers, but I use them rather often
so I am curious to know if the systems proposed as alternatives to CVS
are also able to do that.

-Raphaël



 Some distributed systems are able to init over ssh, however
> there are other systems that would require you to manually log in to the
> remote location and init a repository before you can push to it. Of
> course, it is trivial to make a miniature bash script a couple lines
> long to handle the logging in to the remote system to init the
> repository. Mercurial for example seems to supposed to be able to do
> that however at least in 0.9.1 seems to be buggy at initing a repository
> over ssh.
> 
> Alex Schultz
> 
> 
> 
> _______________________________________________
> crossfire mailing list
> crossfire at metalforge.org
> http://mailman.metalforge.org/mailman/listinfo/crossfire




More information about the crossfire mailing list