diff options
author | Thiago Macieira <thiago@cassini.local.lan> | 2007-12-26 12:49:17 -0200 |
---|---|---|
committer | Thiago Macieira <thiago@cassini.local.lan> | 2007-12-26 12:49:17 -0200 |
commit | 5871af719f7ede0db0e661a34a6f485dc4488e3b (patch) | |
tree | a85d0a37ccee60e06ceaa62c5a031028b6e6d2ff | |
parent | d4c5541dd3cc94a69ee97fdb8918dc9b8cc37045 (diff) | |
download | svn2git-5871af719f7ede0db0e661a34a6f485dc4488e3b.tar svn2git-5871af719f7ede0db0e661a34a6f485dc4488e3b.tar.gz svn2git-5871af719f7ede0db0e661a34a6f485dc4488e3b.tar.bz2 svn2git-5871af719f7ede0db0e661a34a6f485dc4488e3b.tar.xz svn2git-5871af719f7ede0db0e661a34a6f485dc4488e3b.zip |
Avoid ending slashes and mid double-slashes
-rw-r--r-- | src/svn.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/svn.cpp b/src/svn.cpp index 05f3201..de3a977 100644 --- a/src/svn.cpp +++ b/src/svn.cpp @@ -284,13 +284,10 @@ static int recursiveDumpDir(Repository::Transaction *txn, svn_fs_root_t *fs_root svn_fs_dirent_t *dirent = reinterpret_cast<svn_fs_dirent_t *>(value); QByteArray entryName = pathname + '/' + dirent->name; - QString entryFinalName; - if (finalPathName.isEmpty()) - entryFinalName = dirent->name; - else - entryFinalName = finalPathName + '/' + dirent->name; + QString entryFinalName = finalPathName + dirent->name; if (dirent->kind == svn_node_dir) { + entryFinalName += '/'; if (recursiveDumpDir(txn, fs_root, entryName, entryFinalName, dirpool) == EXIT_FAILURE) return EXIT_FAILURE; } else if (dirent->kind == svn_node_file) { @@ -577,7 +574,9 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *cha } else if (!current.endsWith('/')) { dumpBlob(txn, fs_root, key, path, pool); } else { - txn->deleteFile(path); + QString pathNoSlash = path; + pathNoSlash.chop(1); + txn->deleteFile(pathNoSlash); recursiveDumpDir(txn, fs_root, key, path, pool); } |