davedelong.com

  • home
  • blog
  • downloads
  • portfolio
  • contact
Home

Search










Have a look at my Amazon Wishlist.

davedelong's tweets

  • @JayCarr it's in the prefs, under "Advanced" — 11 hours 26 min ago
  • so that bug i was tracking down all afternoon wasn't actually my bug. silly xib using a wonky encoding :P — 14 hours 51 min ago
  • @alesplin 5 pm Mountain Time, i think — 16 hours 54 min ago
  • @JayCarr not yet... — 17 hours 24 min ago
  • Software Engineering is the "[art of making] software accessible to those who do not know how it works." http://bit.ly/9cNqsF — 23 hours 27 min ago
  •  
  • 1 of 477
  • ››
more

Following open source projects

davedelong — Fri, 07/03/2009 - 13:41

I follow a fair number of open source projects. Most of them are based on SVN, a few on Git, a couple on Mercurial, and only one or two on CVS. There is, unfortunately, no equivalent to the Tortoise system for Mac (TortoiseSVN, TortoiseCVS, TortoiseGit, TortoiseHg, etc). The best we have is the wonderful Versions application, although that only supports Subversion repositories.

When I need a repository, I'll usually use Subversion. I understand how it works, I'm familiar with it, and I don't need the powerful distributed control that Mercurial and Git offer. I just need something that can track the changes I make to a project over time and support minimal branching, tagging, and merging. Subversion (coupled with Versions) works great for that.

However, when I follow projects that don't use Subversion, I can often lose track of when I need to update them. Versions has a nice little status bubble in its repository listing, but Git, CVS, and Mercurial don't have any sort of decent GUI on the Mac.

To solve this, I came up with the following bash script that I stuck in ~/Applications and execute every now and then:

#!/bin/bash
 
IFS="
"
function updateProjects {
	cd $1;
	for i in $(ls $1); do
		cd $i
		echo "Updating $i";
		eval $2;
		cd ../;
	done;
}
 
svn_dir="/Users/dave/Developer/Open Source/SVN Projects"
git_dir="/Users/dave/Developer/Open Source/Git Projects"
hg_dir="/Users/dave/Developer/Open Source/Hg Projects"
cvs_dir="/Users/dave/Developer/Open Source/CVS Projects"
 
updateProjects $svn_dir "svn up";
updateProjects $git_dir "git pull";
updateProjects $hg_dir "hg update";
updateProjects $cvs_dir "cvs update";

I just run that once a day or so, and it automatically keeps my checkouts and clones supplied with the latest changes.

  • Add new comment

SCPlugin

Anonymous — Fri, 07/03/2009 - 13:52

Um, yes there is (for SVN). SCPlugin.

  • reply

You're right, there is. But

davedelong — Fri, 07/03/2009 - 13:56

You're right, there is. But since I have Versions, I don't really need an SVN plugin for Finder. =)

  • reply
  • home
  • blog
  • downloads
  • portfolio
  • contact