d->repositories = repositories;
}
+void Svn::setIdentityMap(const IdentityHash &identityMap)
+{
+ d->identities = identityMap;
+}
+
int Svn::youngestRevision()
{
return d->youngestRevision();
QIODevice *device = reinterpret_cast<QIODevice *>(baton);
device->write(data, *len);
- if (device->bytesToWrite() > 16384)
- device->waitForBytesWritten(0);
+ while (device->bytesToWrite() > 32*1024) {
+ if (!device->waitForBytesWritten(-1)) {
+ qFatal("Failed to write to process: %s", qPrintable(device->errorString()));
+ return svn_error_createf(APR_EOF, SVN_NO_ERROR, "Failed to write to process: %s",
+ qPrintable(device->errorString()));
+ }
+ }
return SVN_NO_ERROR;
}
}
current += '/';
- qDebug() << " " << key << "was copied from" << path_from;
+ qDebug() << " " << key << "was copied from" << path_from << "rev" << rev_from;
}
// find the first rule that matches this pathname
switch (rule.action) {
case Rules::Match::Ignore:
// ignore rule
- qDebug() << " " << qPrintable(current) << "rev" << revnum
- << "-> ignored (rule" << rule << ")";
+ //qDebug() << " " << qPrintable(current) << "rev" << revnum
+ // << "-> ignored (rule" << rule << ")";
return EXIT_SUCCESS;
case Rules::Match::Recurse:
case Rules::Match::Export:
return exportInternal(key, change, path_from, rev_from, current, rule);
}
+
+ // never reached
+ return EXIT_FAILURE;
}
int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *change,
apr_hash_this(i, &vkey, NULL, &value);
svn_fs_dirent_t *dirent = reinterpret_cast<svn_fs_dirent_t *>(value);
+ if (dirent->kind != svn_node_dir)
+ continue; // not a directory, so can't recurse; skip
+
QByteArray entry = path + QByteArray("/") + dirent->name;
QByteArray entryFrom;
if (path_from)