May 7, 2011 2:07 PM   Subscribe

Git is the version control system that inspired social coding, music videos, and now a party game (pdf).
posted by jeffburdges (36 comments total) 22 users marked this as a favorite

My favorite git fact: one of the features is called octopus merge. This is a merge strategy that git will use if it is merging multiple branches at once (!)
posted by poe at 3:08 PM on May 7, 2011

posted by Civil_Disobedient at 3:24 PM on May 7, 2011 [7 favorites]

Just started using git on top of SVN at work, mainly just for features like interactive diff add and stash. I love being able to make really discrete commits, it makes merges easier later on.
posted by Joe Chip at 3:42 PM on May 7, 2011

git! that's where I'm a neckbeard!
posted by jepler at 3:46 PM on May 7, 2011 [23 favorites]

posted by kenko at 3:49 PM on May 7, 2011

the British call a contemptible person a ‘git’.
posted by scruss at 3:49 PM on May 7, 2011 [1 favorite]

Those gitionary images are pretty hysterical. I made the switch to git about six months ago, mostly thanks to the wonder that is github. It is a great tool but also damn confusing. Who knew in the late 2000s someone would come up with a new Unix command line power tool that was powerful enough to manage kernels, sharp enough to cut your fingers off, and yet with enough grinding action to mash the nubs into a pulp?
posted by Nelson at 4:11 PM on May 7, 2011

Git is the perfect "scratching an itch" open source project. Linus wanted something like BitKeeper, only free, to manage the monster that is Linux kernel development. I'd bet he pretty amused at what's been done with it besides that.
posted by tommasz at 4:14 PM on May 7, 2011

the British call a contemptible person a ‘git’.

"I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git."
posted by Foci for Analysis at 4:26 PM on May 7, 2011 [6 favorites]

the British call a contemptible person a ‘git’.

Well... in git... a really contemptible person doesn't commit. :)
posted by hippybear at 4:31 PM on May 7, 2011

My favourite summary of Git includes this little gem, which sold me on the tool.
And then there’s git rebase --interactive, which is a bit like git commit --amend hopped up on acid and holding a chainsaw – completely insane and quite dangerous but capable of exposing entirely new states of mind. Here you can edit, squash, reorder, tease apart, and annotate existing commits in a way that’s easier and more intuitive than it ought to be.
posted by mikelieman at 5:24 PM on May 7, 2011 [5 favorites]

TFS? Anyone?
posted by Ad hominem at 5:39 PM on May 7, 2011

Linus wanted something like [...], only free, to manage the monster that is [...]. I'd bet he pretty amused at what's been done with it besides that.

Wouldn't be the first time.
posted by b1tr0t at 5:55 PM on May 7, 2011

TFS? Anyone?

NOOOOOO!!!!!! I was forced to use it at my former company. Since I was a Mac programmer, I had to run Windows with Visual Studio & VSTS in a VM just for source control. I'm thankful that I can use whatever I want now, which happens to be Git just because it sucks less than Subversion & Xcode 4 supports it.
posted by mike3k at 6:04 PM on May 7, 2011

Git achievements - presumably the gamification of git is... gittification?
posted by running order squabble fest at 6:20 PM on May 7, 2011 [2 favorites]

I really didn't have an appreciation for the differences between source control tools until I was assigned to convert an RCS repository to SVN. That was a pain in the ass. I've been using git for random personal projects - not quite as easy as SVN, but still a lot more friendly than RCS.
posted by baxter_ilion at 6:33 PM on May 7, 2011

As a teaching tool, this is actually pretty cool and I'll definitely try it on new team members. Surprised that a college student came up with it, I thought the big thing was that kids coming of college didn't have an idea about source control, and now they're git magicians?

TFS? Anyone?

Ha! We had a guy we brought in for a very specific task. He was good at what he did, but demanding as hell and did not like git, he wanted TFS. I never used it, so I have nothing against it but this guy would come storming in my office telling me how git sucked and how command line was "primitive" and how we were a backwards company and oh my God, did I want to pull an Alvy Singer and Marshall McLuhan right then and there and have Linus Torvalds tell him what an idiot he was.
posted by geoff. at 6:39 PM on May 7, 2011

