User avatar
ArborealSeer
Posts: 300
Joined: Tue Jan 24, 2012 9:48 am
Location: South West, UK

version control software?

Wed May 23, 2012 8:51 am

what recommendations are there for a a quick n easy to set up vcs?

i want to run one at home, but we also need to switch at work, so it might fuel that too.


requirements

- clients supported cross platform (at least win/linux, possibly macos too) in the common dev env's

- must store binaries (i know this is often seen as a no no, but we have experienced cases in the past where compiler bugs have caused recompiles from the same source, on the same system to have bugs). so not just source control, but source and version control.

- data is stored on the server (at work we have a backup system, and due to the nature of our business would rather sensitive data/IP is managed and stored by us)

- secure remote access
Pi Status > Farnell, Arrived 24/5- RS, Arrived 1/6

User avatar
hayesey
Posts: 78
Joined: Mon Nov 28, 2011 12:46 pm
Location: Manchester, England

Re: version control software?

Wed May 23, 2012 10:22 am

GIT seems to be the current preferred one to use. I use SVN myself at work but I keep being told I should be using GIT.

Not sure if either of those fully meets your requirements though.

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: version control software?

Wed May 23, 2012 10:31 am

The modern two are Mercurial and Git.

Subversion (SVN) is previous generation and a pain to set up.

Anything older is missing serious capabilities.

So far as I know there are no feature differences between Mercurial and Git. I say that in the hope that someone will tell me what they are. ;-)

User avatar
ArborealSeer
Posts: 300
Joined: Tue Jan 24, 2012 9:48 am
Location: South West, UK

Re: version control software?

Wed May 23, 2012 10:56 am

rurwin wrote:Anything older is missing serious capabilities.
I did omit what we use at work now.. rhymes with sauceface? ;)

its not too bad with a small company/team, with mostly a single person working on a single part/component of several big product, or element of a project. but it does get slooooooooooooow.

sounds like GIT..

so really.. whats good for a home dev to set up running on say a RPi.. and for the commercial side, is there a solution that provides managed/supported services (i.e. paid for)
Last edited by ArborealSeer on Wed May 23, 2012 11:08 am, edited 1 time in total.
Pi Status > Farnell, Arrived 24/5- RS, Arrived 1/6

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: version control software?

Wed May 23, 2012 11:05 am

We're not quite as badly off as you ;-) we're about a tenth of a generation in front of you.

At home I use Mercurial. The trick is remembering which repository is the master. Maybe I'm not organised enough.

I don't know if anyone does secure and managed solutions for either one.

User avatar
ArborealSeer
Posts: 300
Joined: Tue Jan 24, 2012 9:48 am
Location: South West, UK

Re: version control software?

Wed May 23, 2012 11:17 am

when i first started here in summer '96 the "last version" was in a "fred_back1" folder on a netware folder share - and when things went really wrong they resorted to backup tapes!

i do like the look of mercurial for home :)

for work i think having someone we've paid to phone up when things go wrong is useful!

it looks like the person looking into it is going with svn as really all working data should be centralised at all times (as PCs do die outright, especially with the kind of products we write not just through HDD failure!)
Pi Status > Farnell, Arrived 24/5- RS, Arrived 1/6

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: version control software?

Wed May 23, 2012 11:25 am

That's a pity, but at least it's less of a pity that continuing with what you've got.

This is well worth watching -- all hour and ten minutes of it.
Linus Torvalds on Git

So far as I can understand, it all applies to both Mercurial and Git. ... and at least Mercurial has GUI clients and is easy to use, whatever the chap jokes about at the start.

Also: "If you need a commercial one, [bitkeeper] is the one you should use." -- Linus at about 0:5:00

User avatar
ArborealSeer
Posts: 300
Joined: Tue Jan 24, 2012 9:48 am
Location: South West, UK

Re: version control software?

Wed May 23, 2012 12:04 pm

tried to watch that, we got bored of linus jokes.. :)


looks like the person doing the new project (on another platform) is going to try > http://www.open.collab.net/go/csvne2_r2a/

if it works we'll probably move our other stuff over in time
Pi Status > Farnell, Arrived 24/5- RS, Arrived 1/6

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: version control software?

Wed May 23, 2012 12:55 pm

Things Subversion doesn't do well and Git does:
  • Merging Branches. Branch merging is how Git works -- Linus does 4-5 a day with no pain.
  • Optimised for remote working -- Linus does a diff of the entire kernel (22,000 files) in a tenth of a second.
  • Working offline -- With Git you can work on an airplane just as easily as in your office.
  • Database Corruption -- Git is protected by an SHA1 hash which is checked every time. If it corrupts then you will be told.
  • Change Detection -- With Git, two repositories with the same hash are the same. Backup is very cheap.
  • Pipelined workflow -- With Git, the developer checks in changes as he makes them. Those changes flow to the test team and then to distribution. No freezing of the repository, no requirement not to check in code which breaks the build.
