# HG changeset patch # User Dmitry Neverov # Date 1454435950 -3600 # Node ID 2f876a09cb99d3c5a69f503e3918f3fd86317189 # Parent 07a7f22d895464562fed649bb86a56c9c80ce1f7# Parent ed49cbc93aa324eea6a10152778ad362fc3f7561 Merge branch Hajipur-9.1.x diff -r 07a7f22d8954 -r 2f876a09cb99 mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ModificationDataFactory.java --- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ModificationDataFactory.java Mon Dec 28 21:41:06 2015 +0300 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ModificationDataFactory.java Tue Feb 02 18:59:10 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); } } diff -r 07a7f22d8954 -r 2f876a09cb99 mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java --- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Mon Dec 28 21:41:06 2015 +0300 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Tue Feb 02 18:59:10 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 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 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()); + } }