summaryrefslogtreecommitdiff
path: root/devel/svn2git/files/freebsd-export-patch
blob: 1932cef1551de92443182be75c83670dd03da2ef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/src/svn.cpp b/src/svn.cpp
index 1aadce9..3d359bb 100644
--- src/svn.cpp
+++ src/svn.cpp
@@ -800,8 +800,13 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *cha
     // 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) {
+    // NOTE(uqs): HACK ALERT! Only merge between head, projects, and user
+    // branches for the FreeBSD repositories. Never merge into stable or
+    // releng, as we only ever cherry-pick changes to those branches.
+    // FIXME: Needs to move into the ruleset ...
+    if (path_from != NULL && prevrepository == repository && prevbranch != branch &&
+            (branch.startsWith("master") || branch.startsWith("head") ||
+             branch.startsWith("projects") || branch.startsWith("user"))) {
         if(ruledebug)
             qDebug() << "copy from branch" << prevbranch << "to branch" << branch << "@rev" << rev_from;
         txn->noteCopyFromBranch (prevbranch, rev_from);