aboutsummaryrefslogtreecommitdiffstats
path: root/src/repository.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/repository.cpp')
-rw-r--r--src/repository.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/repository.cpp b/src/repository.cpp
index 6af1200..ce6d6ea 100644
--- a/src/repository.cpp
+++ b/src/repository.cpp
@@ -344,8 +344,6 @@ int Repository::deleteBranch(const QString &branch, int revnum)
int Repository::resetBranch(const QString &branch, int revnum, int mark, const QByteArray &resetTo, const QByteArray &comment)
{
- startFastImport();
-
QByteArray branchRef = branch.toUtf8();
if (!branchRef.startsWith("refs/"))
branchRef.prepend("refs/heads/");
@@ -355,21 +353,34 @@ int Repository::resetBranch(const QString &branch, int revnum, int mark, const Q
QByteArray backupBranch = "refs/backups/r" + QByteArray::number(revnum) + branchRef.mid(4);
qWarning() << "backing up branch" << branch << "to" << backupBranch;
- fastImport.write("reset " + backupBranch + "\nfrom " + branchRef + "\n\n");
+ resetBranches.append("reset " + backupBranch + "\nfrom " + branchRef + "\n\n");
}
br.created = revnum;
br.commits.append(revnum);
br.marks.append(mark);
- fastImport.write("reset " + branchRef + "\nfrom " + resetTo + "\n\n"
+ QByteArray cmd = "reset " + branchRef + "\nfrom " + resetTo + "\n\n"
"progress SVN r" + QByteArray::number(revnum)
+ " branch " + branch.toUtf8() + " = :" + QByteArray::number(mark)
- + " # " + comment + "\n\n");
+ + " # " + comment + "\n\n";
+ if(comment == "delete")
+ deletedBranches.append(cmd);
+ else
+ resetBranches.append(cmd);
return EXIT_SUCCESS;
}
+void Repository::commit()
+{
+ startFastImport();
+ fastImport.write(deletedBranches);
+ fastImport.write(resetBranches);
+ deletedBranches.clear();
+ resetBranches.clear();
+}
+
Repository::Transaction *Repository::newTransaction(const QString &branch, const QString &svnprefix,
int revnum)
{