Skip to content

Commit

Permalink
refresh-index: fix bitmask assignment
Browse files Browse the repository at this point in the history
5fdeacb (Teach update-index about --ignore-submodules, 2008-05-14) added a
new refresh option flag but did not assign a unique bit for it correctly,
and broke "update-index --ignore-missing".

This fixes it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Jul 20, 2008
1 parent a1b6fb0 commit 3f1b7b6
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 1 deletion.
2 changes: 1 addition & 1 deletion cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ extern void fill_stat_cache_info(struct cache_entry *ce, struct stat *st);
#define REFRESH_UNMERGED 0x0002 /* allow unmerged */
#define REFRESH_QUIET 0x0004 /* be quiet about it */
#define REFRESH_IGNORE_MISSING 0x0008 /* ignore non-existent */
#define REFRESH_IGNORE_SUBMODULES 0x0008 /* ignore submodules */
#define REFRESH_IGNORE_SUBMODULES 0x0010 /* ignore submodules */
extern int refresh_index(struct index_state *, unsigned int flags, const char **pathspec, char *seen);

struct lock_file {
Expand Down
89 changes: 89 additions & 0 deletions t/t2103-update-index-ignore-missing.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
#!/bin/sh

test_description='update-index with options'

. ./test-lib.sh

test_expect_success basics '
>one &&
>two &&
>three &&
# need --add when adding
test_must_fail git update-index one &&
test -z "$(git ls-files)" &&
git update-index --add one &&
test zone = "z$(git ls-files)" &&
# update-index is atomic
echo 1 >one &&
test_must_fail git update-index one two &&
echo "M one" >expect &&
git diff-files --name-status >actual &&
test_cmp expect actual &&
git update-index --add one two three &&
for i in one three two; do echo $i; done >expect &&
git ls-files >actual &&
test_cmp expect actual &&
test_tick &&
(
test_create_repo xyzzy &&
cd xyzzy &&
>file &&
git add file
git commit -m "sub initial"
) &&
git add xyzzy &&
test_tick &&
git commit -m initial &&
git tag initial
'

test_expect_success '--ignore-missing --refresh' '
git reset --hard initial &&
echo 2 >one &&
test_must_fail git update-index --refresh &&
echo 1 >one &&
git update-index --refresh &&
rm -f two &&
test_must_fail git update-index --refresh &&
git update-index --ignore-missing --refresh
'

test_expect_success '--unmerged --refresh' '
git reset --hard initial &&
info=$(git ls-files -s one | sed -e "s/ 0 / 1 /") &&
git rm --cached one &&
echo "$info" | git update-index --index-info &&
test_must_fail git update-index --refresh &&
git update-index --unmerged --refresh &&
echo 2 >two &&
test_must_fail git update-index --unmerged --refresh >actual &&
grep two actual &&
! grep one actual &&
! grep three actual
'

test_expect_success '--ignore-submodules --refresh (1)' '
git reset --hard initial &&
rm -f two &&
test_must_fail git update-index --ignore-submodules --refresh
'

test_expect_success '--ignore-submodules --refresh (2)' '
git reset --hard initial &&
test_tick &&
(
cd xyzzy &&
git commit -m "sub second" --allow-empty
) &&
test_must_fail git update-index --refresh &&
test_must_fail git update-index --ignore-missing --refresh &&
git update-index --ignore-submodules --refresh
'

test_done

0 comments on commit 3f1b7b6

Please sign in to comment.