From: Christoph Duelli Date: Tue, 11 Mar 2008 09:27:16 GMT Subject: Re: Is a given file known to git? Message-ID: <47D65074.4000505@melosgmbh.de> In-Reply-To: <47D636FC.2060203@viscovery.net> Johannes Sixt schrieb: > Christoph Duelli schrieb: >> Given a repository and a path p to a file in it: >> Is it possible (how?) to detect (in a bash script) if the file pointed >> to by p is "known" to git? >> Something along the line: >> if `git knows p? >> then >> ... >> fi > > For simplicity, I'll assume with "known to git" you mean whether the > current branch's tip has some content at the given path. Then you could write: > > if git rev-parse HEAD:"$p" >/dev/null 2>&1 > then > # git knows about $p > else > # git does not know about $p > fi > > -- Hannes Yes, thank you, Johannes and Shawn, this works. (A bit slow, though: with this test enabled my script takes 77 secs; without it it takes 0.3 secs. The time is spent in 9000 calls to the above test (the rev-parse version). (ok, the fact that there is a Perl system call around it might take some time, too).) [For the record: Shawn's ls-files variant takes: 148 secs Shawn's cat-file variant takes: 251 secs Time taken by time; roughly half user, half system. ] As this script won't run often, that not too big a deal. Still I would have hoped for a quicker way. Thanks -- Christoph Duelli