diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2014-04-16 23:54:05 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2014-10-24 22:55:26 +0000 |
commit | abfef3bbf5f637c86032763632393ce1ffd23ccc (patch) | |
tree | 4138507c3c04e5692cdce4586ee077180c77e3b9 /fast-import.c | |
parent | fbecd99861ea5795aeba46faf2ac7a8c1b70d485 (diff) | |
download | git-abfef3bbf5f637c86032763632393ce1ffd23ccc.tar.gz git-abfef3bbf5f637c86032763632393ce1ffd23ccc.tar.xz |
git-svn: only look at the new parts of svn:mergeinfo
In a Subversion repository where many feature branches are merged into a
trunk, the svn:mergeinfo property can grow very large. This severely
slows down git-svn's make_log_entry() because it is checking all
mergeinfo entries every time the property changes.
In most cases, the additions to svn:mergeinfo since the last commit are
pretty small, and there is nothing to gain by checking merges that were
already checked for the last commit in the branch.
Add a mergeinfo_changes() function which computes the set of interesting
changes to svn:mergeinfo since the last commit. Filter out merged
branches whose ranges haven't changed, and remove a common prefix of
ranges from other merged branches.
This speeds up "git svn fetch" by several orders of magnitude on a large
repository where thousands of feature branches have been merged.
Signed-off-by: Jakob Stoklund Olesen <stoklund@2pi.dk>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 'fast-import.c')
0 files changed, 0 insertions, 0 deletions