[PATCH 6/6] RFC - Notes merge: die when asked to merge a non-existent ref.
- From
- Yann Dirson <ydirson@free.fr>
- Date
- Jun 18, 2011, 21:06 UTC
- Message-ID
- <1308431208-13353-7-git-send-email-ydirson@free.fr>
- In-Reply-To
- <1308431208-13353-1-git-send-email-ydirson@free.fr>
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@free.fr> --- 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