[Pyrex] Source Control System
Robert Bradshaw
robertwb at math.washington.edu
Sat Oct 13 08:45:29 CEST 2007
On Oct 12, 2007, at 10:01 AM, Nicholas Bastin wrote:
> On 12 Oct , 2007, at 12:48 , Gustavo Sverzut Barbieri wrote:
>
>> As for SVN, it's an improvement, but I beg you to use a distributed
>> system (git, mercurial, bazar, ...) if you want to have a read-only
>> online repository, it will make easier for us to help and keep track
>> of changes. (we can also use the tool, instead of keeping our patches
>> in another tool like quilt, or other repository).
>
> If you have access to a central server, there's no reason not to use
> svn. IMO, the only reason to use a tool like git is if you don't
> have a central server with reasonable levels of access control.
> (Allow people to work on their own branches, but not merge to the
> release branches).
Even if one has access to a central server, there are several
advantages to using a distributed revision control system, several of
which I think are especially relevant to Pyrex as listed below:
Greg, correct me if I'm wrong, but I doubt you want the burden of
maintaining a central server (no matter how low the workload), let
alone one hosting several other peoples personal and experimental
branches. A distributed system also makes much more sense as there
are now (at least) two distributions--Pyrex and Cython--maintained by
different people with different goals and workflows but still much
overlap. Being able to pass changes back and forth will be mutually
beneficial, especially for things like bugfixes. On this point I
would argue that mercurial (which has been plenty fast for us on the
same codebase) would be a good choice for maximal interoperability
with the currently existing Cython repository, though any distributed
versioning system that can easily import and export patches would
work. (Another plug is that mercurial is written in Python, which
your are obviously intimately familiar with. Some people really like
GIT too, though I don't have much experience with it myself.) Picking
and choosing patches out of a branch is much more difficult with a
centralize system. The distributed way, ou would only pull in the
changes you want into your repo. Also, in terms of your concerns
about resource-forks, a distributed system would typically have far
fewer issues--the set of files you are editing *is* the repository,
there's no remote repository that you're syncing with all the time.
For example, with mercurial, type "hg init" and you now have a
repository in your working directory (with the history and comments
stored in an (invisible) .hg file). When you make some changes, type
"hg commit" to save them to the repo. You can back it up by simply
dragging the whole folder onto your zip drive like you do now and
publish the history by releasing the .hg repository with the Pyrex
sources (much easier than publishing a cvs or svn history for
instance). I think I have said enough...
A lot of people have expressed interest in your using a revision
control system, but as I have a large vested interest in you doing so
(It would help immensely in keeping Cython as compatible as possible
with Pyrex, and hopefully merging my improvements, at your
discretion, back to you) I would be willing to personally help you
set this up if you want (we actually already have a repository of
0.9.4.1a -> 0.9.5.1a -> 0.9.6.2 we've used to try and merge in your
changes into ours).
- Robert
More information about the Pyrex
mailing list