From: Martin Guy Date: Thu, 20 Nov 2025 21:24:03 GMT Subject: Re: Feature request: git cp Message-ID: In-Reply-To: <0e971281-d1c4-4030-9297-f5e2c0765431@app.fastmail.com> Thanks, but that only seems to affect "git log" retroactively, whereas I'm interested in it being part of the history so that "git blame" knows about it. At present, the blame for a line would end at the time of the split (when the file appears to have been created ex novo) though I suppose people would end up at that break and could then switch to tracking the old file instead. Maybe I'm expecting too much of git, with all the truly wonderful things it does already, but the idea seems to fit into the current scheme of things as seen from the outside (I don't know how the "git mv" line-based trackback works). M On Thu, 20 Nov 2025 at 16:17, Kristoffer Haugsbakk wrote: > > On Thu, Nov 20, 2025, at 15:56, Martin Guy wrote: > > I am splitting a large source file into three smaller ones (mp3.c into > > mad.c, lame.c and twolame.c) > > and would like the history to track the relevant lines in each file, > > like "git mv" does, > > but I only seem able to do this with one file by "git mv"ing it and > > copying that to the other > > as a new file. > > > > So what I'd like is "git cp" that is like "git mv" but where blame for > > both the resulting files > > goes back the original one, if that's possible and unless there's a > > way to achieve the same > > effect that I haven't figured out. > > > > A fairly rare thing to wish to do, but may be useful in this case. > > Copies and file moves are detected dynamically when you use things like > `git log`. > > Try `git log --stat --find-copies-harder`. I get this output after copying a file three times. > > README.md => rm1.md | 0 > README.md => rm2.md | 0 > README.md => rm3.md | 0 > 3 files changed, 0 insertions(+), 0 deletions(-) > > I get this output when I change one of the lines in the same commit on one of the files. > > README.md => rm1.md | 2 +- > README.md => rm2.md | 0 > README.md => rm3.md | 0 > 3 files changed, 1 insertion(+), 1 deletion(-) > > This is the first time I’ve tried this option so I don’t know > more about it.