Comments on the Ruby script:
> include FileTest
AFAICT that's just for one call - exists?(), which I think would be
clearer as File.exists?() anyway.
> ARGC = ARGV.length
> if (ARGC == 0) or ((ARGC == 1) and not exists?(ARGV[0]))
> treeish = ARGV[0] || 'master'
I might rewrite that as
first = ARGV[0]
if first.nil? or not File.exist?(first)
treeish = first || 'master'
> cmd = "git diff --name-only '#{treeish}'"
> files = IO.popen( cmd ).readlines
Quoting nightmare. Unfortunately there's not a particularly easy and
terse solution. See
http://hans.fugal.net/blog/articles/2007/08/02/pipelining-processes-in-ruby
It could be adapted to this use case too. Oh, and you forgot(?) to close
your open file handle.
Actually, quoting nightmare aside I might do it this way:
files = `git diff --name-only '#{treeish}'`.split('\n')
for file in files
...
Cheers
--
Hans Fugal ; http://hans.fugal.net
There's nothing remarkable about it. All one has to do is hit the
right keys at the right time and the instrument plays itself.
-- Johann Sebastian Bach
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/