From: Junio C Hamano <gitster@pobox.com>
To: Johan Herland <johan@herland.net>
Cc: David Turner <dturner@twopensource.com>,
Git mailing list <git@vger.kernel.org>,
Michael Haggerty <mhagger@alum.mit.edu>,
Eric Sunshine <sunshine@sunshineco.com>,
Philip Oakley <philipoakley@iee.org>
Subject: Re: [PATCH v3 2/6] notes: replace pseudorefs with real refs
Date: Tue, 28 Jul 2015 15:52:17 -0700 [thread overview]
Message-ID: <xmqqpp3bc2u6.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <CALKQrgdLC_sLkM3jyH6pnDoY+RTHr9wJR_VH6iirBWmvyHYcVA@mail.gmail.com> (Johan Herland's message of "Wed, 29 Jul 2015 00:38:03 +0200")
Johan Herland <johan@herland.net> writes:
Johan Herland <johan@herland.net> writes:
> However, in any case, notes merges are always per _repo_ and never per
> _worktree_, so this is all unrelated to the current patch/discussion
> AFAICS.
Thanks for chiming in, but I actually think you are confused.
"git merge" is always per _repo_ in the sense that the result of a
merge of a topic to the 'master' is recorded in the 'master' which
is per-repo. In the multi-worktree world order, that does not
change. What changes is that you could have different worktrees
that check out different branches. Worktree A may have 'master'
checked out and do the merge there to update the tip of 'master'.
But while worktree A is doing that, worktree B may have 'next'
checked out and do an unrelated merge there. Once worktree A leaves
'master' by checking out another branch, worktree B is free to check
out 'master' and do further merges there. Merging into 'master' is
per _repo_, but the act of merging is per worktree.
I think merges of refs/notes/commits and refs/notes/someotherthing
works exactly the same way. In worktree A, you may decide to merge
a notes tree refs/notes/commits with somebody else's. It may
conflict and you may need to "lock" refs/notes/commits from being
touched by other worktrees while resolving that, but that does not
mean other worktrees cannot do a merge of refs/notes/someotherthing
at all. The temporary area you use for merging notes, i.e. the
working tree as far as notes merge is concerned, is private to
worktree A and does not need to be seen by other worktrees.
So while you are working on merging and resolving, that intermediate
state is *NOT* per _repo_ at all. It is at most per worktree (Yes
you could extend and have one notes_merge_ref per each refs/notes/*
ref to make it even finer grained to allow more than one notes merge
going on inside a single worktree, but I do not think it is worth
it).
next prev parent reply other threads:[~2015-07-28 22:52 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-28 18:12 [PATCH v3 0/6] pseudorefs David Turner
2015-07-28 18:12 ` [PATCH v3 1/6] refs: Introduce pseudoref and per-worktree ref concepts David Turner
2015-07-28 18:12 ` [PATCH v3 2/6] notes: replace pseudorefs with real refs David Turner
2015-07-28 19:00 ` Junio C Hamano
2015-07-28 19:24 ` David Turner
2015-07-28 19:44 ` Junio C Hamano
2015-07-28 21:23 ` [PATCH] notes: handle multiple worktrees David Turner
2015-07-28 21:42 ` David Turner
2015-07-28 22:00 ` Junio C Hamano
2015-07-28 22:12 ` Junio C Hamano
2015-07-28 22:50 ` Johan Herland
2015-08-03 13:27 ` Duy Nguyen
2015-07-28 22:17 ` Eric Sunshine
2015-07-28 22:38 ` [PATCH v3 2/6] notes: replace pseudorefs with real refs Johan Herland
2015-07-28 22:52 ` Junio C Hamano [this message]
2015-07-28 23:43 ` Johan Herland
2015-07-29 0:33 ` Junio C Hamano
2015-07-29 0:56 ` Michael Haggerty
2015-07-29 1:23 ` Jacob Keller
2015-07-29 1:24 ` Johan Herland
2015-07-29 2:25 ` Junio C Hamano
2015-07-29 2:00 ` Junio C Hamano
2015-07-29 2:53 ` Johan Herland
2015-07-29 5:00 ` Junio C Hamano
2015-07-29 2:34 ` Johan Herland
2015-07-29 5:01 ` Junio C Hamano
2015-07-29 13:19 ` Johan Herland
2015-07-29 16:37 ` Junio C Hamano
2015-07-29 16:58 ` Junio C Hamano
2015-07-30 6:05 ` Johan Herland
2015-07-30 16:24 ` Junio C Hamano
2015-07-29 2:17 ` Junio C Hamano
2015-07-29 2:37 ` Johan Herland
2015-07-28 18:12 ` [PATCH v3 3/6] refs: add ref_type function David Turner
2015-07-29 6:32 ` Eric Sunshine
2015-07-28 18:12 ` [PATCH v3 4/6] pseudorefs: create and use pseudoref update and delete functions David Turner
2015-07-29 6:38 ` Eric Sunshine
2015-07-28 18:12 ` [PATCH v3 5/6] rebase: use update_ref David Turner
2015-07-28 18:12 ` [PATCH v3 6/6] sequencer: replace write_cherry_pick_head with update_ref David Turner
2015-07-28 19:01 ` [PATCH v3 0/6] pseudorefs Junio C Hamano
2015-07-28 19:07 ` David Turner
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=xmqqpp3bc2u6.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=dturner@twopensource.com \
--cc=git@vger.kernel.org \
--cc=johan@herland.net \
--cc=mhagger@alum.mit.edu \
--cc=philipoakley@iee.org \
--cc=sunshine@sunshineco.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.