Skip to content

Commit

Permalink
git-diff-cache: add "-m" flag to match all non-checked-out files with…
Browse files Browse the repository at this point in the history
… the index.

This allows you to work with a directory tree that isn't fully populated,
without making diff-cache say that all the files are gone.
  • Loading branch information
Linus Torvalds committed May 5, 2005
1 parent 8ae0a8c commit 160c843
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions diff-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

static int cached_only = 0;
static int generate_patch = 0;
static int match_nonexisting = 0;
static int line_termination = '\n';

/* A file entry went away or appeared */
Expand All @@ -24,8 +25,14 @@ static int get_stat_data(struct cache_entry *ce, unsigned char **sha1p, unsigned
static unsigned char no_sha1[20];
int changed;
struct stat st;
if (lstat(ce->name, &st) < 0)
if (lstat(ce->name, &st) < 0) {
if (errno == ENOENT && match_nonexisting) {
*sha1p = sha1;
*modep = mode;
return 0;
}
return -1;
}
changed = cache_match_stat(ce, &st);
if (changed) {
mode = create_ce_mode(st.st_mode);
Expand Down Expand Up @@ -143,7 +150,7 @@ static void mark_merge_entries(void)
}

static char *diff_cache_usage =
"diff-cache [-r] [-z] [-p] [--cached] <tree sha1>";
"diff-cache [-r] [-z] [-p] [-i] [--cached] <tree sha1>";

int main(int argc, char **argv)
{
Expand All @@ -168,6 +175,10 @@ int main(int argc, char **argv)
line_termination = '\0';
continue;
}
if (!strcmp(arg, "-m")) {
match_nonexisting = 1;
continue;
}
if (!strcmp(arg, "--cached")) {
cached_only = 1;
continue;
Expand Down

0 comments on commit 160c843

Please sign in to comment.