Mercurial > hg > mercurial
changeset 878:593c37cb219d
Generate less garbage
New instance of HgVcsRoot was created to fill attributes of each modification
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Fri, 03 Oct 2014 22:48:45 +0200 |
parents | 45311425ee3c |
children | c0c1a3f4b6f7 |
files | mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java |
diffstat | 1 files changed, 12 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java Fri Oct 03 22:29:27 2014 +0200 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java Fri Oct 03 22:48:45 2014 +0200 @@ -198,7 +198,7 @@ //that parents should be processed before children: Collections.sort(csets, ASCENDING_REV_NUMS); for (ChangeSet cset : csets) { - result.add(createModificationData(ctx, cset, root, checkoutRules)); + result.add(createModificationData(ctx, cset, root, hgRoot, checkoutRules)); } return result; } @@ -242,9 +242,10 @@ private ModificationData createModificationData(@NotNull final OperationContext ctx, @NotNull final ChangeSet cset, @NotNull final VcsRoot root, + @NotNull final HgVcsRoot hgRoot, @NotNull final CheckoutRules checkoutRules) throws VcsException { final ModificationData result = ModificationDataFactory.createModificationData(ctx, cset, root, checkoutRules); - result.setAttributes(getAttributes(ctx, root, result)); + result.setAttributes(getAttributes(ctx, root, hgRoot, result)); return result; } @@ -351,19 +352,21 @@ @NotNull - private Map<String, String> getAttributes(@NotNull OperationContext ctx, @NotNull VcsRoot mainRoot, @NotNull ModificationData m) throws VcsException { + private Map<String, String> getAttributes(@NotNull OperationContext ctx, + @NotNull VcsRoot mainRoot, + @NotNull HgVcsRoot mainHgRoot, + @NotNull ModificationData m) throws VcsException { Map<String, String> attributes = new HashMap<String, String>(); - HgVcsRoot root = myHgVcsRootFactory.createHgRoot(mainRoot); - if (detectSubrepoChanges(root)) { + if (detectSubrepoChanges(mainHgRoot)) { try { - ServerHgRepo repo = myVcs.createRepo(ctx, root); + ServerHgRepo repo = myVcs.createRepo(ctx, mainHgRoot); SubrepoRevisionAttributesBuilder attrBuilder = new SubrepoRevisionAttributesBuilder(); for (SubRepo s : repo.getSubrepositories(m).values()) { attrBuilder.addSubrepo(new SubrepoConfig(mainRoot) - .setSubrepoPath(ctx.getStringFromPool(root.expandSubrepoPath(s.path()))) - .setSubrepoRootParamDiff(Constants.REPOSITORY_PROP, ctx.getStringFromPool(s.resolveUrl(root.getRepository()))) + .setSubrepoPath(ctx.getStringFromPool(mainHgRoot.expandSubrepoPath(s.path()))) + .setSubrepoRootParamDiff(Constants.REPOSITORY_PROP, ctx.getStringFromPool(s.resolveUrl(mainHgRoot.getRepository()))) .setSubrepoRootParamDiff("teamcity.internal.subrepo", "true") - .setSubrepoRootParamDiff("teamcity.internal.subrepo.path", ctx.getStringFromPool(root.expandSubrepoPath(s.path()))) + .setSubrepoRootParamDiff("teamcity.internal.subrepo.path", ctx.getStringFromPool(mainHgRoot.expandSubrepoPath(s.path()))) .setSubrepoRevision(ctx.getStringFromPool(s.revision()))); } attributes.putAll(attrBuilder.buildAttributes());