diff options
author | Junio C Hamano <junkio@cox.net> | 2006-05-20 01:28:49 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-05-20 01:52:19 -0700 |
commit | 93872e07008510340eec951f0d037f7b3a0b8567 (patch) | |
tree | ce5b2c6456000dd5e8dde7b479c2ad6784966055 /update-index.c | |
parent | 283c8eef6c9a4e379c73904d2bc22b19341b15c8 (diff) | |
parent | d9b814cc97f16daac06566a5340121c446136d22 (diff) | |
download | git-93872e07008510340eec951f0d037f7b3a0b8567.tar.gz |
Merge branch 'lt/dirwalk' into jc/dirwalk-n-cache-tree
This commit is what this branch is all about. It records the
evil merge needed to adjust built-in git-add and git-rm for
the cache-tree extension.
* lt/dirwalk:
Add builtin "git rm" command
Move pathspec matching from builtin-add.c into dir.c
Prevent bogus paths from being added to the index.
builtin-add: fix unmatched pathspec warnings.
Remove old "git-add.sh" remnants
builtin-add: warn on unmatched pathspecs
Do "git add" as a builtin
Clean up git-ls-file directory walking library interface
libify git-ls-files directory traversal
Conflicts:
Makefile
builtin.h
git.c
update-index.c
Diffstat (limited to 'update-index.c')
-rw-r--r-- | update-index.c | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/update-index.c b/update-index.c index 8def9bcd9f..956b6b34f9 100644 --- a/update-index.c +++ b/update-index.c @@ -128,70 +128,6 @@ static int add_file_to_cache(const char *path) return 0; } -/* - * We fundamentally don't like some paths: we don't want - * dot or dot-dot anywhere, and for obvious reasons don't - * want to recurse into ".git" either. - * - * Also, we don't want double slashes or slashes at the - * end that can make pathnames ambiguous. - */ -static int verify_dotfile(const char *rest) -{ - /* - * The first character was '.', but that - * has already been discarded, we now test - * the rest. - */ - switch (*rest) { - /* "." is not allowed */ - case '\0': case '/': - return 0; - - /* - * ".git" followed by NUL or slash is bad. This - * shares the path end test with the ".." case. - */ - case 'g': - if (rest[1] != 'i') - break; - if (rest[2] != 't') - break; - rest += 2; - /* fallthrough */ - case '.': - if (rest[1] == '\0' || rest[1] == '/') - return 0; - } - return 1; -} - -static int verify_path(const char *path) -{ - char c; - - goto inside; - for (;;) { - if (!c) - return 1; - if (c == '/') { -inside: - c = *path++; - switch (c) { - default: - continue; - case '/': case '\0': - break; - case '.': - if (verify_dotfile(path)) - continue; - } - return 0; - } - c = *path++; - } -} - static int add_cacheinfo(unsigned int mode, const unsigned char *sha1, const char *path, int stage) { |