Skip to content

Commit dfc3334

Browse files
Vampiretnyblom
authored andcommitted
Do not try to create annotated tags for deleted or moved supporting refs (#37)
1 parent c1a11c6 commit dfc3334

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/repository.cpp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ class FastImportRepository : public Repository
119119
int outstandingTransactions;
120120
QByteArray deletedBranches;
121121
QByteArray resetBranches;
122+
QSet<QString> deletedBranchNames;
123+
QSet<QString> resetBranchNames;
122124

123125
/* Optional filter to fix up log messages */
124126
QProcess filterMsg;
@@ -614,10 +616,13 @@ int FastImportRepository::resetBranch(const QString &branch, int revnum, mark_t
614616
"progress SVN r" + QByteArray::number(revnum)
615617
+ " branch " + branch.toUtf8() + " = :" + QByteArray::number(mark)
616618
+ " # " + comment + "\n\n";
617-
if(comment == "delete")
619+
if(comment == "delete") {
618620
deletedBranches.append(backupCmd).append(cmd);
619-
else
621+
deletedBranchNames.insert(branchRef);
622+
} else {
620623
resetBranches.append(backupCmd).append(cmd);
624+
resetBranchNames.insert(branchRef);
625+
}
621626

622627
return EXIT_SUCCESS;
623628
}
@@ -632,6 +637,18 @@ void FastImportRepository::commit()
632637
fastImport.write(resetBranches);
633638
deletedBranches.clear();
634639
resetBranches.clear();
640+
QSet<QString>::ConstIterator it = deletedBranchNames.constBegin();
641+
for ( ; it != deletedBranchNames.constEnd(); ++it) {
642+
QString tagName = *it;
643+
if (resetBranchNames.contains(tagName))
644+
continue;
645+
if (tagName.startsWith("refs/tags/"))
646+
tagName.remove(0, 10);
647+
qDebug() << "Removing annotated tag" << tagName << "for" << name;
648+
annotatedTags.remove(tagName);
649+
}
650+
deletedBranchNames.clear();
651+
resetBranchNames.clear();
635652
}
636653

637654
Repository::Transaction *FastImportRepository::newTransaction(const QString &branch, const QString &svnprefix,

0 commit comments

Comments
 (0)