My favorite git things is the repo John Resig ( of JQuery fame) opened up as a joke THUNDERHUB.
posted by localhuman at 7:22 PM on May 7, 2011

The gource and code_swarm links look awesome! Definitely going to plug our biggish work repos into them to see the pretty they produce.
posted by xqwzts at 7:40 PM on May 7, 2011

My company just recently moved to DVCS (Mercurial) after a decade of CVS, and people are still struggling to wrap their heads around the concepts. I'm really tempted to have a drunken in-office happy hour game of PiHgionary to help people get the hang of it.

I'll write up the proposal and submit it to my boss... I'll call it in honor of my early experiences with "revision control" (MS "PIGHIO~7.doc" if you're nasty).
posted by Riki tiki at 8:32 PM on May 7, 2011

I love my Git. We used RCS (and still to for single config files in places) and I never got the hang of it for my projects with many files. So I tried SVN shortly after it was announced, evil DB lockups and merges that never quite worked right, but tolerably better than RCS. Then I tried Git on a whim. Took a few days, but those first few blindingly fast commits made me go WOW, that first diff against old revisions made me go WOW!, rebase --interactive sealed the deal. And when I realized I had been committing to a @work repository with my zengargoyle name and was able to easily fix that mistake, there was no going back. Now work has officially changed out of the dark ages to SVN and I should be using git-svn, but I just checkout the SVN trunk, do a git --init and add my stuff, work away and svn commit when I have a finished feature.

Now I'm wondering if anyone has build an image store on top of Git, seems like it might be a great way to deal with duplicate images.
posted by zengargoyle at 8:57 PM on May 7, 2011

I like to use Git when I'm TFPO on the pliny with about 56,000 timbrids in queue. It's only then that my suspicions are confirmed: that all timbrids have coalesced into a YRT cluster.

When the cluster disamfrabulates, that's when the real fun begins!
posted by not_on_display at 10:18 PM on May 7, 2011 [2 favorites]

Git is an amazing piece of work. It's one of the only things keeping my working life from disintegrating into complete chaos, and I won't use anything less powerful if I can possibly help it.

It also has pretty much the worst command-line interface I deal with regularly. It's confusing, inconsistent, terminologically muddled, and absurdly arbitrary.

All part of the charm, I guess.

not_on_display: Don't forget to frobnicate the metric baffles on your pre-ridescent whuzzles. Those timbrids can get out of hand.
posted by brennen at 10:41 PM on May 7, 2011 [1 favorite]

The Perforce Running Man inspired its own Facebook page. Top that, git.
posted by i_have_a_computer at 10:41 PM on May 7, 2011 [1 favorite]

fyi, git for powershell is called posh git
posted by East Manitoba Regional Junior Kabaddi Champion '94 at 10:56 PM on May 7, 2011 [3 favorites]

I've always thought that version control, and now distributed version control, were concepts that don't get enough play outside of the software community. Do lawyers, writers, and others who need to collaboratively edit documents have systems like this?
posted by heathkit at 11:05 PM on May 7, 2011

I've still got Perforce running on a ultra 10 sitting on my desk. Used it for years and I still got nervous every time I branched.
posted by Ad hominem at 11:07 PM on May 7, 2011

Do lawyers, writers, and others who need to collaboratively edit documents have systems like this?

I can only speak based on what I know of financial documents such as SEC compliance docs, prospectuses and certain M&A documents. But, the answer is,yes. There are many companies that a firm will hire to manage a "revision cycle", there could be a working group of dozens of people that all need to make changes. Changes are keyed by operators (working in "secure" locations in India most of the time) and all changes are tracked. It works as you expect, you can revert, clone a job from any point (usually called copy/revise), get a proof with all changes within certain changesets (called levels). The revision cycle keeps going, client submits changes, proofs get sent out until a book is printed, or an electronic version is filed with the SEC.
posted by Ad hominem at 11:24 PM on May 7, 2011

Do lawyers, writers, and others who need to collaboratively edit documents have systems like this?

I saw Mark Shuttleworth (of Canonical/Ubuntu/Space fame) give a talk about this back in 2005. His argument was that "diff" and "patch" were crucial tools for open source development collaboration, and could completely revolutionise other information worker fields if only they could be made accessible to them.

Canonical released bazaar in 2007.
posted by simonw at 1:49 AM on May 8, 2011 [2 favorites]

There are three projects that improve git's of huge files by keeping those files outside git's database, zengargoyle.

- git-bigfiles alters git's diff, pack, etc. algorithms to improve speed on large files, but costs disk space.
- git-media provides a media store where git smudge filters may store media files.
- git-annex also provides a distributed partial media store accessed through symlinks instead of smudge filters. In short, you may "drop" big media file locally so long as git-annex can verify they still exist on some remote. (see also sharebox)

There are ad hoc solutions for special cases of partial repositories, but only git-annex let's you handle them dynamically.
posted by jeffburdges at 2:55 AM on May 8, 2011 [1 favorite]

We need a good wiki based on git for writing books in LaTeX and ConTeXt because :
- mathematicians and physicists should, but don't, use Git.
- wikibooks isn't really that great for serious projects.
- many professors have half written textbook projects in LaTeX.

Adobe offered versioning software oriented towards their products, but apparently they've discontinued it. I donno if there are diff and patch tools for Gimp's .xcf files.
posted by jeffburdges at 3:17 AM on May 8, 2011 [1 favorite]

simonw: "Canonical released bazaar in 2007."

Technically it was released in 2005: "A public website and mailing list were established in March 2005 and the first numbered pre-release, 0.0.1, was released on March 26, 2005"

The problem Canonical ran into is that two weeks later, Torvalds published git, and, owing to his massive army of kernel hacker followers, has pretty much crushed bzr ever since. Fortunately Shuttleworth's apparent plan to use Ubuntu as a showcase for distributed version control had some unexpected success on its own merits. So much so that only when I talk about this topic in particular do I remember that Launchpad is supposed to be the github of bzr.

Perhaps once Canonical unites people against Unity, they can reexamine that problem.
posted by pwnguin at 2:27 PM on May 8, 2011 [2 favorites]

It also has pretty much the worst command-line interface I deal with regularly. It's confusing, inconsistent, terminologically muddled, and absurdly arbitrary.

You should try bzr. The only thing I find confusing there is just the nature of distributed version control. Not that anything ever goes wrong--it all just Magically Works Somehow. But the paradigm shift from cvs/svn is profound.

(That's actually the biggest stumbling block I've come across in trying to convert non-distributed vcs people. They think it has to be hard collaborating with other people and so they keep trying to make confusion exist where none does.)

...has pretty much crushed bzr ever since.

I can't find an official announcement, but every GNU project I've seen on a DVCS is on bzr. Probably a license thing.
posted by DU at 5:03 AM on May 9, 2011

You can't discuss the history of version control without pouring a beer out for BitKeeper. Larry McVoy was responsible for evangelizing a lot of the ideas of distributed version control and built a fully functioning SCM for the Linux kernel. It was only Linus' dissatisfaction with it (and a license snafu) that led to git being written.
posted by Nelson at 6:59 AM on May 9, 2011

Diff and patch are the missing part of most file formats, and most applications for that matter, IMO.

I wrote JDiff ten years ago to show diffs between Java APIs. I'm writing a JIRA plugin to show diffs between JIRA projects and their workflows. I think what appeals going all-meta on something. It's oddly enticing.

posted by mdoar at 2:36 PM on May 9, 2011

I have recently begun using git and I'm still shedding my misconceptions about version control, but I already can see how powerful it is. My first commit was actually to fix a bug in someone else's code. It is an eye opening experience to use it and I say this coming from a background as the person who comes into software development projects and whips things in shape with version control, issue tracking and other good practices. Transitioning to git sometimes feels like learning it all over (or unlearning things) but I sense there is something good on the other side.

I'm glad to see from a comment above that the legal field uses version control, but could you imagine if congress used github to draft and comment on legislation? That would be amazing transparency. Heck, I would love to make some edits and pull requests on legislation.
posted by dgran at 10:55 AM on May 11, 2011

« Older Kitten crash test, in slow motion, with a suitable...  |  Filter Bubbles: As web compani... Newer »

This thread has been archived and is closed to new comments