diff options
Diffstat (limited to 'src/repository.h')
| -rw-r--r-- | src/repository.h | 92 |
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 |
