]> andersk Git - svn-all-fast-export.git/commitdiff
Implement the identity map
authorThiago Macieira <thiago.macieira@trolltech.com>
Fri, 28 Dec 2007 12:42:43 +0000 (13:42 +0100)
committerThiago Macieira <thiago.macieira@trolltech.com>
Fri, 28 Dec 2007 12:47:01 +0000 (13:47 +0100)
src/main.cpp
src/svn.cpp
src/svn.h

index bf7af7648ddc9bc06a2c165d76f396c80b43a671..9ad54771d6a8fd4e1a6f9baf611edf3f40dd4198 100644 (file)
@@ -16,6 +16,7 @@
  */
 
 #include <QCoreApplication>
+#include <QFile>
 #include <QStringList>
 
 #include <stdio.h>
 #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();
index 09fddf993e45ca1aa996dc8b9eba483d670afe27..4062f31a3d7e097f28dbde523dd4bdc650f59cb0 100644 (file)
@@ -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();
index c878428e71c290d1f1831ae3178fae1d2a7f78ff..fea3fb0ac97b633f354c01fc0210b07a169c6874 100644 (file)
--- 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);
This page took 0.032092 seconds and 5 git commands to generate.