summaryrefslogtreecommitdiff
path: root/show-files.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 19:43:32 (GMT)
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 19:43:32 (GMT)
commiteec8c633c117c83a9fd2be7054b169d3cee5806d (patch)
tree59c9ea857e563de5e3bb27f0cb6133a6f22c8964 /show-files.c
parent2fbdd1317480d2f14756d94e41a8eb07442d4841 (diff)
downloadgit-eec8c633c117c83a9fd2be7054b169d3cee5806d.zip
git-eec8c633c117c83a9fd2be7054b169d3cee5806d.tar.gz
git-eec8c633c117c83a9fd2be7054b169d3cee5806d.tar.bz2
Add "--unmerged" flag to "show-files", which does what the name implies.
The flag also implies "--stage", since unmerged file information doesn't make sense without the full output.
Diffstat (limited to 'show-files.c')
-rw-r--r--show-files.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/show-files.c b/show-files.c
index 0ecb2bd..b1a8e3d 100644
--- a/show-files.c
+++ b/show-files.c
@@ -15,6 +15,7 @@ static int show_cached = 0;
static int show_others = 0;
static int show_ignored = 0;
static int show_stage = 0;
+static int show_unmerged = 0;
static int line_terminator = '\n';
static const char **dir;
@@ -112,6 +113,8 @@ static void show_files(void)
if (show_cached | show_stage) {
for (i = 0; i < active_nr; i++) {
struct cache_entry *ce = active_cache[i];
+ if (show_unmerged && !ce_stage(ce))
+ continue;
if (!show_stage)
printf("%s%c", ce->name, line_terminator);
else
@@ -170,12 +173,18 @@ int main(int argc, char **argv)
show_stage = 1;
continue;
}
+ if (!strcmp(arg, "--unmerged")) {
+ // There's no point in showing unmerged unless you also show the stage information
+ show_stage = 1;
+ show_unmerged = 1;
+ continue;
+ }
usage("show-files [-z] (--[cached|deleted|others|ignored|stage])*");
}
/* With no flags, we default to showing the cached files */
- if (!(show_stage | show_deleted | show_others | show_ignored))
+ if (!(show_stage | show_deleted | show_others | show_ignored | show_unmerged))
show_cached = 1;
read_cache();