aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThiago Macieira <thiago@cassini.local.lan>2007-12-23 15:30:31 -0200
committerThiago Macieira <thiago@cassini.local.lan>2007-12-23 15:30:31 -0200
commitd3e9398dcac3674405d406a0304f38128c9b392a (patch)
treed8d9bc234f2f42b891269b807e8112ae76795b98 /src
parent8385649be1b8bd7a8abf472fcaacb8d796f9a6c9 (diff)
downloadsvn2git-d3e9398dcac3674405d406a0304f38128c9b392a.tar
svn2git-d3e9398dcac3674405d406a0304f38128c9b392a.tar.gz
svn2git-d3e9398dcac3674405d406a0304f38128c9b392a.tar.bz2
svn2git-d3e9398dcac3674405d406a0304f38128c9b392a.tar.xz
svn2git-d3e9398dcac3674405d406a0304f38128c9b392a.zip
Add initial SVN support
Diffstat (limited to 'src')
-rw-r--r--src/src.pro4
-rw-r--r--src/svn.cpp69
-rw-r--r--src/svn.h46
3 files changed, 117 insertions, 2 deletions
diff --git a/src/src.pro b/src/src.pro
index ba58da1..3f38817 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -9,5 +9,5 @@ INCLUDEPATH += .
QT = core
# Input
-SOURCES += ruleparser.cpp repository.cpp main.cpp
-HEADERS += ruleparser.h repository.h
+SOURCES += ruleparser.cpp repository.cpp svn.cpp main.cpp
+HEADERS += ruleparser.h repository.h svn.h
diff --git a/src/svn.cpp b/src/svn.cpp
new file mode 100644
index 0000000..6096056
--- /dev/null
+++ b/src/svn.cpp
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2007 Thiago Macieira <thiago@kde.org>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "svn.h"
+#include "repository.h"
+
+typedef QList<Rules::Match> MatchRuleList;
+typedef QHash<QString, Repository *> RepositoryHash;
+
+class SvnPrivate
+{
+public:
+ SvnPrivate(const QString &pathToRepository);
+ ~SvnPrivate();
+ int youngestRevision();
+ void exportRevision(int revnum);
+
+ MatchRuleList matchRules;
+ RepositoryHash repositories;
+};
+
+void Svn::initialize()
+{
+}
+
+Svn::Svn(const QString &pathToRepository)
+ : d(new SvnPrivate(pathToRepository))
+{
+}
+
+Svn::~Svn()
+{
+ delete d;
+}
+
+void Svn::setMatchRules(const MatchRuleList &matchRules)
+{
+ d->matchRules = matchRules;
+}
+
+void Svn::setRepositories(const RepositoryHash &repositories)
+{
+ d->repositories = repositories;
+}
+
+int Svn::youngestRevision()
+{
+ return d->youngestRevision();
+}
+
+void Svn::exportRevision(int revnum)
+{
+ d->exportRevision(revnum);
+}
+
diff --git a/src/svn.h b/src/svn.h
new file mode 100644
index 0000000..f7c4477
--- /dev/null
+++ b/src/svn.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2007 Thiago Macieira <thiago@kde.org>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef SVN_H
+#define SVN_H
+
+#include <QHash>
+#include <QList>
+#include "ruleparser.h"
+
+class Repository;
+
+class SvnPrivate;
+class Svn
+{
+public:
+ static void initialize();
+
+ Svn(const QString &pathToRepository);
+ ~Svn();
+
+ void setMatchRules(const QList<Rules::Match> &matchRules);
+ void setRepositories(const QHash<QString, Repository *> &repositories);
+
+ int youngestRevision();
+ void exportRevision(int revnum);
+
+private:
+ SvnPrivate * const d;
+};
+
+#endif