aboutsummaryrefslogtreecommitdiffstats
path: root/src/repository.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/repository.h')
-rw-r--r--src/repository.h92
1 files changed, 25 insertions, 67 deletions
diff --git a/src/repository.h b/src/repository.h
index d008996..e07d184 100644
--- a/src/repository.h
+++ b/src/repository.h
@@ -30,78 +30,36 @@ public:
class Transaction
{
Q_DISABLE_COPY(Transaction)
- friend class Repository;
-
- Repository *repository;
- QByteArray branch;
- QByteArray svnprefix;
- QByteArray author;
- QByteArray log;
- uint datetime;
- int revnum;
-
- QStringList deletedFiles;
- QByteArray modifiedFiles;
- QVector<QString> modifiedPaths;
-
- inline Transaction() {}
+ protected:
+ Transaction() {}
public:
- ~Transaction();
- void commit();
+ virtual ~Transaction() {}
+ virtual void commit() = 0;
- void setAuthor(const QByteArray &author);
- void setDateTime(uint dt);
- void setLog(const QByteArray &log);
+ virtual void setAuthor(const QByteArray &author) = 0;
+ virtual void setDateTime(uint dt) = 0;
+ virtual void setLog(const QByteArray &log) = 0;
- void deleteFile(const QString &path);
- QIODevice *addFile(const QString &path, int mode, qint64 length);
- };
- Repository(const Rules::Repository &rule);
- ~Repository();
+ virtual void noteCopyFromBranch (const QString &prevbranch, int revFrom) = 0;
- void reloadBranches();
- void createBranch(const QString &branch, int revnum,
- const QString &branchFrom, int revFrom);
- Transaction *newTransaction(const QString &branch, const QString &svnprefix, int revnum);
-
- void createAnnotatedTag(const QString &name, const QString &svnprefix, int revnum,
- const QByteArray &author, uint dt,
- const QByteArray &log);
- void finalizeTags();
-
-private:
- struct Branch
- {
- int created;
+ virtual void deleteFile(const QString &path) = 0;
+ virtual QIODevice *addFile(const QString &path, int mode, qint64 length) = 0;
};
- struct AnnotatedTag
- {
- QString supportingRef;
- QByteArray svnprefix;
- QByteArray author;
- QByteArray log;
- uint dt;
- int revnum;
- };
-
- QHash<QString, Branch> branches;
- QHash<QString, AnnotatedTag> annotatedTags;
- // rXXXX, mark
- QHash<int, int> commitMarks;
- // rXXXX, [path, path, ...]
- QHash<int, QVector<QString> > exportedCommits;
- QString name;
- QProcess fastImport;
- int commitCount;
- int outstandingTransactions;
- int lastmark;
- bool processHasStarted;
-
- void startFastImport();
- void closeFastImport();
-
- friend class ProcessCache;
- Q_DISABLE_COPY(Repository)
+ virtual int setupIncremental(int &cutoff) = 0;
+ virtual void restoreLog() = 0;
+ virtual ~Repository() {}
+
+ virtual int createBranch(const QString &branch, int revnum,
+ const QString &branchFrom, int revFrom) = 0;
+ virtual int deleteBranch(const QString &branch, int revnum) = 0;
+ virtual Transaction *newTransaction(const QString &branch, const QString &svnprefix, int revnum) = 0;
+
+ virtual void createAnnotatedTag(const QString &name, const QString &svnprefix, int revnum,
+ const QByteArray &author, uint dt,
+ const QByteArray &log) = 0;
+ virtual void finalizeTags() = 0;
};
+Repository *makeRepository(const Rules::Repository &rule, const QHash<QString, Repository *> &repositories);
+
#endif