Jump to content


Check out our Community Blogs

Register and join over 40,000 other developers!


Recent Status Updates

View All Updates

Photo
- - - - -

Version Control Systems

version control

  • Please log in to reply
12 replies to this topic

#1 Barnsite

Barnsite

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 258 posts
  • Location:West Sussex, UK
  • Programming Language:C#, (Visual) Basic, Visual Basic .NET, Transact-SQL, Others
  • Learning:Java

Posted 13 August 2013 - 05:18 AM

Hi,

 

Having been the only developer for the last few years I've not had to worry too much about source / version control.

 

Previous to that I was a lone worker and submitted my code via TortoiseSVN to Subversion, but have no idea of what exactly happened at the other end.

 

I have a basic idea of how these systems work having read up a bit on the subject.

 

I'm doubling the size of my development team to two!  Anyone got any suggestions for version control systems?  We are a fully Windows environment, and I primarily want to prevent code / project files getting out of synch (as we will often be working in different locations).  I have a Windows 2008 web server, so self hosting is an option (possibly a preference...)

 

I've looked at

 

Team Foundation Server - overkill for what we need, in scale and price.

Mercurial - looks like a possibility

Git - ???

Perforce - looks like overkill again?

 

It's difficult to evaluate something to do a task that you're not familiar with... want something simple and small  :)

 

Any comments, suggestions?

 

Thanks


  • 1
There are two ways to write error-free programs; only the third one works.

#2 gonerogue

gonerogue

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 197 posts

Posted 13 August 2013 - 05:47 AM

Mercurial or Git, both are good. You will find good beginner documentation on Internet, such as:

http://hginit.com/

http://gitimmersion.com/

 

You also have good tools:

http://tortoisehg.bitbucket.org/

https://code.google.com/p/tortoisegit/

 

For your needs, I would choose Mercurial.


Edited by xyv123, 13 August 2013 - 05:49 AM.

  • 1

#3 Barnsite

Barnsite

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 258 posts
  • Location:West Sussex, UK
  • Programming Language:C#, (Visual) Basic, Visual Basic .NET, Transact-SQL, Others
  • Learning:Java

Posted 13 August 2013 - 05:55 AM

Thanks very much, having a look at the Mercurial tutorial now.


  • 0
There are two ways to write error-free programs; only the third one works.

#4 WingedPanther73

WingedPanther73

    A spammer's worst nightmare

  • Moderator
  • 17757 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others

Posted 13 August 2013 - 06:00 AM

I would look at Mercurial, Git, and SVN. The key factor in the decision is going to be how you envision your workflow.

 

Mercurial is designed to be a distributed, concurrent version control. That means you can have 20 different copies of the code in 20 different states, half of which are making changes to common files, and when you merge them all, the merges are handled gracefully. Or you can use it in a more controlled manner :)

 

SVN is designed to be a central version control system, where there's a single "master" code base. You can use it with or without file checkouts/locks.

 

You'll want to think carefully about how you envision the workflow working, especially as your team grows. I lean towards the distributed model, myself, but work for a company that uses a central system.


  • 2

Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/


#5 Barnsite

Barnsite

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 258 posts
  • Location:West Sussex, UK
  • Programming Language:C#, (Visual) Basic, Visual Basic .NET, Transact-SQL, Others
  • Learning:Java

Posted 13 August 2013 - 07:20 AM

I must admit that having read the initial tutorial on Mercurial I like the distributed model, this is different to Subversion which was a centralised model (I think), I do know that the bloke who used to administrate it said it was a pain...

 

Mind you, he said that about most things...


  • 0
There are two ways to write error-free programs; only the third one works.

#6 0xDEADBEEF

0xDEADBEEF

    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 790 posts
  • Programming Language:C, Java, C++, C#, (Visual) Basic, Perl, Transact-SQL, Bash, Prolog, Others
  • Learning:Others

Posted 13 August 2013 - 07:28 AM

I've used perforce professionally; and its very good; simple robust and easy to work with. I've seen SVN ** out many times.

It seems the difference between a pay product, and a free one is the quality of merging between versions.

Of cause perforce isn't free, but you do get what you payfor.

The only advantage to Git in a non-distributed model is that you can micro-submit with out causing other's problems.
  • 1

Creating SEGFAULTs since 1995.


#7 WingedPanther73

WingedPanther73

    A spammer's worst nightmare

  • Moderator
  • 17757 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others

Posted 13 August 2013 - 08:49 AM

One way you can use Mercurial/Git: you have an "official" repository that only contains release versions of the product. This is means all development work is being kept out of it.

 

Then you have a "snapshot" repository where everyone checks in code and handles reconciling conflicts. This would probably be on your nightly build machine so if someone breaks the build, the error will be caught quickly.

 

Each employee would then have a "working" repository. This would be synched regularly from the snapshot to keep things up to date.

 

From there, employees can create testing repository clones of "working" to have throw-away experiments. They can also clone from each other for doing code reviews, collaborative work, etc.

 

It has to be managed, but allows for a lot as a team grows :) Also, it means backups of source code history exist on EVERY computer.


  • 0

Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/


#8 Masterakos

Masterakos

    CC Regular

  • Member
  • PipPipPip
  • 39 posts
  • Location:Greece
  • Learning:C, Java, C++, C#, PHP, Python, JavaScript, Visual Basic .NET, Pascal

Posted 13 August 2013 - 11:40 PM

You can host your project on BitBucket which offers private repositories for free.

After that using Git and TortoiseGit (as an interface) on windows is super easy in my opinion.


Edited by Masterakos, 13 August 2013 - 11:43 PM.

  • 0

#9 Barnsite

Barnsite

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 258 posts
  • Location:West Sussex, UK
  • Programming Language:C#, (Visual) Basic, Visual Basic .NET, Transact-SQL, Others
  • Learning:Java

Posted 14 August 2013 - 12:37 AM

Evan: I don't mind paying if it's the best option, however this complicates it as I have to get approval, etc...

 

WP: I like the sound of that... will only be two of us for the foreseeable future (slim chance that we may grow to three at some point!)

 

Masterakos: thanks, will have a look at BitBucket 


  • 0
There are two ways to write error-free programs; only the third one works.

#10 WingedPanther73

WingedPanther73

    A spammer's worst nightmare

  • Moderator
  • 17757 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others

Posted 14 August 2013 - 04:15 AM

I've never really understood the mindset of entrusting your company's proprietary good to sites like BitBucket. Not saying that you can't, but it's not something I would do.


  • 0

Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/


#11 Barnsite

Barnsite

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 258 posts
  • Location:West Sussex, UK
  • Programming Language:C#, (Visual) Basic, Visual Basic .NET, Transact-SQL, Others
  • Learning:Java

Posted 14 August 2013 - 04:22 AM

WP: oddly enough I've just been considering that exact issue...


  • 0
There are two ways to write error-free programs; only the third one works.

#12 Barnsite

Barnsite

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 258 posts
  • Location:West Sussex, UK
  • Programming Language:C#, (Visual) Basic, Visual Basic .NET, Transact-SQL, Others
  • Learning:Java

Posted 14 August 2013 - 06:32 AM

For anyone who's interested currently testing with Git.  Worked through the basics using the command line, now playing with SourceTree GUI

 

Seems okay, so far


  • 0
There are two ways to write error-free programs; only the third one works.





Also tagged with one or more of these keywords: version, control

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download