I was listening to FLOSS Weekly 19, which was about the git version control system, but also touched on how Git compared to other such programs like CVS and svn, which I use.
I wanted to clarify something and talk/think about this a bit. Also I’m sorry about not subtitiling this very much. All of the things I mention, from the programs to jargon things like commits, checkouts, repo(sitories), merges, and diffs, and what not, are all easily googleable.
It sounded a lot like the kinds of criticisms that they were making of CVS they were making of subversion as well. For instance, in subversion, when you rename or move a file the you don’t loose versioning history. I mean I think, I’m not a programer, and I’m a pretty new subversion user. I think the attic/delete issue is also better in SVN than CVS.
I’m intrigued by the git, but I don’t have a project that I could ever imagine using it for: git becomes worthwhile, it seems to me, when a) you have a large team, and b) when you want to encourage incremental commits, without having commits seem too much like publishing.
Given that my main use for svn is to maintain backups and progress snapshots of my writing and notes (in plain text files), a lot of the places where svn typically falls down, are things that I’m not pushing it to do. But it seems entirely logical that if people are working off of remote repos, then then using a local repo to “work in” makes some sense. Hell you could probably script it someway, but I do understand how this is a kludgey sort of response to the problem, but there it is. I’m actually starting to keep a remote copy of my repo syched to the one on my hard drive, for safe keeping.
I’m still learning a bunch about these tools, and I think that there are a lot of things that programers do in terms of organization and collaboration (from versioning systems like this, to the way branches/tags/merges work, to the social organization of distributed collaboration and so forth) that I think are useful in other contexts.
Maybe it’s just me.