Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Version Control Software

Reply
Thread Tools

Version Control Software

 
 
cutems93
Guest
Posts: n/a
 
      06-12-2013
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. Of course, I already did some research on different characteristics of version software, but I concluded that listening to personal experiences and opinions from the professionals will help me a lot. What version control software do you like the most and why? What is the difference between git and Mercurial? Also, ifanyone can help me by doing google-chat or skype, please let me know.

Thanks in advance!
 
Reply With Quote
 
 
 
 
Joel Goldstick
Guest
Posts: n/a
 
      06-12-2013
git or hg. but git is most popular and very easy to learn. Its also great
for distributed develpment


On Wed, Jun 12, 2013 at 7:36 PM, Mark Janssen <(E-Mail Removed)>wrote:

> > 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.
>
> I'm not real experienced, but I understand that SVN is good if your
> hosting your own code base, and CVS is hardly used anymore as it
> doesn't support atomic commits (when having many developers work on
> the same code base). Git and hg have ben vying for several years with
> no clear winner, yet
>
> --
> MarkJ
> Tacoma, Washington
> --
> http://mail.python.org/mailman/listinfo/python-list
>




--
Joel Goldstick
http://joelgoldstick.com

 
Reply With Quote
 
 
 
 
Chris Angelico
Guest
Posts: n/a
 
      06-13-2013
On Thu, Jun 13, 2013 at 9:27 AM, cutems93 <(E-Mail Removed)> wrote:
> 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. Of course, I already did some research on different characteristics of version software, but I concluded that listening to personal experiences and opinions from the professionals will help me a lot. What version control software do you likethe most and why? What is the difference between git and Mercurial? Also, if anyone can help me by doing google-chat or skype, please let me know.


Don't touch CVS unless you absolutely have to. SVN is also distinctly
old now. The three most popular modern source control systems are git,
hg, and bzr (Bazaar). Of the three, I would remove Bazaar from
consideration unless you're posting to a Canonical repository;
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. They have some
different features, eg git detects file moves after the event while hg
prefers to be told about them up-front, but for normal daily tasks,
either is fine. Pick based on which one other people near you are
familiar with, so that you can get help when things go wrong - for
instance, I would be utterly useless when it comes to hg (I can't even
make patch files, which I can do just fine with git).

But above all, do use source control. The difference between that and
not is way WAY more than the difference between one system and another


ChrisA
 
Reply With Quote
 
Tim Chase
Guest
Posts: n/a
 
      06-13-2013
[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 <(E-Mail Removed)>
> 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






 
Reply With Quote
 
Tim Chase
Guest
Posts: n/a
 
      06-13-2013
On 2013-06-12 16:27, cutems93 wrote:
> I am looking for an appropriate version control software for python
> development, and need professionals' help to make a good decision.


While I'm generally a git user (see my other email), I'll also put in
a plug for Fossil <http://fossil-scm.org/> which has a single binary
(making it easily installed), as well as an integrated bug-tracker &
wiki, and can be dropped onto a server as a CGI program with almost no
effort. And it's primary author, Richard Hipp is famous for creating
sqlite, and for the rigorous testing under which both tools go.

-tkc


 
Reply With Quote
 
Roy Smith
Guest
Posts: n/a
 
      06-13-2013
In article <(E-Mail Removed)>,
cutems93 <(E-Mail Removed)> wrote:

> 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.


CVS is hopelessly obsolete. SVN pretty much the same.

Git and Mercurial are essentially identical in terms of features; which
you like is as much a matter of personal preference as anything else.
Pick one and learn it.
 
Reply With Quote
 
cutems93
Guest
Posts: n/a
 
      06-13-2013
Thank you everyone for such helpful responses! Actually, I have one more question. Does anybody have experience with closed source version control software? If so, why did you buy it instead of downloading open source software? Does closed source vcs have some benefits over open source in some part?

Thanks!
MinS
 
Reply With Quote
 
rusi
Guest
Posts: n/a
 
      06-13-2013
On Jun 13, 11:00*am, cutems93 <(E-Mail Removed)> wrote:
> Thank you everyone for such helpful responses! Actually, I have one more question. Does anybody have experience with closed source version control software? If so, why did you buy it instead of downloading open source software? Does closed source vcs have some benefits over open source in some part?
>
> Thanks!
> MinS


Not too many people who buy expensive software use it.
Those who use it, have usually not been party to buying it.

The first are usually called 'boss'.
The second, 'programmer' or some euphemism for that like 'software-
engineer.'

As to your question about vcs, there is also fossil:
http://www.fossil-scm.org/xfer/doc/t...sil-v-git.wiki
 
Reply With Quote
 
Serhiy Storchaka
Guest
Posts: n/a
 
      06-13-2013
13.06.13 05:41, Tim Chase написав(ла):
> -hg: last I checked, can't do octopus merges (merges with more than
> two parents)
>
> +git: can do octopus merges


