Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #47888
| From | Ben Finney <ben+python@benfinney.id.au> |
|---|---|
| Subject | Re: Version Control Software |
| Date | 2013-06-13 12:30 +1000 |
| References | <98c13a55-dbf2-46a7-a2aa-8c5f052ff375@googlegroups.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.3155.1371090658.3114.python-list@python.org> (permalink) |
cutems93 <ms2597@cornell.edu> writes: > I am looking for an appropriate version control software for python > development, and need professionals' help to make a good decision. > Currently I am considering four software: git, SVN, CVS, and > Mercurial. These days there is no good reason to use CVS nor Subversion for new projects. They are not distributed (the D in DVCS), and they have specific design flaws that often cause insidious problems with common version control workflows. As a salient example, branching and merging are so painful with these tools that many users have learned the terrible habit of never doing it at all. Bazaar, Git, and Mercurial are all excellent DVCS systems (and all have excellent branching and merging support). For someone new to version control, I would highly recommend Bazaar, or Mercurial if that's not an option. I would not recommend Git for new work. It helps that all of these are free software. Avoid proprietary tools for development work, especially tools that control access to your data. > What version control software do you like the most and why? Bazaar. It has, in my experience, by far the easiest default workflow to learn. It is also very flexible for the odd wrinkles in preferred workflow that most beginners don't even know enough to realise they have. (Examples of Bazaar features that make it IMO superior are: default to view only the main-line revisions without the “merge noise” that would happens with other VCSes; easily serve a branch from just about any shared file storage; easily choose a centralised repository for particular purposes without any other user needing to do anything different). Mercurial is relatively easy to learn, and full-featured; it is somewhat more restrictive than Bazaar but not enough to recommend against. Git is hugely capable and is the most popular, but still has some annoying restrictions (e.g. it can't hide merged revisions, encouraging poor practice like re-writing history when merging a branch). But my main reason to recommend against Git is that its native interface is far too baroque: it exposes its innards and requires the user to know a huge range of internal concepts to avoid making mistakes. You should be wary of GitHub, a very popular Git hosting site. It uses what amount to proprietary protocols, which encourage using GitHub's specific interface instead of native Git for your operations and hide a lot of the needless complexity; but this results in a VCS repository that is difficult to use *without* being tied to that specific site, killing one of the best reasons to use a DVCS in the first place. Gitorious is a Git hosting site that does not have this problem, and may for that reason be a good choice for hosting your Git repositories. It is also based on free software (unlike GitHub), so if the service goes away for any reason, anyone else can produce a functionally identical service from the same server code. This makes it a better bet for hosting your repositories. Neither Mercurial nor Bazaar suffer from Git's baroque complexity, and with Bazaar's command interface being IME the easiest and most intuitive to teach, I would recommend Bazaar for any new VCS user. A sad caveat, though: Bazaar suffers from a foolishly limited development pool (Canonical are the main copyright holder, and, instead of accepting contributions under the same license they grant to others, they obstinately insist on having special exclusive powers over the code). Also, Bazaar's early versions did not impress large projects like Linux or Python; improvements have long since erased the reasons for that, but too late for widespread popularity. So Bazaar's popularity never gained as much as Git or Mercurial. Worse, development of Bazaar appears to have stagnated at Canonical — and, because they insisted on being in a privileged copyright position, no-one else is in a good position to easily carry on development. Bazaar is still my recommendation of primary VCS tool, for its flexibility, speed, wealth of plug-ins, ability to view revision history sensible, and straightforward command interface. But you should go into it aware that it may be a little more difficult to find fellow users of Bazaar than of Mercurial. -- \ “The lift is being fixed for the day. During that time we | `\ regret that you will be unbearable.” —hotel, Bucharest | _o__) | Ben Finney
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Version Control Software cutems93 <ms2597@cornell.edu> - 2013-06-12 16:27 -0700
Re: Version Control Software Mark Janssen <dreamingforward@gmail.com> - 2013-06-12 16:36 -0700
Re: Version Control Software Joel Goldstick <joel.goldstick@gmail.com> - 2013-06-12 19:52 -0400
Re: Version Control Software Chris Angelico <rosuav@gmail.com> - 2013-06-13 10:04 +1000
Re: Version Control Software Tim Chase <python.list@tim.thechases.com> - 2013-06-12 21:41 -0500
Re: Version Control Software Ben Finney <ben+python@benfinney.id.au> - 2013-06-13 12:30 +1000
Re: Version Control Software rusi <rustompmody@gmail.com> - 2013-06-13 04:54 -0700
Re: Version Control Software Grant Edwards <invalid@invalid.invalid> - 2013-06-13 17:06 +0000
Re: Version Control Software Chris Angelico <rosuav@gmail.com> - 2013-06-14 07:26 +1000
Re: Version Control Software Grant Edwards <invalid@invalid.invalid> - 2013-06-13 21:53 +0000
Re: Version Control Software Chris Angelico <rosuav@gmail.com> - 2013-06-14 07:59 +1000
Re: Version Control Software Zero Piraeus <schesis@gmail.com> - 2013-06-13 18:20 -0400
Re: Version Control Software Terry Reedy <tjreedy@udel.edu> - 2013-06-13 20:09 -0400
Re: Version Control Software Fábio Santos <fabiosantosart@gmail.com> - 2013-06-13 23:15 +0100
Re: Version Control Software Chris Angelico <rosuav@gmail.com> - 2013-06-14 08:17 +1000
Re: Version Control Software Benjamin Kaplan <benjamin.kaplan@case.edu> - 2013-06-13 15:24 -0700
Re: Version Control Software Neil Hodgson <nhodgson@iinet.net.au> - 2013-06-14 08:53 +1000
Re: Version Control Software Tim Chase <python.list@tim.thechases.com> - 2013-06-12 21:48 -0500
Re: Version Control Software Roy Smith <roy@panix.com> - 2013-06-12 22:51 -0400
Re: Version Control Software Rui Maciel <rui.maciel@gmail.com> - 2013-06-13 13:43 +0100
Re: Version Control Software cutems93 <ms2597@cornell.edu> - 2013-06-12 23:00 -0700
Re: Version Control Software rusi <rustompmody@gmail.com> - 2013-06-12 23:43 -0700
Re: Version Control Software Roy Smith <roy@panix.com> - 2013-06-13 07:08 -0400
Re: Version Control Software MRAB <python@mrabarnett.plus.com> - 2013-06-13 12:26 +0100
Re: Version Control Software rusi <rustompmody@gmail.com> - 2013-06-13 04:46 -0700
Re: Version Control Software Anssi Saari <as@sci.fi> - 2013-06-14 15:06 +0300
Re: Version Control Software Roy Smith <roy@panix.com> - 2013-06-14 08:32 -0400
Re: Version Control Software Grant Edwards <invalid@invalid.invalid> - 2013-06-14 14:24 +0000
Re: Version Control Software Dave Angel <davea@davea.name> - 2013-06-14 16:55 -0400
Re: Version Control Software Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-06-14 20:26 -0400
Re: Version Control Software Tim Delaney <timothy.c.delaney@gmail.com> - 2013-06-15 15:39 +1000
Re: Version Control Software Chris Angelico <rosuav@gmail.com> - 2013-06-15 15:53 +1000
Re: Version Control Software Roy Smith <roy@panix.com> - 2013-06-15 10:16 -0400
Re: Version Control Software Giorgos Tzampanakis <giorgos.tzampanakis@gmail.com> - 2013-06-15 15:29 +0000
Re: Version Control Software Dan Sommers <dan@tombstonezero.net> - 2013-06-15 18:29 +0000
Re: Version Control Software Chris Angelico <rosuav@gmail.com> - 2013-06-16 09:01 +1000
Re: Version Control Software Tim Delaney <timothy.c.delaney@gmail.com> - 2013-06-16 07:49 +1000
Re: Version Control Software Chris Angelico <rosuav@gmail.com> - 2013-06-16 09:14 +1000
Re: Version Control Software rusi <rustompmody@gmail.com> - 2013-06-15 20:55 -0700
Re: Version Control Software Chris Angelico <rosuav@gmail.com> - 2013-06-16 14:13 +1000
Re: Version Control Software Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-06-16 05:20 +0000
Re: Version Control Software Chris Angelico <rosuav@gmail.com> - 2013-06-16 15:29 +1000
Re: Version Control Software Terry Reedy <tjreedy@udel.edu> - 2013-06-16 05:15 -0400
Re: Version Control Software Chris Angelico <rosuav@gmail.com> - 2013-06-16 19:51 +1000
Re: Version Control Software Chris “Kwpolska” Warrick <kwpolska@gmail.com> - 2013-06-16 15:30 +0200
Re: Version Control Software Roy Smith <roy@panix.com> - 2013-06-16 09:50 -0400
Re: Version Control Software Lele Gaifax <lele@metapensiero.it> - 2013-06-16 17:48 +0200
Re: Version Control Software Terry Reedy <tjreedy@udel.edu> - 2013-06-16 13:02 -0400
Re: Version Control Software Jason Swails <jason.swails@gmail.com> - 2013-06-16 12:39 -0400
Re: Version Control Software Serhiy Storchaka <storchaka@gmail.com> - 2013-06-13 10:20 +0300
Re: Version Control Software Tim Chase <python.list@tim.thechases.com> - 2013-06-13 07:34 -0500
Re: Version Control Software Roy Smith <roy@panix.com> - 2013-06-13 08:52 -0400
csiph-web