Joined May 2013
·
Posted to
Relocate the entire history of a Git repository
over 1 year
ago
Another update: Don't read files from a subshell. Instead, use "find ... -exec" (solves issues with files that contain whitespaces).
Old version:
git filter-branch --tree-filter 'mkdir html && mv $(find . -mindepth 1 -maxdepth 1 | grep -v "^./.git" | grep -v "^./html$") html/' HEAD
Posted to
Relocate the entire history of a Git repository
over 1 year
ago
Small update: I removed the end-of-line marker on of the greps, to make sure that ".git" as well as ".gitignore" are not moved.
Achievements
70 Karma
9,440 Total ProTip Views
Python
Would you expect anything less? Have at least one original repo where Python is the dominant language
Forked
Have a project valued enough to be forked by someone else
Charity
Fork and commit to someone's open source project in need
Mongoose
Have at least one original repo where Ruby is the dominant language
Raven
Have at least one original repo where some form of shell script is the dominant language
Hi Michiel!
I'm not sure what didn't work for you. It certainly takes a while to process, however it is tested and works fine.
I would be careful with the queries you mentioned as I see quite a few issues:
However, I see that the original queries that I suggested could be well optimized. Instead of creating temporary tables, a JOIN should work out well and be much faster. In any case, you need to make a connection between sysfile and sysfile_reference if you're cleaning up in both tables.