I've settled on Git for moving fSekrit forwards, but that's mainly because of Git's "blow off your legs" power with regards to history rewriting - I want to make the codebase public, but retain no memory in the public codebase from the non-public versions. Yet, at the same time, I want the private repository to have FULL history, and do that without committing future versions to both public and private repositories. Git supports that (even if I haven't worked out the details of how to set it up 100%).
One question : You'll still be able to commit code from the private to the public repo even if you squashed the changesets/history in the public one ??? I most probably don't understand properly as I'm not sure how that would work.
In any case, I've edited Mercurial's ini file to add the "collapse" extension and it seems to load properly. Haven't properly tested it yet. Collapsing changesets is probably not too dangerous when working alone, but I don't know about team work. Potential for disaster.
History of a single function that moves? Interesting. That's not something inherent in how git stores the version history, though, unless I've missed something - Git stores the full version of each file for each commit, whereas both subversion and Mercurial store changesets (iirc Mercurial also stores a full-version "every once in a while" so moving between versions doesn't become too slow). But IOW, if Git can do it, it's gotta be history analyzing magic smartness that could potentially be done by everybody else too?
That's what I read on stackoverflow. Don't take my word for it! I'm going to try to find out more info on that.
From what I've seen from various comparisons, Git and Mercurial offer most of the same features, as long as you don't need the über-wicked geek functionality (Mercurial pretty much won't let you blow your legs off). Also seems like there's not massive speed differences for "normal" size projects.
I've seen a number of benchmarks. AFAICT, it varies depending on the task, OS, etc. so it's hard to say. In any case, I'd say that when working locally, we're talking about less than a second. Bazaar has some nice benchmarks numbers on its page, but... I haven't found the same results anywhere else.
Git seems a bit more down and dirty, and the tortoise version still isn't as polished as the tortoise versions of other version control systems... it still shows a bit that Git was originally a whole bunch of shell scripts, instead of designing it "properly" as a C/C++ library with a "proper" front-end
I just looked at smartGit and it looks really nice. I'll see if I can play with it during the weekend.
I probably shouldn't but I'm currently looking at Git.Oh yes, you should, if you have the time, resources and interest in it.
Making a more educated choice now (early/pre-start) is way better than to change half way through your project, if you then discover a feature in the other solution you absolutely must have, for whatever reason.
Thanks for the encouragement. I just have to be careful to not spend too much time obsessing about details -- something I'm pretty good at.
But you're probably right. That's why I'll check out the Git option bit more carefully.I use git with great success, but it does have drawbacks, namely poor support for Windows platform.
It is very fast even with large repositories.
AFAIK mercurial has much wider platform support than git, but is also rather slow. This is from hearsay though.
I chose git at that time because it was the new shit.
Eheh...
Git effectively seems a bit speedier. But, concretely, I'm not sure if I'd be able to see the difference in my everyday work.
The 'portable Git preview' software (for Windows) you can get from softpedia looks to be very promising.
And together with SmartGit (free for personal use) it starts to look quite nice as well.
One hell of lot better than WinCVS at least
**EDIT
Added the SmartGit part.
Thanks Shades. I downloaded both. Will report back.





- carpe noctem






)