aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago@doriath.(none)>2008-08-13 15:05:55 +0200
committerThiago Macieira <thiago.macieira@trolltech.com>2008-08-13 15:06:10 +0200
commitc0a3eea369637ab8378f4789c81515e1869c9db6 (patch)
tree09e5ed4e2d1ea60203e4b9e875407afc319d8c78
parentff26f180723344b8ca3a1b35d1bbede1f6698f3a (diff)
downloadsvn2git-c0a3eea369637ab8378f4789c81515e1869c9db6.tar
svn2git-c0a3eea369637ab8378f4789c81515e1869c9db6.tar.gz
svn2git-c0a3eea369637ab8378f4789c81515e1869c9db6.tar.bz2
svn2git-c0a3eea369637ab8378f4789c81515e1869c9db6.tar.xz
svn2git-c0a3eea369637ab8378f4789c81515e1869c9db6.zip
Make it easier to do automatic branching
-rw-r--r--src/repository.cpp36
1 files changed, 13 insertions, 23 deletions
diff --git a/src/repository.cpp b/src/repository.cpp
index 1ebdb6f..7c085ce 100644
--- a/src/repository.cpp
+++ b/src/repository.cpp
@@ -45,30 +45,20 @@ Repository::~Repository()
void Repository::reloadBranches()
{
- QHash<QString, Branch>::Iterator it = branches.begin(),
- end = branches.end();
- for ( ; it != end; ++it) {
- QString branchRef = it.key();
- if (!branchRef.startsWith("refs/"))
- branchRef.prepend("refs/heads/");
+ QProcess revParse;
+ revParse.setWorkingDirectory(name);
+ revParse.start("git", QStringList() << "rev-parse" << "--symbolic" << "--branches");
+ revParse.waitForFinished();
+
+ if (revParse.exitCode() == 0 && revParse.bytesAvailable()) {
+ startFastImport();
+
+ while (revParse.canReadLine()) {
+ QByteArray branchName = revParse.readLine();
- bool branchExists;
- // does this branch already exist?
- QProcess revParse;
- revParse.setWorkingDirectory(name);
- revParse.start("git-rev-parse", QStringList() << "--verify" << branchRef);
- revParse.waitForFinished();
-
- if (revParse.exitCode() == 0)
- branchExists = true;
- else
- branchExists = false;
-
- if (branchExists) {
- startFastImport();
- fastImport.write("reset " + branchRef.toUtf8() +
- "\nfrom " + branchRef.toUtf8() + "^0\n\n");
- it->created = 1;
+ branches[branchName].created = 1;
+ fastImport.write("reset refs/heads/" + branchName +
+ "\nfrom refs/heads/" + branchName + "^0\n\n");
}
}
}