Skip to content

Commit 396cf9e

Browse files
Vampiretnyblom
authored andcommitted
Correctly move over svn:ignore properties on path replaces
1 parent cf87a5a commit 396cf9e

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

src/svn.cpp

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,7 @@ int SvnRevision::exportEntry(const char *key, const svn_fs_path_change2_t *chang
640640
//qDebug() << "Adding directory:" << key;
641641
}
642642
// svn:ignore-properties
643-
else if (is_dir && (change->change_kind == svn_fs_path_change_add || change->change_kind == svn_fs_path_change_modify)
643+
else if (is_dir && (change->change_kind == svn_fs_path_change_add || change->change_kind == svn_fs_path_change_modify || change->change_kind == svn_fs_path_change_replace)
644644
&& path_from == NULL && CommandLineParser::instance()->contains("svn-ignore")) {
645645
needCommit = true;
646646
}
@@ -897,17 +897,18 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change2_t *ch
897897
qDebug() << "add/change dir (" << key << "->" << branch << path << ")";
898898

899899
// Check unknown svn-properties
900-
if (((path_from == NULL && change->prop_mod==1) || (path_from != NULL && change->change_kind == svn_fs_path_change_add))
900+
if (((path_from == NULL && change->prop_mod==1) || (path_from != NULL && (change->change_kind == svn_fs_path_change_add || change->change_kind == svn_fs_path_change_replace)))
901901
&& CommandLineParser::instance()->contains("propcheck")) {
902902
if (fetchUnknownProps(pool, key, fs_root) != EXIT_SUCCESS) {
903903
qWarning() << "Error checking svn-properties (" << key << ")";
904904
}
905905
}
906906

907-
int ignoreSet = false;
907+
txn->deleteFile(path);
908908

909909
// Add GitIgnore with svn:ignore
910-
if (((path_from == NULL && change->prop_mod==1) || (path_from != NULL && change->change_kind == svn_fs_path_change_add))
910+
int ignoreSet = false;
911+
if (((path_from == NULL && change->prop_mod==1) || (path_from != NULL && (change->change_kind == svn_fs_path_change_add || change->change_kind == svn_fs_path_change_replace)))
911912
&& CommandLineParser::instance()->contains("svn-ignore")) {
912913
QString svnignore;
913914
// TODO: Check if svn:ignore or other property was changed, but always set on copy/rename (path_from != NULL)
@@ -919,10 +920,6 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change2_t *ch
919920
}
920921
}
921922

922-
if (ignoreSet == false) {
923-
txn->deleteFile(path);
924-
}
925-
926923
// Add GitIgnore for empty directories (if GitIgnore was not set previously)
927924
if (CommandLineParser::instance()->contains("empty-dirs") && ignoreSet == false) {
928925
if (addGitIgnore(pool, key, path, fs_root, txn) == EXIT_SUCCESS) {

0 commit comments

Comments
 (0)