git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: phillip.wood123@gmail.com
To: Caleb White <cdwhite3@pm.me>,
	phillip.wood@dunelm.org.uk, git@vger.kernel.org
Cc: Taylor Blau <me@ttaylorr.com>, Junio C Hamano <gitster@pobox.com>,
	Eric Sunshine <sunshine@sunshineco.com>
Subject: Re: [PATCH v4 7/8] worktree: add relative cli/config options to `repair` command
Date: Sun, 24 Nov 2024 19:27:32 +0000	[thread overview]
Message-ID: <60325a17-82e3-4a4c-a6fd-d3b597f1c2bc@gmail.com> (raw)
In-Reply-To: <D5TBGJS8FWBE.3QYEZWZUS0C71@pm.me>

Hi Caleb

On 23/11/2024 05:41, Caleb White wrote:
> On Fri Nov 22, 2024 at 9:55 AM CST, Phillip Wood wrote:
>> On 01/11/2024 04:38, Caleb White wrote:
>> We used to update only the ".git", now we'll update both. In the case
>> where we're changing to/from absolute/relative paths that's good because
>> we'll update the "gitdir" file as well. In the other cases it looks like
>> we've we've found this worktree via the "gitdir" file so it should be
>> safe to write the same value back to that file.
> 
> Yes, there is an edge case that a file is written with the same (correct)
> contents, but I think this is acceptable given that it would be more
> complicated to check if the contents are the same before writing (which
> would involve reading the file).

That's fine - it might be worth explaining it in the commit message 
though (the same goes for the other patches where we start writing both 
files instead of one).

