evan_tech

Previous Entry Share Next Entry
12:00 am, 23 Apr 08

dvcs and offline

I got a couple of comments on that previous post that betray a bit of a misunderstanding about how collaborative projects work in the presence of distributed version control.

Two possibilities: you're offline or online.

For circumstances when you really are offline (and again, I note that I really am without internet access for a surprising fraction of my hacking time) there is fundamentally no way a bug tracker that requires me to be online can work. For many, the answer to this problem is "wait until you're online" or "take notes in a text file", which is well and good if you're the sort to accept a sub-par situation as unsolvable. (I repeat from before: any time you're resorting to manually shuffling source code, your source control system is failing you*. You could make the same claim about any other tool.) So yes, bug tracking is importantly a communication tool, but if the situation is that I'm physically unable to communicate you can't cite non-communication as a negative of any proposed alternative.

Otherwise, even when you have internet access, no technology solves the communication problem if people aren't willing to communicate. "Private repositories" are a problem, but they're a problem no different from contributors who won't email or contributors who sit on a patch.

When I'm online collaborating with someone else, the workflows between an "offline" and "online" system are equivalent except for running the sync step after some operations. So I thought anon-commenter Daniel's point that email also has this offline-online hybrid behavior (where Outlook has the huge "Send / Receive" button on the toolbar) was right on -- I'd much rather use an offline email client that could sync than one that forced me to be online to use it**. And as he points out, email would be terrible for real-time communication if people only synced once every few days -- that's why you don't do that, with email or dvcs, if you intend to participate in a project. (Though in circumstances where I want to avoid email or hack on some code that doesn't yet compile, that workflow remains available.)

* By this metric the tools I use continue to fail me occasionally; they just fail less than the tools I used before.
** I remain hopeful such a technology will one day be invented. I gave up on mutt when I realized it can't scale beyond a few thousand messages and didn't provide any useful search. Maybe sup will get there.