threads / patch / 60190

patchsequencer: fix error message on failure to copy SQUASH_MSG

Subject: [PATCH] sequencer: fix error message on failure to copy SQUASH_MSG

## tl;dr

2 messages between Sep 3, 2023 and Sep 4, 2023. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Oswald Buddenhagen· Sep 3, 2023, 15:11 UTC · lore

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 <oswald.buddenhagen@gmx.de>

--- 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.

Cc: Johannes Schindelin <johannes.schindelin@gmx.de>
Cc: Phillip Wood <phillip.wood123@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>
---
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(-)
Show changes to sequencer.c +1 −1
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;
 			}
-- 
2.40.0.152.g15d061e6df
Phillip Wood· Sep 4, 2023, 10:10 UTC · re: Oswald Buddenhagen · lore

Re: [PATCH] sequencer: fix error message on failure to copy SQUASH_MSG

On 03/09/2023 16:11, Oswald Buddenhagen wrote:
Show 9 quoted lines
> 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 <oswald.buddenhagen@gmx.de>
> 
> ---
> 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
Show 24 quoted lines
> Cc: Johannes Schindelin <johannes.schindelin@gmx.de>
> Cc: Phillip Wood <phillip.wood123@gmail.com>
> Cc: Junio C Hamano <gitster@pobox.com>
> 
> ---
> 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;
>   			}

← back to recent threads