summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2005-04-15 15:08:09 -0700
committerLibravatar Linus Torvalds <torvalds@ppc970.osdl.org>2005-04-15 15:08:09 -0700
commitca2a0798656aa1219c6ff4fa66cd0f3340ddd5be (patch)
treeb9be893a0014c33d0b825cd9588566825c129a4b
parent[PATCH] Add -z option to show-files (diff)
downloadtgif-ca2a0798656aa1219c6ff4fa66cd0f3340ddd5be.tar.xz
[PATCH] Add "-q" option to show-diff.c
This adds the '-q' option for show-diff.c to squelch complaints for missing files. It is handy if you want to run it in the merge temporary directory after running merge-trees with its minimum checkout mode, which is the default, because you would not find any files other than the ones that needs human validation after the merge there. It also fixes the argument parsing bug Paul Mackerras noticed in <16991.42305.118284.139777@cargo.ozlabs.ibm.com> but slightly differently. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--show-diff.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/show-diff.c b/show-diff.c
index a15e9b4cf0..15dcd0525e 100644
--- a/show-diff.c
+++ b/show-diff.c
@@ -58,15 +58,20 @@ static void show_diff_empty(struct cache_entry *ce)
int main(int argc, char **argv)
{
int silent = 0;
+ int silent_on_nonexisting_files = 0;
int entries = read_cache();
int i;
- while (argc-- > 1) {
- if (!strcmp(argv[1], "-s")) {
- silent = 1;
+ for (i = 1; i < argc; i++) {
+ if (!strcmp(argv[i], "-s")) {
+ silent_on_nonexisting_files = silent = 1;
continue;
}
- usage("show-diff [-s]");
+ if (!strcmp(argv[i], "-q")) {
+ silent_on_nonexisting_files = 1;
+ continue;
+ }
+ usage("show-diff [-s] [-q]");
}
if (entries < 0) {
@@ -82,8 +87,10 @@ int main(int argc, char **argv)
void *new;
if (stat(ce->name, &st) < 0) {
+ if (errno == ENOENT && silent_on_nonexisting_files)
+ continue;
printf("%s: %s\n", ce->name, strerror(errno));
- if (errno == ENOENT && !silent)
+ if (errno == ENOENT)
show_diff_empty(ce);
continue;
}