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 git-svn import used the --ignore-paths option and created several empty
The primary problem I'm having is that operations like git blame take a
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
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.
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!!
Tribalogic Limited http://www.tribalogic.net/
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
For more options, visit https://groups.google.com/groups/opt_out.