Mercurial > hg > mercurial
changeset 944:ed49cbc93aa3 Hajipur-9.1.x
TW-44122 allow all commits to be excluded by checkout rules
Marking commit as 'cannot be ignored' makes TeamCity to show it
even if it was excluded by checkout rules. As a result build
configuration change log is full of commits with 0 changed files.
author | Dmitry Neverov <dmitry.neverov@gmail.com> |
---|---|
date | Tue, 02 Feb 2016 18:52:25 +0100 |
parents | 448ef0521954 |
children | 2f876a09cb99 31ac1d822fd7 |
files | mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ModificationDataFactory.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java |
diffstat | 2 files changed, 27 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ModificationDataFactory.java Wed Sep 16 19:55:47 2015 +0200 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ModificationDataFactory.java Tue Feb 02 18:52:25 2016 +0100 @@ -21,6 +21,7 @@ import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.FileStatus; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.Status; import jetbrains.buildServer.log.Loggers; +import jetbrains.buildServer.serverSide.TeamCityProperties; import jetbrains.buildServer.vcs.*; import org.jetbrains.annotations.NotNull; @@ -57,11 +58,13 @@ private static void setCanBeIgnored(@NotNull final ModificationData md, @NotNull final ChangeSet cset) { if (md.getParentRevisions().size() > 1) { - //don't ignore merge commits - md.setCanBeIgnored(false); + boolean canIgnoreMerges = TeamCityProperties.getBooleanOrTrue("teamcity.hg.allowIgnoringMergeCommits"); + if (!canIgnoreMerges) + md.setCanBeIgnored(false); } else if (cset.getModifiedFiles().isEmpty()) { - //don't ignore empty commits - md.setCanBeIgnored(false); + boolean canIgnoreEmptyCommits = TeamCityProperties.getBooleanOrTrue("teamcity.hg.allowIgnoringEmptyCommits"); + if (!canIgnoreEmptyCommits) + md.setCanBeIgnored(false); } }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Wed Sep 16 19:55:47 2015 +0200 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Tue Feb 02 18:52:25 2016 +0100 @@ -331,11 +331,28 @@ @TestFor(issues = "TW-10076") public void should_not_allow_to_ignore_close_branch_commits() throws Exception { + try { + System.setProperty("teamcity.hg.allowIgnoringEmptyCommits", "false"); + VcsRootImpl root = createVcsRoot(myRep2Path); + List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, "df04faa7575a", "43023ea3f13b", CheckoutRules.DEFAULT); + assertEquals(changes.size(), 2); + ModificationData closeBranchCommit = changes.get(0); + assertEquals(closeBranchCommit.getVersion(), "ca64c523f54c"); + assertEquals(closeBranchCommit.getChangeCount(), 0); + assertFalse(closeBranchCommit.isCanBeIgnored()); + } finally { + System.getProperties().remove("teamcity.hg.allowIgnoringEmptyCommits"); + } + } + + + @TestFor(issues = "TW-44122") + public void by_default_all_commits_should_be_ignorable() throws Exception { VcsRootImpl root = createVcsRoot(myRep2Path); List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, "df04faa7575a", "43023ea3f13b", CheckoutRules.DEFAULT); - assertEquals(changes.size(), 2); - assertEquals(changes.get(1).getChangeCount(), 0); - assertFalse(changes.get(1).isCanBeIgnored()); + for (ModificationData change : changes) { + assertTrue(change.isCanBeIgnored()); + } }