aboutsummaryrefslogtreecommitdiffstats
path: root/src/repository.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/repository.cpp')
-rw-r--r--src/repository.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/repository.cpp b/src/repository.cpp
index 154dc93..d33e218 100644
--- a/src/repository.cpp
+++ b/src/repository.cpp
@@ -72,6 +72,23 @@ Repository::Repository(const Rules::Repository &rule)
branches.insert(branchRule.name, branch);
}
+ init(rule.description);
+}
+
+Repository::Repository(const QString &name, const QString &branchName, int revision)
+ : name(name), prefix(""), fastImport(name), commitCount(0), outstandingTransactions(0),
+ last_commit_mark(0), next_file_mark(maxMark), processHasStarted(false)
+{
+ Branch branch;
+ branch.created = revision;
+
+ branches.insert(branchName, branch);
+
+ init("");
+}
+
+void Repository::init(const QString &description)
+{
// create the default branch
branches["master"].created = 1;
@@ -85,10 +102,10 @@ Repository::Repository(const Rules::Repository &rule)
init.start("git", QStringList() << "--bare" << "init");
init.waitForFinished(-1);
// Write description
- if (!rule.description.isEmpty()) {
+ if (!description.isEmpty()) {
QFile fDesc(QDir(name).filePath("description"));
if (fDesc.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text)) {
- fDesc.write(rule.description.toUtf8());
+ fDesc.write(description.toUtf8());
fDesc.putChar('\n');
fDesc.close();
}
@@ -102,6 +119,7 @@ Repository::Repository(const Rules::Repository &rule)
}
}
+
static QString logFileName(QString name)
{
name.replace('/', '_');
@@ -302,7 +320,6 @@ int Repository::markFrom(const QString &branchFrom, int branchRevNum, QByteArray
Branch &brFrom = branches[branchFrom];
if (!brFrom.created)
return -1;
-
if (brFrom.commits.isEmpty()) {
return -1;
}