From bb416d33bd42c89e0ca3e7563ff57fe6d77a1bc2 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 28 Dec 2007 13:42:43 +0100 Subject: [PATCH] Implement the identity map --- src/main.cpp | 26 ++++++++++++++++++++++++++ src/svn.cpp | 5 +++++ src/svn.h | 1 + 3 files changed, 32 insertions(+) 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 +#include #include #include @@ -25,6 +26,30 @@ #include "repository.h" #include "svn.h" +QHash loadIdentityMapFile(const QString &fileName) +{ + QHash 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 &matchRules); void setRepositories(const QHash &repositories); + void setIdentityMap(const QHash &identityMap); int youngestRevision(); bool exportRevision(int revnum); -- 2.45.1