Actually it is possible in Mercurial. I just have made a merge of two
files in CPython test suite (http://bugs.python.org/issue18048).


 
Reply With Quote
 
Roy Smith
Guest
Posts: n/a
 
      06-13-2013
In article <(E-Mail Removed)>,
cutems93 <(E-Mail Removed)> wrote:

> Thank you everyone for such helpful responses! Actually, I have one more
> question. Does anybody have experience with closed source version control
> software? If so, why did you buy it instead of downloading open source
> software? Does closed source vcs have some benefits over open source in some
> part?


This really doesn't have anything to do with python. Someplace like
http://en.wikipedia.org/wiki/Compari...ontrol_systems would
be a good starting point for further research.

If I were to buy a closed-source VCS today, I would look at Perforce
(www.perforce.com). I used it for several years. For small teams, you
can download and use it for free, so you can play with it without
commitment.

Perforce tries to solve a somewhat larger problem than just version
control. They also do configuration management. You can set up a
config-spec which says, "Give me this bunch of files from branch A, that
bunch of files from branch B, and some third bunch of files which have
some specific tag. And, while you're at it, remap the path names so the
directory structure looks like I want it to".

This configuration management can be a powerful tool when working on a
huge project. We threw *everything* into our p4 repo, including the all
the compilers, development toolchains, and pre-built binaries for all
the third-party libraries we used. We also used a single repo shared by
all the development groups (many 100's of developers on three
continents). I would never want to do that in a system like git or hg;
every developer would have to drag down 100's of GB of crap they didn't
need. With p4, we could build people config-specs so they got just the
parts they needed.

It is also a bit of a steep learning curve to figure out. Only a few
people were trusted to do things like build config-specs and create
shared branches.

As a company, Perforce is a dream to work with. Their tech support was
pretty awesome. I would shoot off an email to http://www.velocityreviews.com/forums/(E-Mail Removed), and
I don't think it ever took more than 5 or 10 minutes for me to get a
response back from somebody. And that somebody would inevitably be
somebody who knew enough to solve my problem, not just some first-line
support drone.

The costs aren't outrageous, either. The pricing is a little
complicated (initial license, annual renewal, various support options,
of them on a sliding scale based on quantity). I seem to remember it
working out to about $100/developer/year for us, but we were buying in
fairly large quantities.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: Where to get stand alone Dot Net Framework version 1.1, version2.0, version 3.0, version 3.5, version 2.0 SP1, version 3.0 SP1 ? MowGreen [MVP] ASP .Net 5 02-09-2008 01:55 AM
Re: Where to get stand alone Dot Net Framework version 1.1, version 2.0, version 3.0, version 3.5, version 2.0 SP1, version 3.0 SP1 ? PA Bear [MS MVP] ASP .Net 0 02-05-2008 03:28 AM
Re: Where to get stand alone Dot Net Framework version 1.1, version 2.0, version 3.0, version 3.5, version 2.0 SP1, version 3.0 SP1 ? V Green ASP .Net 0 02-05-2008 02:45 AM
looling for free version of software called something like software repair kit ... ms smiling bookworm Computer Support 2 09-29-2005 05:20 PM
Is Apache Axis Release software version 1.2alpha or other version support intermediary of soap1.2? pos Java 0 02-18-2004 08:45 AM



Advertisments