Best (sic) Revision Control System?

Go To Last Post
12 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Obviously, "best" is meaningless without a specific set of criteria by which to judge it.

 

cheeky

 

But it would be interesting to know what Revision Control systems people use, why they chose them, and what they think of them.

 

I'll start:

 

I've used SVN for years, with Tortoise SVN as the Windows client.

 

It is free and seems to do all I need without much fuss.

 

I use an off-site repository hosting service (not free - but not expensive)

 

It is widespread among clients, but I note that Git is gaining popularity - so I'd be interested in any experiences of the relative merits & demerits of the two.

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Over the years I have used:

 

1) Microsoft Visual SourceSafe

 

2) MS VSS + SorceOffSite (we used to call Source of Shite).

 

3) SVN + Tortoise

 

4) Git

 

The one of those I am most comfortable with is (3) and it's what I'd recommend for anyone starting out who wants "simple and easy".

 

Now I don't know if it's just because I have been so indoctrinated in the SVN world but despite now using it for several years I just cannot get my brain around Git. Almost every time I try to use it I hit some kind of problems. I have to admit this may not entirely be the fault of Git as we push to Gerrit which acts as a barrier to our Git repo. Whatever it is I usually then spend hours searching on SatckOverflow or on instant messaging to my local Git guru trying to sort out the mess I created.

 

PS this is a very simple example but I just made up a Git question and googled it then took the top hit on Stack Overflow:

 

http://stackoverflow.com/questio...

 

Or how about this one. The request and answer are actually simple:

 

http://stackoverflow.com/questio...

 

But then read ALL the replies and you are actually given 50 different ways to achieve the same thing. I mean WHY would you use "git rebase-rework <commit>" rather than "git commit --amend"?

 

Oh and while there is a Tortoise for Git just as there is a Tortoise for SVN I find it doesn't help because the concepts, not the commands are different. Anyway try issuing something like "git reset @~3" using the GUI interface of Tortoise.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
the concepts [of Git vs SVN], not the commands are different.

Yes, that's my understanding.

 

I have yet to find a convincing explanation to make an informed judgement of where Git may be more appropriate than SVN, and where SVN may be more appropriate than Git.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I guess it's going to depend what your "average customer" here is going to be using the thing for. If this is just for a personal backup strategy then SVN is perfect. Even if it's two guys working together in a office it's still perfect.

 

The supposed big selling point of Git is that it is no longer server/client but is a distributed system where everyone holds an exact copy of the master. Having said that you still have an ultimate "origin/master". It lends itself to distributed working where hundreds of people, all in different locations, are all working on "bits" of a big thing. This probably does not describe your average AVR project and so the supposed advantage of Git over SVN may be lost. Git was actually developed for all those working on the Linux kernel. It's other advantage (apparently) is the way one can easily do lots of different bits of work in various branches - again I personally I have never really "got" this. But others enthuse wildly.

 

Oh and while I've never used it I think mention probably needs to be made of Mercurial too.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

PS Oh and while we're talking about all this. Mention should be made of:

 

http://spaces.atmel.com/gf/

 

This is "github/sourceforge for AVR". Atmel will run an SVN or Git (or other) RCS server there for your project HOWEVER you get it for "free" because you are assigning the rights of your code to Atmel. That doesn't work for commercial use of AVR but for anyone with an "open" project it is INFINITELY better than the Projects section here. Personally I think Atmel made a big mistake just migrating the old Freaks Project section to this new site. What they should have done was moved all the projects into "Spaces" and then encouraged the use of that for all subsequent projects. Not only do you get the revision control server but also mechanisms to host "release" packages, a Wiki, a Blog and even your own Forum about the project if you want it.

 

PS Just started to create a dummy project there. The revision control choices are:

Last Edited: Thu. Jun 25, 2015 - 09:02 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes, those are the differences/advantages that I've heard - but also not (entirely) "got".

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

May you pardon the O.T.

clawson wrote:
Atmel will run an SVN or Git (or other) RCS server there for your project HOWEVER you get it for "free" because you are assigning the rights of your code to Atmel.

That doesn't work for commercial use of AVR but for anyone with an "open" project it is INFINITELY better than the Projects section here.

wrt "... assigning the rights ... to Atmel" is that your take on the Atmel Spaces ToS?

(IIRC that may have already been answered shortly after Atmel Spaces was created then discussed on this forum)

TIA

https://spaces.atmel.com/gf/project/sitelegal/wiki/?pagename=TermsOfUse

...

(approx. mid-page)

3.2. Your Rights to Your Content

...

3.3. Code Licenses Granted to Other Users

...

3.5. License to Atmel

...

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It was specifically 3.5 that looks "worrying":

 

3.5. License to Atmel
You hereby grant Atmel a non-exclusive, worldwide, irrevocable, perpetual, transferable (pursuant to Section 16.5 below), royalty-free right and license to transmit, distribute, reproduce, publish, publicly and privately perform and display and otherwise use Content, including any updates, in connection with Atmel’s promotion, operation and provision of Atmel Spaces, though Atmel is not required to do any of the foregoing.

 

In particular that "irrevocable". "transferable" is also a bit strong.

 

However I understand the motives behind "spaces". Eric was instrumental in setting it up to make a kind of "Sourceforge for AVR" with the idea of making open source code shareable between AVR (and other) users. This is a "GoodThing(tm)" but it's just that 3.5 there gives me the heebie-jeebies!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It does also say "Non-Exclusive" - which means that you can still do whatever else you like with it with other licensees...

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Also, that clause only gives Atmel rights "in connection with... Atmel Spaces". Effectively, all that clause does is to give Atmel permission to put your code up on the Spaces website.

 

- S

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

mnehpets wrote:
that clause only gives Atmel rights "in connection with... Atmel Spaces".

 

But it also says "Transferable" - which, I think, could let it outside the scope of just Atmel Spaces ... ?

 

But, anyhow, one once you've put anything into a public space like that, you've pretty much lost control of it, I'd say ...

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Sun. Jun 28, 2015 - 02:43 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

awneil wrote:

mnehpets wrote:

that clause only gives Atmel rights "in connection with... Atmel Spaces".

 

But it also says "Transferable" - which, I think, could let it outside the scope of just Atmel Spaces ... ?

I don't think so. A transfer of section 3.5's rights will not alter the condition that these rights apply only for use in connection with Atmel spaces. If you read section 16.5 (referenced in section 3.5), the rights transfer only apply in cases where Atmel spaces is sold to a new owner; in such a case, Atmel will reassign section 3.5 rights to the new owner. Section 3.5 will still only grant the new owner rights in connection with Atmel spaces.

 

awneil wrote:

But, anyhow, one once you've put anything into a public space like that, you've pretty much lost control of it, I'd say ...

From a practical point-of-view, that's true. However, I'm trying to make the point that the rights assignment are not as scary as clawson may think.

 

- S

 

ps: to be sure, there is a scary section in the Spaces terms of use, but it's not section 3.5