This causes the "merge empty notes ref (z => y)" test in t3308-notes-merge.sh to fail - obviously, it is removing the functionnality that is tested for. Is there any real use for this ? It just seems so different from "git merge", which errors out in the similar situation: $ git merge foo fatal: 'foo' does not point to a commit Signed-off-by: Yann Dirson <ydirson@xxxxxxx> --- builtin/notes.c | 3 +++ t/t3308-notes-merge.sh | 6 ------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/builtin/notes.c b/builtin/notes.c index 6bff44f..058b14d 100644 --- a/builtin/notes.c +++ b/builtin/notes.c @@ -908,6 +908,9 @@ static int merge(int argc, const char **argv, const char *prefix) expand_notes_ref(&remote_ref, 1); o.remote_ref = remote_ref.buf; + if (!peel_to_type(o.remote_ref, 0, NULL, OBJ_COMMIT)) + die("'%s' does not point to a commit", o.remote_ref); + if (strategy) { if (!strcmp(strategy, "manual")) o.strategy = NOTES_MERGE_RESOLVE_MANUAL; diff --git a/t/t3308-notes-merge.sh b/t/t3308-notes-merge.sh index 24d82b4..2dcc1db 100755 --- a/t/t3308-notes-merge.sh +++ b/t/t3308-notes-merge.sh @@ -104,12 +104,6 @@ test_expect_success 'merge notes into empty notes ref (x => y)' ' test "$(git rev-parse refs/notes/x)" = "$(git rev-parse refs/notes/y)" ' -test_expect_success 'merge empty notes ref (z => y)' ' - git notes merge z && - # y should not change (still == x) - test "$(git rev-parse refs/notes/x)" = "$(git rev-parse refs/notes/y)" -' - test_expect_success 'change notes on other notes ref (y)' ' # Not touching notes to 1st commit git notes remove 2nd && -- 1.7.5.3 -- 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