Johannes Schindelin <johannes.schindelin@xxxxxx> writes: > Oh, I appreciate your feedback. I am actually not all *that* certain > that removing the broken symref is the correct thing. It is this sort > of fruitful exchange that allows me to throw out an idea and be > relatively certain that something better will come out of v3 or v8 of > the patch series than what I had in mind. > > To be honest, the most important outcome is probably 2/4 -- which > should be enough to fix the issue reported by the Git for Windows > user. I could adjust the test so that it no longer insists that > origin/HEAD` be deleted, but still requires that `git gc` succeeds. > > I would have no problem to let this sit for a couple of days until > the final verdict. ... and a few days have passed. I am tempted to do the easy bits first, discarding the parts that both of us feel iffy for now without prejudice, keeping the first two commits with a bit of tweak. The primary tweak is to t6500 in the first patch, which I retitled below (and the patch shows s/failure/success/ but in the first step that only adds a failing test, it would of course expect a failure). And with "pack-objects: do not get distracted", the test will start passing. diff --git a/t/t6500-gc.sh b/t/t6500-gc.sh index b736774..5d7d414 100755 --- a/t/t6500-gc.sh +++ b/t/t6500-gc.sh @@ -30,7 +30,7 @@ test_expect_success 'gc -h with invalid configuration' ' test_i18ngrep "[Uu]sage" broken/usage ' -test_expect_failure 'gc removes broken refs/remotes/<name>/HEAD' ' +test_expect_success 'gc is not aborted due to a stale symref' ' git init remote && ( cd remote && @@ -39,9 +39,7 @@ test_expect_failure 'gc removes broken refs/remotes/<name>/HEAD' ' git branch -m develop && cd ../client && git fetch --prune && - git gc && - git branch --list -r origin/HEAD >actual && - test_line_count = 0 actual + git gc ) ' diff --git a/reachable.c b/reachable.c index 6356ae8..4cfd0de 100644 --- a/reachable.c +++ b/reachable.c @@ -28,7 +28,7 @@ static int add_one_ref(const char *path, const unsigned char *sha1, int flag, vo struct object *object; if ((flag & REF_ISSYMREF) && (flag & REF_ISBROKEN)) { - warning("ref is broken: %s", path); + warning("symbolic ref is dangling: %s", path); return 0; } -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html