[Python-Dev] Source control tools (original) (raw)

Giovanni Bajo rasky at develer.com
Tue Jun 13 01:54:53 CEST 2006


Thomas Wouters <thomas at python.org> wrote:

It would be an important move towards world peace, if it didn't inspire whole new SCM-holy-wars :-) I have a fair bit of experience with different SCM (VC, source control tool, however you want to call them) so I'll take this opportunity to toss up some observations. Not that switching to another SCM will really solve the issues you are referring to, but I happen to think switching to another SCM is a great idea :)

Would you like to show me a comprehensive list of which procedures need to be improved, wrt the current workflow with SVN?

My own experience is that SVN is pretty bare-bone, that is it provides powerful low-level primitives, but basically no facility to abstract these primitives into higher-level concepts. Basically, it makes many things possible, but few convenient. I believe that tools like svnmerge show that it is indeed possible to build upon SVN to construct higher-level layers, but there's quite some work to do.

I would like also to note that SVK is sexy :)

The real reason I think we should consider other SCMs is because I fear what the history will look like when 3.0 is done. In Subversion, merges of branches don't preserve history -- you have to do it yourself. Given the way Subversion works, I don't think that'll really change;

Actually, Subversion is growing merge-tracking facilities, but it's a long way to what you'd like to happen with the Py3k history (and I don't think that's achievable whatsoever).

Git, the 'low level SCM' developed for the Linux kernel, is incredibly fast in normal operation and does branches quite well. I suspect much of its speed is lost on non-Linux platforms, though, and I don't know how well it works on Windows ;)

The higher-level part of GIT is written in a combination of bash and perl, with richful usage of textuils, coreutils and whatnot. It's basically "unportable" by design to native Windows. I guess the only sane approach is to use it under Cygwin. IMO this is a big no-go for real Windows developers.

Giovanni Bajo



More information about the Python-Dev mailing list