Hi, I've got a moderately large repository created from a git-svn import (which I want to keep bi-directional). For now the subversion side cannot be restructured (one day!) so the layout of the tree is not up for debate at the moment.
The git-svn import used the --ignore-paths option and created several empty commits. The primary problem I'm having is that operations like git blame take a long time! On one text file here on an SSD backing store it takes almost 2 minutes. Now the number of commits in this subdirectory of tree is not massive, but the overall number of commits obviously are. Most commits to subversion only happen in a sub folder (not always true and in fact one of the reasons I made a git-svn clone was to make mass changes easier!). In order to increase performance are there any strategies I can adopt? I've already tried using filter-branch with --prune-empty (which took three days to run on a tmpfs!!) but it didn't seem to help much. Some kind of strategy I was thinking was somehow creating pack files that only deal with a subfolder tree in each. There are ~12k top level folders, so this would be a lot of pack files to look at unless git knew to ignore the others completely. Due to the very low number of objects that are shared across subtrees, having objects duplicated in different packs wouldn't be bad IMO if the performance gains justify it. Some stats: After a git gc --aggressive the .git folder is 345MB There are 127671 commits (git rev-list HEAD --count) There are no branches (other than git-svn branch) There are ~12k top level folders. Each folder has a single subfolder which itself contains two further folders, one contains one file (rpm .spec) and the other various files (typically scripts or patches - no binaries). A checkout of HEAD is 463MB A typical git blame on a typical SPEC file takes 1m 40s. Any thoughts on how I could make this nicer/faster? Also if anyone knows of a way to make git svn rebase ignore the empty commits (i.e. so I can avoid future, periodic filter-branch --prune-empty calls) please let me know!! Cheers Col -- Colin Guthrie gmane(at)colin.guthr.ie http://colin.guthr.ie/ Day Job: Tribalogic Limited http://www.tribalogic.net/ Open Source: Mageia Contributor http://www.mageia.org/ PulseAudio Hacker http://www.pulseaudio.org/ Trac Hacker http://trac.edgewall.org/ -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
