From: Johan Herland <johan@herland.net>
To: Yann Dirson <ydirson@free.fr>
Cc: git@vger.kernel.org, Jeff King <peff@peff.net>
Subject: Re: [PATCH 6/6] RFC - Notes merge: die when asked to merge a non-existent ref.
Date: Mon, 20 Jun 2011 00:03:46 +0200 [thread overview]
Message-ID: <201106200003.46490.johan@herland.net> (raw)
In-Reply-To: <1308431208-13353-7-git-send-email-ydirson@free.fr>
On Saturday 18 June 2011, Yann Dirson wrote:
> 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
I understand your reasoning, and I don't have a problem with changing this
behavior to be in line with "git merge".
> 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);
Hmm. I'm not sure requiring the remote ref to always point to a _commit_ is
the right solution here. In previous discussions on the notes topic, some
people (Peff?) expressed a need/interest for history-less notes refs (i.e. a
notes tree where we don't keep track of its development, but only refer to
the latest/current version). Obviously, there are two ways to implement
history-less notes refs: (a) making the notes ref point to a notes commit
without any parents (i.e. each notes commit is a root commit), or (b) making
the notes ref point directly at the notes _tree_ object (i.e. no commit
object at all).
I can't remember off the top of my head whether our earlier discussions on
this topic resulted in us excluding support for option (b), but if we
didn't, it should be possible to merge notes refs where one or both refs
point directly at a tree object, and your above line would break this.
> [...]
>
> 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)"
> -'
Instead of removing the test, please change it into verifying the _new_
expected behavior (that we fail with an appropriate error message when asked
to merge a non-existent notes ref).
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net
next prev parent reply other threads:[~2011-06-19 22:08 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-13 7:09 Commit notes workflow Yann Dirson
2011-06-14 10:15 ` Johan Herland
[not found] ` <f81891b81d39.4df76a5c@bertin.fr>
2011-06-14 14:41 ` Johan Herland
2011-06-15 9:20 ` ydirson
2011-06-15 9:37 ` Johan Herland
2011-06-15 9:57 ` ydirson
2011-06-15 10:53 ` Johan Herland
2011-06-18 21:06 ` [PATCH 0/6] Small notes usability improvements Yann Dirson
2011-06-18 21:06 ` [PATCH 1/6] Bring notes.c template handling in line with commit.c Yann Dirson
2011-06-19 21:23 ` Johan Herland
2011-06-19 22:50 ` Junio C Hamano
2011-06-20 7:41 ` Johan Herland
2011-06-20 18:48 ` Yann Dirson
2011-06-21 19:39 ` Yann Dirson
2011-06-18 21:06 ` [PATCH 2/6] Factorize shortening of notes refname for display Yann Dirson
2011-06-19 21:25 ` Johan Herland
2011-06-19 22:51 ` Junio C Hamano
2011-06-20 18:49 ` Yann Dirson
2011-06-18 21:06 ` [PATCH 3/6] Include name of notes ref in template when creating/editing notes Yann Dirson
2011-06-18 21:06 ` [PATCH 4/6] Allow "git notes merge" to use refs/remote-notes/ as a source Yann Dirson
2011-06-19 21:45 ` Johan Herland
2011-06-18 21:06 ` [PATCH 5/6] Assume a note ref starting with refs must not be prepended refs/notes/ Yann Dirson
2011-06-18 21:06 ` [PATCH 6/6] RFC - Notes merge: die when asked to merge a non-existent ref Yann Dirson
2011-06-19 22:03 ` Johan Herland [this message]
2011-06-20 7:16 ` Jeff King
2011-06-20 7:29 ` Johan Herland
2011-06-19 22:06 ` [PATCH 0/6] Small notes usability improvements Johan Herland
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201106200003.46490.johan@herland.net \
--to=johan@herland.net \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=ydirson@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).