From: Phillip Wood Date: Mon, 04 Sep 2023 10:10:29 GMT Subject: Re: [PATCH] sequencer: fix error message on failure to copy SQUASH_MSG Message-ID: <553482a5-e7cc-47ed-9279-307f258748ca@gmail.com> In-Reply-To: <20230903151132.739136-1-oswald.buddenhagen@gmx.de> On 03/09/2023 16:11, Oswald Buddenhagen wrote: > The message talked about renaming, while the actual action is copying. > This was introduced by 6e98de72c ("sequencer (rebase -i): add support > for the 'fixup' and 'squash' commands", 2017-01-02). > > Signed-off-by: Oswald Buddenhagen > > --- > i didn't try verifying whether the action shouldn't be actually be a > move, as i'm getting lost in this forest of files. This looks good, thanks. I think copying the file is OK. We're creating .git/SQUASH_MSG as a convenience in case the user decides to commit the conflict resolution themselves rather than leaving it to "rebase --continue". I don't think we reuse the contents of rebase_path_squash_msg() when tho rebase continues but copying it certainly isn't wrong and we're not in a hot path where we need to worry about the cost of copying a small file. Best Wishes Phillip > Cc: Johannes Schindelin > Cc: Phillip Wood > Cc: Junio C Hamano > > --- > totally on a tangent, does someone feel like teaching copy_file() to try > ioctl(FICLONE) (i.e., reflink) first? > --- > sequencer.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/sequencer.c b/sequencer.c > index a66dcf8ab2..2f3d7d4eee 100644 > --- a/sequencer.c > +++ b/sequencer.c > @@ -2320,7 +2320,7 @@ static int do_pick_commit(struct repository *r, > const char *dest = git_path_squash_msg(r); > unlink(dest); > if (copy_file(dest, rebase_path_squash_msg(), 0666)) { > - res = error(_("could not rename '%s' to '%s'"), > + res = error(_("could not copy '%s' to '%s'"), > rebase_path_squash_msg(), dest); > goto leave; > }