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 <oswald.buddenhagen@xxxxxx> --- 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 <johannes.schindelin@xxxxxx> Cc: Phillip Wood <phillip.wood123@xxxxxxxxx> Cc: Junio C Hamano <gitster@xxxxxxxxx> --- 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; }