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.
*/

Reply via email to