Not logged in
Log in now
Create an account
Subscribe to LWN
An unexpected perf feature
LWN.net Weekly Edition for May 16, 2013
A look at the PyPy 2.0 release
PostgreSQL 9.3 beta: Federated databases and more
LWN.net Weekly Edition for May 9, 2013
I've been using it for some small projects, and also using it to do
development which has to sync up with a cvs repository. The only trouble
I've had is conflicts can be confusing.
Posted Dec 21, 2005 22:16 UTC (Wed) by Junior_Samples (guest, #26737)
Posted Dec 21, 2005 23:09 UTC (Wed) by iabervon (subscriber, #722)
I'd say that the huge advantage of git over everything is that it's dead simple to interface with. So you can say, "I wish I had a revision control system that worked like this," and it's a couple of shell scripts to do, and the results are compatible with everybody else. (For example, I've got a 237-line Python CGI that lets you edit files in the a git repository on the web, and then commit sets of changes. This required a dozen-line patch to an obscure part of git, and that only because I was the first person to try to work with no working tree and no temporary files. Try doing that with cvs, or practically anything else.) More generally, it means you can really integrate revision control into your processes however you want, rather than just following the VCS's idea of how you interact with it.
It's also got a lot of useful scripts included, like "bisect", which sequentially checks out versions from the history, doing a binary search for the first version to show a bug you're tracking down.
My favorite thing about using it for day-to-day version control is this: in most VCSes, you have to merge changes from other people before you can commit. In git, you commit before considering whether to merge changes from other people; you only have to merge changes before you advance the common head version. Also, you can commit a ton of hacks, keep them private but safe in case you screw up the next thing, clean things up once the whole thing is ready, and then rewrite history before you show anyone, so what goes into the shared history is that you did only the right thing. You can also pretend that you're the maintainer of a project, and the official maintainers are contributing patches to you when they make releases. It's all just a matter of perspective.
It can be a bit confusing at times, but only when you've done something far beyond the capabilites of cvs anyway, at least in my experience.
Posted Dec 21, 2005 23:27 UTC (Wed) by astrophoenix (guest, #13528)
Posted Dec 22, 2005 0:02 UTC (Thu) by iabervon (subscriber, #722)
But the neat thing about git is that the complicated things I do can be particular to my usage pattern, and I can write support for them without bothering the 90% of users who want different unusual features. (AFAICT, I'm the only person who uses multiple working trees with a single repository that they're symlinked to; also, I've got a script to rewrite private history that I haven't sold anyone else on yet). The nice thing is that your version of git doesn't need to support the same user-level operations that mine does for us to work together without being aware that the other is using special commands, so git doesn't get as much bloat as it would if everybody had to agree on a version.
If there are particular examples from my list that you'd like explained or if you want to beta-test my history rewriting script, let me know. I was sort of rambling and hit a bunch of obscure operations as examples of things that I like, so I don't really want to explain all of them if you only actually want to do a few of them.
Posted Dec 21, 2005 23:25 UTC (Wed) by astrophoenix (guest, #13528)
Posted Jan 6, 2006 17:14 UTC (Fri) by eli (guest, #11265)
my 3 favorite things about git are
1. changesets (1 commit takes in the changes to multiple files)
2. distributed development (you can hack and commit all day long on your
laptop with no network, sync up all the changesets later)
3. gitk: a simple, yet incredible visualization tool. I routinely
cvsimport code into git just so I can run gitk on it.
Posted Dec 22, 2005 12:09 UTC (Thu) by zooko (subscriber, #2589)
I maintain a concise list.
My current favorite is darcs. Truthfully, I'm not aware of any advantage that git has over the others, except that it is supported by the kernel hackers and is optimized for working on the kernel.
Posted Dec 22, 2005 14:27 UTC (Thu) by evgeny (guest, #774)
Posted Dec 22, 2005 15:35 UTC (Thu) by zooko (subscriber, #2589)
On the other hand, there is a reasonable amount of scripting going on with darcs: two web interfaces, integration with Trac, a dependency-graph generator.
If you find out about C interfaces for rev ctrl systems please post here or e-mail firstname.lastname@example.org.
Posted Dec 22, 2005 20:42 UTC (Thu) by evgeny (guest, #774)
Posted Dec 22, 2005 16:44 UTC (Thu) by iabervon (subscriber, #722)
Posted Dec 22, 2005 20:36 UTC (Thu) by evgeny (guest, #774)
Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds