diff options
author | Thiago Macieira <thiago.macieira@trolltech.com> | 2008-08-24 14:45:08 +0200 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@trolltech.com> | 2008-08-24 14:45:08 +0200 |
commit | e3f0499dfacda04c6c7de3cc103d9f1824f0d251 (patch) | |
tree | 2ed3e5e3c29ce009c9959b7be48f7425ff4b27a1 /src/repository.cpp | |
parent | 374d4cd6fe492af4bcb0adf46e380f55be737d01 (diff) | |
download | svn2git-e3f0499dfacda04c6c7de3cc103d9f1824f0d251.tar svn2git-e3f0499dfacda04c6c7de3cc103d9f1824f0d251.tar.gz svn2git-e3f0499dfacda04c6c7de3cc103d9f1824f0d251.tar.bz2 svn2git-e3f0499dfacda04c6c7de3cc103d9f1824f0d251.tar.xz svn2git-e3f0499dfacda04c6c7de3cc103d9f1824f0d251.zip |
Store the modified files in git-fast-import format already.
I don't know what went wrong, but importing KDE revision 296047 there was a mixup with the marks. So instead avoid the trouble and store the thing in in cooked format already
Diffstat (limited to 'src/repository.cpp')
-rw-r--r-- | src/repository.cpp | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/repository.cpp b/src/repository.cpp index e74ab20..890c10c 100644 --- a/src/repository.cpp +++ b/src/repository.cpp @@ -212,19 +212,26 @@ void Repository::Transaction::deleteFile(const QString &path) QIODevice *Repository::Transaction::addFile(const QString &path, int mode, qint64 length) { - FileProperties fp; - fp.mode = mode; - fp.mark = ++lastmark; + int mark = ++lastmark; + + if (modifiedFiles.capacity() == 0) + modifiedFiles.reserve(2048); + modifiedFiles.append("M "); + modifiedFiles.append(QByteArray::number(mode, 8)); + modifiedFiles.append(" :"); + modifiedFiles.append(QByteArray::number(mark)); + modifiedFiles.append(' '); + modifiedFiles.append(path.toUtf8()); + modifiedFiles.append("\n"); #ifndef DRY_RUN repository->fastImport.write("blob\nmark :"); - repository->fastImport.write(QByteArray::number(fp.mark)); + repository->fastImport.write(QByteArray::number(mark)); repository->fastImport.write("\ndata "); repository->fastImport.write(QByteArray::number(length)); repository->fastImport.write("\n", 1); #endif - modifiedFiles.insert(path, fp); return &repository->fastImport; } @@ -269,16 +276,7 @@ void Repository::Transaction::commit() repository->fastImport.write("D " + df.toUtf8() + "\n"); // write the file modifications - QHash<QString, FileProperties>::ConstIterator it = modifiedFiles.constBegin(); - for ( ; it != modifiedFiles.constEnd(); ++it) { - repository->fastImport.write("M ", 2); - repository->fastImport.write(QByteArray::number(it->mode, 8)); - repository->fastImport.write(" :", 2); - repository->fastImport.write(QByteArray::number(it->mark)); - repository->fastImport.write(" ", 1); - repository->fastImport.write(it.key().toUtf8()); - repository->fastImport.write("\n", 1); - } + repository->fastImport.write(modifiedFiles); repository->fastImport.write("\nprogress Commit #" + QByteArray::number(repository->commitCount) + |