aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTorgny Nyblom <nyblom@kde.org>2012-11-26 14:45:11 +0100
committerTorgny Nyblom <nyblom@kde.org>2012-11-26 14:45:11 +0100
commit8314eb23393db323b4bb5e34a9ad4e8ebc4014fb (patch)
tree9aa8cf08c1de3a36141dbb39bf2ef44afd3ca097
parent2f358636414d086e6576a0b0341c532b1e7fc1a3 (diff)
downloadsvn2git-8314eb23393db323b4bb5e34a9ad4e8ebc4014fb.tar
svn2git-8314eb23393db323b4bb5e34a9ad4e8ebc4014fb.tar.gz
svn2git-8314eb23393db323b4bb5e34a9ad4e8ebc4014fb.tar.bz2
svn2git-8314eb23393db323b4bb5e34a9ad4e8ebc4014fb.tar.xz
svn2git-8314eb23393db323b4bb5e34a9ad4e8ebc4014fb.zip
Revert "Remove the branch copy heuristic"
-rw-r--r--src/svn.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/svn.cpp b/src/svn.cpp
index 32beb89..0a730fc 100644
--- a/src/svn.cpp
+++ b/src/svn.cpp
@@ -779,6 +779,18 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *cha
transactions.insert(repository + branch, txn);
}
+ //
+ // If this path was copied from elsewhere, use it to infer _some_
+ // merge points. This heuristic is fairly useful for tracking
+ // changes across directory re-organizations and wholesale branch
+ // imports.
+ //
+ if (path_from != NULL && prevrepository == repository && prevbranch != branch) {
+ if(ruledebug)
+ qDebug() << "copy from branch" << prevbranch << "to branch" << branch << "@rev" << rev_from;
+ txn->noteCopyFromBranch (prevbranch, rev_from);
+ }
+
if (change->change_kind == svn_fs_path_change_replace && path_from == NULL) {
if(ruledebug)
qDebug() << "replaced with empty path (" << branch << path << ")";