Are any of you amazing at complex git stuff? For a long time I've wanted to restore a very troubled repository of mine.
It started out life as a perforce repo, however all of that history is lost. In 2008 when it was imported into SVN, that's where the history begins.
Several years of SVN go by, and eventually sometime around 2014 it is converted into mercurial.
There are several goals I'd like to accomplish by bringing this into git:
Cull binaries: There are alot of meshes and textures and general crap that all needs to go for good. I think git-filter-repo will work well for this.
Cull sidetracks: Lots of experimental projects that never went anywhere
Fix moves/renames: A LOT of the time when a file was moved (say pulled out of a tool into a lib), the conversion destroyed the link between them changing the move to a delete + add new file.
Fix profane rants: I want to adjust some of the checkin notes to make it more suitable for githublandia.
Separate into submodules: Library code should eventually land in a library submodule. Same for tools and tests.
The tricky bit with that is alot of code started out in a game or a tool, then migrated out into a library. If I use filter repo to chop games, will the history only go back to the time when a file was moved out of a game project?
I've started doing this by advancing one commit at a time, and hand fixing up bad renames / moves. I set the date to the OG repository dates, however I later noticed git has 2 dates. Author and commit, no idea why. Author is correct but commit is not, but I think there may be automated ways to set all commit dates to author dates when I'm done.