At least get a quote for Bitkeeper.

User avatar
ukscone
Forum Moderator
Forum Moderator
Posts: 4152
Joined: Fri Jul 29, 2011 2:51 pm
Contact: Website

Re: version control software?

Wed May 23, 2012 1:41 pm

i'm rather partial to fossil http://www.fossil-scm.org/index.html/do ... index.wiki it has built in bugtracker & wiki as well.

andyl
Posts: 265
Joined: Tue Jan 10, 2012 11:05 am

Re: version control software?

Wed May 23, 2012 2:27 pm

rurwin wrote:The modern two are Mercurial and Git.
The other modern one is bzr. It has a pretty user friendly interface although market penetration isn't as good as Git/Mercurial.

Git is the one which quickly acquired the largest community around it. However for a beginner to DVCS I would say it is probably the one which will pose the most difficulties if you want to do more advanced stuff.

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: version control software?

Wed May 23, 2012 3:11 pm

Whichever you end up using, grab the Tortoise front-end for them:
Tortoise SVN
Tortoise Hg
(Not sure if the Tortoise front-end for Git is the best choice, but you probably don't care.)

Joe Schmoe
Posts: 4277
Joined: Sun Jan 15, 2012 1:11 pm

Re: version control software?

Wed May 23, 2012 3:27 pm

Good video - I've watched about the first half of it.

It sounds to me like:
1) The basic problem is still unsolvable. How do you allow multiple people to work on something that is basically a one-person job (writing code) ? You can dance around it - but the basic problem is unsolvable.

2) The distributed model (e.g., Git) is basically a political solution to the problem of ignoring most people's "work". Linus seems pretty clear about that.
And some folks need to stop being fanboys and see the forest behind the trees.

(One of the best lines I've seen on this board lately)

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: version control software?

Wed May 23, 2012 4:03 pm

It's better than that:

1) even if two people are working on the same file, it turns out that the trivially merged file is correct in the vast majority of cases. It is not necessary to lock files or be very careful at all. It just works.

2) I think that is a misunderstanding. What Linus is describing is a tree of repositories with him at the top and his lieutenants one step down. Commits filter up through the tree being reviewed at each step.

The distributed model allows anyone to create any number of branches on their own PC. In that sense Linus ignores them, because he never sees them, but I would not call that political. In fact to call it political is to entirely miss the point, which is:

a) A vast improvement in efficiency to such an extent that a non-distributed solution is even theoretically incapable of matching its speed. The example is a complete repository comparison in the time taken to exchange two network packets.
b) Freedom from repository locks and freezes when product is to be tested or shipped. No need to forbid check-ins which break the build, so fewer lost-all-my-work moments.
c) Trivial back-ups.

Git is very carefully designed so that the jobs that are done often -- such as commiting changes and merging branches -- are fast and simple at the expense of the jobs that are only done rarely -- such as starting work on a code base for the first time.

Joe Schmoe
Posts: 4277
Joined: Sun Jan 15, 2012 1:11 pm

Re: version control software?

Wed May 23, 2012 4:29 pm

I think you are making a classic error of assuming that "political" is a pejorative - a bad thing.

The world runs on politics; it is the glue that keeps 7 billion people from killing each other. It must be a good thing.

In any case, it sounds like Git solves that problem very nicely.
And some folks need to stop being fanboys and see the forest behind the trees.

(One of the best lines I've seen on this board lately)

robthebloke
Posts: 8
Joined: Fri Mar 09, 2012 1:30 pm

Re: version control software?

Wed May 23, 2012 4:36 pm

Another vote for GIT. SVN, CVS and BZR are perfectly ok, until such time as you hit a problem. At that point, you'll be very glad you were using GIT! My 2 cents....
Whichever you end up using, grab the Tortoise front-end for them:
Tortoise is Win32 only.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23688
Joined: Sat Jul 30, 2011 7:41 pm

Re: version control software?

Wed May 23, 2012 4:56 pm

Use Perforce at work which I quite like, but we are switching to GIT. Git has a hell of a learning curve if you want to do anything complicated, but things like Github make it very easy to store stuff off site, or move between sites with the same codebase.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: version control software?

Wed May 23, 2012 8:10 pm

robthebloke wrote:Tortoise is Win32 only.
The TortoiseHg homepage wrote: Microsoft Windows XP, Vista, Windows 7
Command line support via thg
Mac OS X port via source install
Gnome/Nautilus integration
I'm using it here -- it works fine. TortoiseSVN does appear to be Windows only.

@Joe Schmoe, I wouldn't dream of belittling politics, but I would characterise the advantages as technical. I'm a technician so I'm likely to do that. The fact that the technology empowers a better politics I tend to gloss over.

Return to “General programming discussion”