From: Mike Rappazzo <rappazzo@gmail.com>
To: Nicolas Morey-Chaisemartin <nicolas@morey-chaisemartin.com>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [BUG] Wrong worktree path when using multiple worktree
Date: Tue, 3 Nov 2015 21:23:52 -0500 [thread overview]
Message-ID: <CANoM8SXKmqq5qpv7vFobyAj9mL0wxFPqWeTt5oJT1EP0+=NqwA@mail.gmail.com> (raw)
In-Reply-To: <CANoM8SVOPpOvnykGxfw+dn1Twwe8S=WKfePogx+GRQeAjn6D7g@mail.gmail.com>
On Tue, Nov 3, 2015 at 5:27 PM, Mike Rappazzo <rappazzo@gmail.com> wrote:
> On Tue, Nov 3, 2015 at 11:58 AM, Nicolas Morey-Chaisemartin
> <nicolas@morey-chaisemartin.com> wrote:
>> Hi,
>>
>> There seem to be an issue with the path computed for a worktree when multiple worktree were created (using git worktree)
>> In my Setup, I have 3 repos:
>> A/repo (main One)
>> A/repo-patches (worktree, using branch dev)
>> B/repo (worktree, using branch next)
>>
>> I'm working in A/repo-patches an run:
>> $ git checkout next
>> fatal: 'next' is already checked out at 'A/repo-patches'
>>
>> Which is partially true but not completely.
>> I looked a bit in the code and found that the issue comes from here (get_linked_worktree):
>> if (!strbuf_strip_suffix(&worktree_path, "/.git")) {
>> strbuf_reset(&worktree_path);
>> strbuf_addstr(&worktree_path, absolute_path("."));
>> strbuf_strip_suffix(&worktree_path, "/.");
>> }
>> Because it wrongfully assumes that I am in the linked worktree.
>> I checked in the .git/worktree files and couldn't see anything that actually points to where the repo are setup.
>>
>> Nicolas
>
> This is code that I worked on, but I am unable to reproduce it locally
> just yet. Before I dig too deep, could you report the contents of
> "A/repo/.git/worktrees/repo-patches/gitdir" (or similar)? There is
> another issue reported[1] where the contents of the gitdir for a
> linked worktree are overwritten in some cases. A fix for this is
> being worked on (see discussion).
>
> In the mean time, I will continue to try and reproduce.
>
> [1]: http://thread.gmane.org/gmane.comp.version-control.git/280307
Followup: I was able to reproduce the error when I tried to simulate
the aforementioned bug. Here is a test which I added to t2027 (not
intended to publish):
+test_expect_success '"checkout" branch already checked out' '
+ git worktree add -b linked_1_br linked_1 master &&
+ git worktree add -b linked_2_br linked_2 master &&
+ echo ".git" > .git/worktrees/linked_2/gitdir &&
+ test_must_fail git -C linked_1 checkout linked_2_br
+'
+
Test run result:
--------------------
Preparing linked_1 (identifier linked_1)
HEAD is now at 2519212 init
Preparing linked_2 (identifier linked_2)
HEAD is now at 2519212 init
fatal: 'linked_2_br' is already checked out at
'/Users/mike/code/git-source/t/trash
directory.t2027-worktree-list/linked_1'
prev parent reply other threads:[~2015-11-04 2:24 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-03 16:58 [BUG] Wrong worktree path when using multiple worktree Nicolas Morey-Chaisemartin
2015-11-03 22:27 ` Mike Rappazzo
2015-11-04 2:23 ` Mike Rappazzo [this message]
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='CANoM8SXKmqq5qpv7vFobyAj9mL0wxFPqWeTt5oJT1EP0+=NqwA@mail.gmail.com' \
--to=rappazzo@gmail.com \
--cc=git@vger.kernel.org \
--cc=nicolas@morey-chaisemartin.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 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).