aboutsummaryrefslogtreecommitdiff
path: root/builtin-commit.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2009-08-20 20:46:58 +0700
committerJunio C Hamano <gitster@pobox.com>2009-08-23 17:13:32 -0700
commitb4d1690df11ae6ce382b93778616b1a20f1774ff (patch)
tree63ba6b306c569dc59c24361ebb72ac1f081b8f0e /builtin-commit.c
parent44a3691362dc71241a5d68d90b07642c46992e4a (diff)
downloadgit-b4d1690df11ae6ce382b93778616b1a20f1774ff.tar.gz
git-b4d1690df11ae6ce382b93778616b1a20f1774ff.tar.xz
Teach Git to respect skip-worktree bit (reading part)
grep: turn on --cached for files that is marked skip-worktree ls-files: do not check for deleted file that is marked skip-worktree update-index: ignore update request if it's skip-worktree, while still allows removing diff*: skip worktree version Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-commit.c')
-rw-r--r--builtin-commit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/builtin-commit.c b/builtin-commit.c
index 4bcce06fb..a0b1fd35c 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c
@@ -180,6 +180,11 @@ static void add_remove_files(struct string_list *list)
for (i = 0; i < list->nr; i++) {
struct stat st;
struct string_list_item *p = &(list->items[i]);
+ int pos = index_name_pos(&the_index, p->string, strlen(p->string));
+ struct cache_entry *ce = pos < 0 ? NULL : active_cache[pos];
+
+ if (ce && ce_skip_worktree(ce))
+ continue;
if (!lstat(p->string, &st)) {
if (add_to_cache(p->string, &st, 0))