aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago@cassini.local.lan>2007-12-26 12:49:17 -0200
committerThiago Macieira <thiago@cassini.local.lan>2007-12-26 12:49:17 -0200
commit5871af719f7ede0db0e661a34a6f485dc4488e3b (patch)
treea85d0a37ccee60e06ceaa62c5a031028b6e6d2ff
parentd4c5541dd3cc94a69ee97fdb8918dc9b8cc37045 (diff)
downloadsvn2git-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.cpp11
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);
}