mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
refresh-index: fix bitmask assignment
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>
This commit is contained in:
parent
a1b6fb04b1
commit
3f1b7b607a
2
cache.h
2
cache.h
|
@ -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_UNMERGED 0x0002 /* allow unmerged */
|
||||||
#define REFRESH_QUIET 0x0004 /* be quiet about it */
|
#define REFRESH_QUIET 0x0004 /* be quiet about it */
|
||||||
#define REFRESH_IGNORE_MISSING 0x0008 /* ignore non-existent */
|
#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);
|
extern int refresh_index(struct index_state *, unsigned int flags, const char **pathspec, char *seen);
|
||||||
|
|
||||||
struct lock_file {
|
struct lock_file {
|
||||||
|
|
89
t/t2103-update-index-ignore-missing.sh
Executable file
89
t/t2103-update-index-ignore-missing.sh
Executable file
|
@ -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
|
Loading…
Reference in a new issue