The situation is this: I have a bunch of files from ages ago (back when I wasn't using source control of any kind) which I'd love to put to modern-time Git repositories.
I found one tool for this - file-fast-export. It takes existing files and spits out a file that can be fed to git fast-import
. Fine so far.
Only problem is that fast-import is a bit picky about input format and file-fast-export isn't a particularly polished program - it assumes files are being imported into a new repository.
So my use case is this: I have a git repository. I discovered a previously missing subdirectory. File modification times are there. I'd need to commit each of those files on top of the current repository history so that the commit timestamps correspond to the modification times. As I understood it, Git doesn't force commits to have chronologically consecutive timestamps, only that commits follow one another. I'm happy if I can just do git log xxxxx.txt
and see file history.
I'm sure there are tools that can do this. How can I do this?
Actually... With Git 2.28 (Q3 2020), some repositories in the wild have commits that record nonsense committer timezone (e.g.
rails.git
); "git fast-import
" learned an option to pass these nonsense timestamps intact to allow recreating existing repositories as-is.That could be helpful in your case.
See commit d42a2fb (30 May 2020) by Elijah Newren (
newren
).(Merged by Junio C Hamano --
gitster
-- in commit 5404183, 02 Jun 2020)