From: Christoph Duelli <duelli@melosgmbh.de>
To: Johannes Sixt <j.sixt@viscovery.net>, spearce@spearce.org
Cc: git@vger.kernel.org
Subject: Re: Is a given file known to git?
Date: Tue, 11 Mar 2008 10:27:16 +0100 [thread overview]
Message-ID: <47D65074.4000505@melosgmbh.de> (raw)
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
next prev parent reply other threads:[~2008-03-11 9:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-11 7:15 Is a given file known to git? Christoph Duelli
2008-03-11 7:24 ` Shawn O. Pearce
2008-03-11 7:38 ` Johannes Sixt
2008-03-11 9:27 ` Christoph Duelli [this message]
2008-03-11 9:36 ` Johannes Sixt
2008-03-11 9:41 ` Christoph Duelli
2008-03-11 9:45 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47D65074.4000505@melosgmbh.de \
--to=duelli@melosgmbh.de \
--cc=git@vger.kernel.org \
--cc=j.sixt@viscovery.net \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.