From c8af25ca0157146de59b992c1f961f1af8465995 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Tue, 21 Feb 2006 12:48:30 -0800 Subject: git-ls-files: Fix, document, and add test for --error-unmatch option. Signed-off-by: Junio C Hamano --- Documentation/git-ls-files.txt | 5 +++++ ls-files.c | 1 + t/t3020-ls-files-error-unmatch.sh | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100755 t/t3020-ls-files-error-unmatch.sh diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt index fe5341295..28dc533d2 100644 --- a/Documentation/git-ls-files.txt +++ b/Documentation/git-ls-files.txt @@ -14,6 +14,7 @@ SYNOPSIS [-x |--exclude=] [-X |--exclude-from=] [--exclude-per-directory=] + [--error-unmatch] [--full-name] [--] []\* DESCRIPTION @@ -72,6 +73,10 @@ OPTIONS read additional exclude patterns that apply only to the directory and its subdirectories in . +--error-unmatch:: + If any does not appear in the index, treat this as an + error (return 1). + -t:: Identify the file status with the following tags (followed by a space) at the start of each line: diff --git a/ls-files.c b/ls-files.c index df93cf226..27059e204 100644 --- a/ls-files.c +++ b/ls-files.c @@ -758,6 +758,7 @@ int main(int argc, const char **argv) continue; error("pathspec '%s' did not match any.", pathspec[num] + prefix_offset); + errors++; } return errors ? 1 : 0; } diff --git a/t/t3020-ls-files-error-unmatch.sh b/t/t3020-ls-files-error-unmatch.sh new file mode 100755 index 000000000..d55559e55 --- /dev/null +++ b/t/t3020-ls-files-error-unmatch.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Copyright (c) 2006 Carl D. Worth +# + +test_description='git-ls-files test for --error-unmatch option + +This test runs git-ls-files --error-unmatch to ensure it correctly +returns an error when a non-existent path is provided on the command +line. +' +. ./test-lib.sh + +touch foo bar +git-update-index --add foo bar +git-commit -m "add foo bar" + +test_expect_failure \ + 'git-ls-files --error-unmatch should fail with unmatched path.' \ + 'git-ls-files --error-unmatch foo bar-does-not-match' + +test_expect_success \ + 'git-ls-files --error-unmatch should succeed eith matched paths.' \ + 'git-ls-files --error-unmatch foo bar' + +test_done +1 -- cgit v1.2.1