aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@trolltech.com>2007-12-28 13:42:43 +0100
committerThiago Macieira <thiago.macieira@trolltech.com>2007-12-28 13:47:01 +0100
commitbb416d33bd42c89e0ca3e7563ff57fe6d77a1bc2 (patch)
tree5511b47610c11549ec373cbb5b9ab494f8d5be6f /src
parent50cd32a4e9d105a086977bd071fda0a3401bc27d (diff)
downloadsvn2git-bb416d33bd42c89e0ca3e7563ff57fe6d77a1bc2.tar
svn2git-bb416d33bd42c89e0ca3e7563ff57fe6d77a1bc2.tar.gz
svn2git-bb416d33bd42c89e0ca3e7563ff57fe6d77a1bc2.tar.bz2
svn2git-bb416d33bd42c89e0ca3e7563ff57fe6d77a1bc2.tar.xz
svn2git-bb416d33bd42c89e0ca3e7563ff57fe6d77a1bc2.zip
Implement the identity map
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp26
-rw-r--r--src/svn.cpp5
-rw-r--r--src/svn.h1
3 files changed, 32 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
index bf7af76..9ad5477 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -16,6 +16,7 @@
*/
#include <QCoreApplication>
+#include <QFile>
#include <QStringList>
#include <stdio.h>
@@ -25,6 +26,30 @@
#include "repository.h"
#include "svn.h"
+QHash<QByteArray, QByteArray> loadIdentityMapFile(const QString &fileName)
+{
+ QHash<QByteArray, QByteArray> result;
+ if (fileName.isEmpty())
+ return result;
+
+ QFile file(fileName);
+ if (!file.open(QIODevice::ReadOnly))
+ return result;
+
+ while (!file.atEnd()) {
+ QByteArray line = file.readLine().trimmed();
+ int space = line.indexOf(' ');
+ if (space == -1)
+ continue; // invalid line
+
+ QByteArray realname = line.mid(space).trimmed();
+ line.truncate(space);
+ result.insert(line, realname);
+ };
+
+ return result;
+}
+
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
@@ -54,6 +79,7 @@ int main(int argc, char **argv)
Svn svn(options.pathToRepository);
svn.setMatchRules(rules.matchRules());
svn.setRepositories(repositories);
+ svn.setIdentityMap(loadIdentityMapFile(options.options.value("identity-map")));
if (max_rev < 1)
max_rev = svn.youngestRevision();
diff --git a/src/svn.cpp b/src/svn.cpp
index 09fddf9..4062f31 100644
--- a/src/svn.cpp
+++ b/src/svn.cpp
@@ -122,6 +122,11 @@ void Svn::setRepositories(const RepositoryHash &repositories)
d->repositories = repositories;
}
+void Svn::setIdentityMap(const IdentityHash &identityMap)
+{
+ d->identities = identityMap;
+}
+
int Svn::youngestRevision()
{
return d->youngestRevision();
diff --git a/src/svn.h b/src/svn.h
index c878428..fea3fb0 100644
--- a/src/svn.h
+++ b/src/svn.h
@@ -35,6 +35,7 @@ public:
void setMatchRules(const QList<Rules::Match> &matchRules);
void setRepositories(const QHash<QString, Repository *> &repositories);
+ void setIdentityMap(const QHash<QByteArray, QByteArray> &identityMap);
int youngestRevision();
bool exportRevision(int revnum);