Browse Source

git rm: refresh index before up-to-date check

Since "git rm" is supposed to be porcelain, we should convince it to
be user friendly by refreshing the index itself.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
maint
Johannes Schindelin 17 years ago committed by Shawn O. Pearce
parent
commit
cced48a808
  1. 1
      builtin-rm.c
  2. 25
      t/t3600-rm.sh

1
builtin-rm.c

@ -137,6 +137,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix) @@ -137,6 +137,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)

if (read_cache() < 0)
die("index file corrupt");
refresh_cache(REFRESH_QUIET);

pathspec = get_pathspec(prefix, argv);
seen = NULL;

25
t/t3600-rm.sh

@ -219,14 +219,23 @@ test_expect_success 'Remove nonexistent file returns nonzero exit status' ' @@ -219,14 +219,23 @@ test_expect_success 'Remove nonexistent file returns nonzero exit status' '

test_expect_success 'Call "rm" from outside the work tree' '
mkdir repo &&
cd repo &&
git init &&
echo something > somefile &&
git add somefile &&
git commit -m "add a file" &&
(cd .. &&
git --git-dir=repo/.git --work-tree=repo rm somefile) &&
test_must_fail git ls-files --error-unmatch somefile
(cd repo &&
git init &&
echo something > somefile &&
git add somefile &&
git commit -m "add a file" &&
(cd .. &&
git --git-dir=repo/.git --work-tree=repo rm somefile) &&
test_must_fail git ls-files --error-unmatch somefile)
'

test_expect_success 'refresh index before checking if it is up-to-date' '

git reset --hard &&
test-chmtime -86400 frotz/nitfol &&
git rm frotz/nitfol &&
test ! -f frotz/nitfol

'

test_done

Loading…
Cancel
Save