>>>    	strbuf_addf(&dotgit, "%s/.git", path);
>>> -	if (!strbuf_realpath(&realdotgit, dotgit.buf, 0)) {
>>> +	if (!strbuf_realpath(&dotgit, dotgit.buf, 0)) {
>>
>> This works because strbuf_realpath() copies dotgit.buf before it resets
>> dotgit but that does not seem to be documented and looking at the output of
>>
>>       git grep strbuf_realpath | grep \\.buf
>>
>> I don't see any other callers relying on this outside of your earlier
>> changes to this file. Given that I wonder if we should leave it as is
>> which would also simplify this patch as the interesting changes are
>> swamped by the strbuf tweaking.
> 
> I'd like to keep this if that's okay.

Let's leave it as is and see what Junio thinks - my worry is that if 
strbuf_realpath() gets refactored in the future it could break this code.

> All of the strbuf tweaking was
> so that way there is a consistency the variable names across the
> implementations---all the calls to `write_worktree_linking_files()` use
> `dotgit` and `gitdir` as the strubuf names so it should be easier to
> follow now.

Yes the end state is nice, I just found it a bit confusing getting there.

Best Wishes

Phillip

> Best,
> 
> Caleb
> 


  reply	other threads:[~2024-11-24 19:27 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-01  4:38 [PATCH v4 0/8] Allow relative worktree linking to be configured by the user Caleb White
2024-11-01  4:38 ` [PATCH v4 1/8] setup: correctly reinitialize repository version Caleb White
2024-11-01  4:38 ` [PATCH v4 2/8] worktree: add `relativeWorktrees` extension Caleb White
2024-11-19 15:07   ` Phillip Wood
2024-11-20  5:13     ` Caleb White
2024-11-22 16:44       ` Phillip Wood
2024-11-22 19:27         ` Caleb White
2024-11-01  4:38 ` [PATCH v4 3/8] worktree: refactor infer_backlink return Caleb White
2024-11-19 15:08   ` Phillip Wood
2024-11-20  5:20     ` Caleb White
2024-11-22 16:44       ` Phillip Wood
2024-11-22 19:26         ` Caleb White
2024-11-01  4:38 ` [PATCH v4 4/8] worktree: add `write_worktree_linking_files()` function Caleb White
2024-11-01  4:38 ` [PATCH v4 5/8] worktree: add relative cli/config options to `add` command Caleb White
2024-11-19 15:07   ` Phillip Wood
2024-11-20  5:01     ` Caleb White
2024-11-22 16:44       ` phillip.wood123
2024-11-23  4:40         ` Caleb White
2024-11-01  4:38 ` [PATCH v4 6/8] worktree: add relative cli/config options to `move` command Caleb White
2024-11-22 15:55   ` Phillip Wood
2024-11-23  4:11     ` Caleb White
2024-11-01  4:38 ` [PATCH v4 7/8] worktree: add relative cli/config options to `repair` command Caleb White
2024-11-22 15:55   ` Phillip Wood
2024-11-23  5:41     ` Caleb White
2024-11-24 19:27       ` phillip.wood123 [this message]
2024-11-26  0:00         ` Caleb White
2024-11-01  4:39 ` [PATCH v4 8/8] worktree: refactor `repair_worktree_after_gitdir_move()` Caleb White
2024-11-22 15:58   ` Phillip Wood
2024-11-23  4:36     ` Caleb White
2024-11-01  7:14 ` [PATCH v4 0/8] Allow relative worktree linking to be configured by the user Junio C Hamano
2024-11-01 13:18   ` Caleb White
2024-11-02 10:09     ` Junio C Hamano
2024-11-02 14:36   ` Kristoffer Haugsbakk
2024-11-22 15:57 ` Phillip Wood
2024-11-23  5:45   ` Caleb White
2024-11-26  1:51 ` [PATCH v5 " Caleb White
2024-11-26  1:51   ` [PATCH v5 1/8] setup: correctly reinitialize repository version Caleb White
2024-11-26  1:51   ` [PATCH v5 2/8] worktree: add `relativeWorktrees` extension Caleb White
2024-11-26  1:51   ` [PATCH v5 3/8] worktree: refactor infer_backlink return Caleb White
2024-11-26  1:51   ` [PATCH v5 4/8] worktree: add `write_worktree_linking_files()` function Caleb White
2024-11-26  1:52   ` [PATCH v5 5/8] worktree: add relative cli/config options to `add` command Caleb White
2024-11-26  1:52   ` [PATCH v5 6/8] worktree: add relative cli/config options to `move` command Caleb White
2024-11-26  1:52   ` [PATCH v5 7/8] worktree: add relative cli/config options to `repair` command Caleb White
2024-11-26  1:52   ` [PATCH v5 8/8] worktree: refactor `repair_worktree_after_gitdir_move()` Caleb White
2024-11-26  6:18   ` [PATCH v5 0/8] Allow relative worktree linking to be configured by the user Junio C Hamano
2024-11-26 17:02     ` Caleb White
2024-11-28 14:44   ` Phillip Wood
2024-11-28 17:58     ` Caleb White
2024-11-29 22:22   ` [PATCH v6 " Caleb White
2024-11-29 22:22     ` [PATCH v6 1/8] setup: correctly reinitialize repository version Caleb White
2024-11-29 22:22     ` [PATCH v6 2/8] worktree: add `relativeWorktrees` extension Caleb White
2024-11-29 22:22     ` [PATCH v6 3/8] worktree: refactor infer_backlink return Caleb White
2024-11-29 22:22     ` [PATCH v6 4/8] worktree: add `write_worktree_linking_files()` function Caleb White
2024-11-29 22:22     ` [PATCH v6 5/8] worktree: add relative cli/config options to `add` command Caleb White
2024-11-29 22:23     ` [PATCH v6 6/8] worktree: add relative cli/config options to `move` command Caleb White
2024-11-29 22:23     ` [PATCH v6 7/8] worktree: add relative cli/config options to `repair` command Caleb White
2024-11-29 22:23     ` [PATCH v6 8/8] worktree: refactor `repair_worktree_after_gitdir_move()` Caleb White
2024-12-02 14:57     ` [PATCH v6 0/8] Allow relative worktree linking to be configured by the user Phillip Wood
2024-12-03  4:54       ` Junio C Hamano
2024-12-03  5:21         ` Caleb White

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=60325a17-82e3-4a4c-a6fd-d3b597f1c2bc@gmail.com \
    --to=phillip.wood123@gmail.com \
    --cc=cdwhite3@pm.me \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=me@ttaylorr.com \
    --cc=phillip.wood@dunelm.org.uk \
    --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 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).