diff --git a/java/com/google/gerrit/server/git/SubmoduleOp.java b/java/com/google/gerrit/server/git/SubmoduleOp.java index 56ed432a23..0e3e146273 100644 --- a/java/com/google/gerrit/server/git/SubmoduleOp.java +++ b/java/com/google/gerrit/server/git/SubmoduleOp.java @@ -14,6 +14,8 @@ package com.google.gerrit.server.git; +import static java.util.Comparator.comparing; + import com.google.common.collect.ImmutableSet; import com.google.common.collect.MultimapBuilder; import com.google.common.collect.SetMultimap; @@ -47,6 +49,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; @@ -416,7 +419,10 @@ public class SubmoduleOp { DirCache dc = readTree(or.rw, currentCommit); DirCacheEditor ed = dc.editor(); int count = 0; - for (SubmoduleSubscription s : targets.get(subscriber)) { + + List subscriptions = new ArrayList<>(targets.get(subscriber)); + Collections.sort(subscriptions, comparing((SubmoduleSubscription s) -> s.getPath())); + for (SubmoduleSubscription s : subscriptions) { if (count > 0) { msgbuf.append("\n\n"); } diff --git a/javatests/com/google/gerrit/acceptance/git/SubmoduleSubscriptionsWholeTopicMergeIT.java b/javatests/com/google/gerrit/acceptance/git/SubmoduleSubscriptionsWholeTopicMergeIT.java index 7583830587..2812c8637e 100644 --- a/javatests/com/google/gerrit/acceptance/git/SubmoduleSubscriptionsWholeTopicMergeIT.java +++ b/javatests/com/google/gerrit/acceptance/git/SubmoduleSubscriptionsWholeTopicMergeIT.java @@ -346,17 +346,17 @@ public class SubmoduleSubscriptionsWholeTopicMergeIT extends AbstractSubmoduleSu "master", "Update git submodules\n\n" + "* Update " - + name("sub3") + + name("sub1") + " from branch 'master'\n to " - + sub3HEAD + + sub1HEAD + "\n\n* Update " + name("sub2") + " from branch 'master'\n to " + sub2HEAD + "\n\n* Update " - + name("sub1") + + name("sub3") + " from branch 'master'\n to " - + sub1HEAD); + + sub3HEAD); } superRepo