diff options
author | Thiago Macieira <thiago.macieira@trolltech.com> | 2007-12-28 13:42:43 +0100 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@trolltech.com> | 2007-12-28 13:47:01 +0100 |
commit | bb416d33bd42c89e0ca3e7563ff57fe6d77a1bc2 (patch) | |
tree | 5511b47610c11549ec373cbb5b9ab494f8d5be6f /src | |
parent | 50cd32a4e9d105a086977bd071fda0a3401bc27d (diff) | |
download | svn2git-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.cpp | 26 | ||||
-rw-r--r-- | src/svn.cpp | 5 | ||||
-rw-r--r-- | src/svn.h | 1 |
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(); @@ -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); |