Voodooprojects
Chameleon => DevTalk => Topic started by: r007 on January 21, 2011, 02:12:06 AM
-
So far, I've been mostly discussing with valv on IRC and read the opinions in the other thread concerning SCM (http://forum.voodooprojects.org/index.php/topic,1626.0.html). As it is kind of difficult to get all the developers on IRC at the same time, I thought we should hold a poll here. I'll summarize what we have so far.
It's increasingly clear that SVN doesn't quite cut it as a source code management system anymore, and chameleon should be moving onward to tools that allow for more productivity, especially in the way of maintaining branches and getting good features into the stable release more easily. As it is now, the branches in SVN are basically forks with little flowing back into mainline chameleon. Thus, distributed, change-oriented source code management.
There are three contenders (listed alphabetically here): Bazaar (or bzr), Git, and Mercurial (or hg).
I've read through the introductory documentation of each, and this is what I found:
| Bazaar | Git | Mercurial |
Origin | Canonical (Ubuntu) | Linux Kernel | ? |
Written in | Python | Perl/C | Python |
Permissions | fine-grained (builtin) | fine-grained (external) | binary (access or not) |
GUI | extensive (builtin) | rudimentary (builtin) | varying (external) |
Compatibility | svn,git,hg | svn | many (import only) |
Speed1 | OK | fast | OK |
Hunk-Level commits2 | no | yes | yes |
Staging area3 | no | yes | no |
Global Tags3 | metadata | metadata | tracked in a file |
1see bazaar speed comparison (http://doc.bazaar.canonical.com/migration/en/why-switch-to-bazaar.html#high-storage-efficiency-and-speed)
2can split a commit into smaller than filewise changesets
3the staging area is an additional step where you prepare a commit by selecting all the changes you want before actually committing. Many people have a hard time getting used to it at first, but it can be a helpful tool.
All will be accessed using SSH and public keys -- so you may want to familiarize yourself with that. Usage complexity on the command line is comparable, git is just a bit more complex because it exposes pretty much everything under the hood where the others make some abstractions.
If I missed out on something important, please let me know, I'll edit the post then.
-
Personally, I vote for git. I like my staging area, but bzr seems legit as well. Just expressing my personal preference. :)
-
Do not forget that we use latest XCode 3.2.5.
So my vote for Subversion (SVN).
-
Kind sir, I direct thee to this page at Apple confirming git for Xcode 4 (http://developer.apple.com/technologies/tools/whats-new.html#version-editor).
-
... in future. Now Apple recommend to use 3.2.5 for regular development.
-
I did vote for bzr, because it can get us git and more.
And in case we want to go other ways (one day) we can rely on it to.
-
GIT is fine..
-
Well, don't know if this is still "alive"? ??? anyway, here is my opinion.
As long as you guys don't remove SVN support, i don't really care about any other SMC you add. SVN is more than enough for my my humble needs and to be honest i do like it better than Git or Mercurial. Sure, it lacks some functionality that i could use and the others have, but i can live without it. In the end, mi vote was "none of this".
That's it... sorry for the long time to feedback; time necessary to check the other SMC's is included :)
Stay safe, you all...