Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Thoughts on Git, Mercurial, Github, and Bitbucket.

by DrHyde (Prior)
on Mar 26, 2012 at 10:05 UTC ( #961640=note: print w/ replies, xml ) Need Help??


in reply to Thoughts on Git, Mercurial, Github, and Bitbucket.

I use git (and github) both for my own stuff and also for work. I like it. It has plenty of wrinkles and irritating misfeatures, but then what software doesn't?

We mostly use it as "CVS with offline commits", a job that it does really well. I'm not convinced that "distributed version control" is such a killer feature though, as at *some* point you still need to pull all your changes together to make a release. Working in separate cloned copies looks just like working in branches to me. But then I've not done much serious work on the sort of really big projects that are alleged to benefit from it, so what would I know.


Comment on Re: Thoughts on Git, Mercurial, Github, and Bitbucket.
Re^2: Thoughts on Git, Mercurial, Github, and Bitbucket.
by JavaFan (Canon) on Mar 26, 2012 at 17:00 UTC
    I'm not convinced that "distributed version control" is such a killer feature though, as at *some* point you still need to pull all your changes together to make a release.
    The keyword here being some point. Distributed means that people can still make commits, even if the central server is down, or if they're working on a train or a rocket.
    Working in separate cloned copies looks just like working in branches to me.
    Yeah, CVS is great at branching. Unfortunally, it's not so great at merging. It used to be that creating a branch was a milestone: you'd release version 1.1, and branched of 1.1.1.1 as a maintenance branch. With more modern version control systems, branching is what people do all the time, since merging is trivial.

      I was under the impression that people mean something more than just "offline commits" when they talk about how awesome a distributed VCS is.

      Comparing to cvs is perhaps not quite right. Maybe it's better to compare with subversion (which is "cvs with better branching"), where branching and merging is easy. Sure, svn merges still have their problems, but they are minor.

        I was under the impression that people mean something more than just "offline commits" when they talk about how awesome a distributed VCS is.

        It's not just "offline commits". It's the ability to do everything offline (committing, branching, merging, tagging, rewriting history, inspecting history), and then have a sane way to synchronize that to some other repository ("online").

        I was under the impression that people mean something more than just "offline commits" when they talk about how awesome a distributed VCS is.
        Oh, sure. I was just too lazy to list the many dozens of git commands you can do "offline". Basically, anything that does not specifically exchanges data with a remote can be done offline. And I can communicate with multiple remotes -- git itself does not define a hierarchy, all repos are equal.
        Maybe it's better to compare with subversion
        I've no experience with subversion, so I've little to add. I think one of the major differences between git and subversion is that the latter uses a centralized model, while the former uses a distributed model. But AFAIK, subversion can do most of its commands "offline" as well.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://961640]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (2)
As of 2014-09-21 02:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (166 votes), past polls