Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #47887

Re: Version Control Software

Date 2013-06-12 21:41 -0500
From Tim Chase <python.list@tim.thechases.com>
Subject Re: Version Control Software
References <98c13a55-dbf2-46a7-a2aa-8c5f052ff375@googlegroups.com> <CAPTjJmr+Kgdrs4=tutjdSb0jMP+WHAdAnotE6tym26Riwin7cQ@mail.gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.3156.1371091216.3114.python-list@python.org> (permalink)

Show all headers | View raw


[much of my reply echos Chris but elaborate]

On 2013-06-13 10:04, Chris Angelico wrote:
> On Thu, Jun 13, 2013 at 9:27 AM, cutems93 <ms2597@cornell.edu>
> wrote:
> > Currently I am considering four software: git, SVN,
> > CVS, and Mercurial.
> 
> Don't touch CVS unless you absolutely have to. SVN is also
> distinctly old now.

SVN had its place, but branching/merging is a pain (well, branching is
pretty easy, it's the merging that hurts).

> Mercurial and git are superior, in my experience.
> 
> Between those two (hg and git), though, it's really hard to call.
> I'm personally familiar with git, and it serves me well; others
> have the same experience with hg. Either will do you fine. 

A few pros (+) and cons (-) from my experiences:

+hg: much easier to transition from CVS/SVN as the command-line
syntax/structure matches much more closely

-git: the command-line interface feels rather distant from the
CVS/SVN classics

+hg: better cross-platform (i.e., including Win32) support

-git: a bit persnickity on Win32

-hg: last I checked, can't do octopus merges (merges with more than
two parents)

+git: can do octopus merges

-/+ hg: certain power-user functionality is relegated to plugins that
you need to activate (though many come standard, you have to activate
them)  This can be a plus if you don't want to have a foot-gun within
easy reach; this can be an annoyance if you regularly use those sorts
of tools appropriately (particularly the partial-commit that "git add
-p" provides)

+git: the internal data model is pretty simple making it easy to
understand where things stand and the status of various branches

+git: having multiple remotes and managing them feel a little easier
to me than with Mercurial (YMMV)

+hg: written in Python (with optional C component for some
CPU-intensive work, but can run without it if you don't have
compile-rights on a particular machine that does already have Python
installed)

-git: a hodge-podge of C, Perl, shell-scripts and other madness.
This is part of the Win32 ding above.

+hg:  Python devs have chosen Mercurial as their VCS of choice

+hg: bitbucket hosting

+git: github, gitorious, bitbucket hosting

+git, +hg: both have lots of big-name projects using them

+git, +hg: both have reasonably painless ways of talking to
repositories of other flavors (git can talk to CVS/SVN/hg repos; hg
can talk to CVS/SVN/git repos)

+git, +hg: documentation on both is top-notch (git's available
documentation has radically improved since it's grand suckage before
1.6; once 1.6 landed, git was far less user-hostile)


Given the choice, I eventually settled on git (after about 3-4
serious attempts to learn it, then giving up for a couple months and
retrying) unless I have to involve Win32 machines, as I like the
power it provides and how easy it is to understand in my head.
On Win32, I tend to bias towards Mercurial.  There are still some
aspects of Mercurial's internal models that leave me scratching my
head and rummaging through the docs (public vs. private branches,
bookmarking, preferring cloning to make branches) and surrendering
occasionally on more obscure things I know that I *should* be able to
do. That said, if you just want solid VCS behavior and already know
CVS/SVN, Mercurial will give you an easier transition.

And I believe most of what can be said about Mercurial can also be
said about Bazaar (bzr), though it seems to have less mindshare,
except perhaps among Ubuntu developers, as it has tighter integration
with LaunchPad.

Fortunately, since git/hg/bzr are all free, you can download them all
and kick the tires to see which one fits YOU (the OP) best.

-tkc





Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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