Mercurial > hg > mercurial
changeset 853:820d02ac9b8a
Map subrepo path when we remove it
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Thu, 03 Jul 2014 22:12:06 +0200 |
parents | d746a9351572 |
children | 3a418ac5ada1 |
files | mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java |
diffstat | 1 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java Wed Jul 02 19:21:34 2014 +0200 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java Thu Jul 03 22:12:06 2014 +0200 @@ -334,11 +334,11 @@ buildPatch(subrepoRoot, subrepoFromRevision, subrepoToRevision, builder, subrepoRules); } else if (configChange.subrepoRemoved()) { - builder.deleteDirectory(new File(subrepoPath), true); + deleteDirInPatch(builder, mainRootRules, subrepoPath); } else if (configChange.subrepoUrlChanged()) { assert currentSubrepo != null; - builder.deleteDirectory(new File(subrepoPath), true); + deleteDirInPatch(builder, mainRootRules, subrepoPath); String subrepoUrl = currentSubrepo.resolveUrl(mainRoot.getRepository()); HgVcsRoot subrepoRoot = mainRoot.withUrl(subrepoUrl); @@ -362,6 +362,14 @@ } } + private void deleteDirInPatch(@NotNull PatchBuilder builder, @NotNull CheckoutRules rules, @NotNull String unMappedPath) throws IOException { + for (IncludeRule rule : rules.getRootIncludeRules()) { + String mappedPath = rule.map(unMappedPath); + if (mappedPath != null) + builder.deleteDirectory(new File(mappedPath), true); + } + } + // builds patch by exporting files using specified version private void buildFullPatch(@NotNull final HgVcsRoot root, @NotNull final ChangeSet toVer,