X-Git-Url: http://andersk.mit.edu/gitweb/svn-all-fast-export.git/blobdiff_plain/5a7327f691416d3b061318da00fbd85a341f710a..9413f4488b5d0eb39fee8af8edca2e99cf2254ca:/src/repository.h diff --git a/src/repository.h b/src/repository.h index 7779bdf..4692080 100644 --- a/src/repository.h +++ b/src/repository.h @@ -26,18 +26,62 @@ class Repository { public: - struct Branch + class Transaction { - QString branchFrom; - bool isCreated; - }; + Q_DISABLE_COPY(Transaction) + friend class Repository; + struct FileProperties { + int mode; + int mark; + }; + + Repository *repository; + QByteArray branch; + QByteArray svnprefix; + QByteArray author; + QByteArray log; + uint datetime; + int revnum; + int lastmark; + + QStringList deletedFiles; + QHash modifiedFiles; + inline Transaction() {} + public: + ~Transaction(); + void commit(); + + void setAuthor(const QByteArray &author); + void setDateTime(uint dt); + void setLog(const QByteArray &log); + + void deleteFile(const QString &path); + QIODevice *addFile(const QString &path, int mode, qint64 length); + }; Repository(const Rules::Repository &rule); ~Repository(); + void reloadBranches(); + void createBranch(const QString &branch, int revnum, + const QString &branchFrom, int revFrom); + Transaction *newTransaction(const QString &branch, const QString &svnprefix, int revnum); + private: + struct Branch + { + int created; + }; + QHash branches; + QString name; QProcess fastImport; + int commitCount; + bool processHasStarted; + + void startFastImport(); + + Q_DISABLE_COPY(Repository) }; #endif