Mercurial > hg > mercurial
diff mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgRepo.java @ 554:110de749f460
Collect subrepo changes only if subrepo revision changed
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Wed, 27 Feb 2013 17:00:42 +0400 |
parents | 6c8911ed66f2 |
children | a7719626703d |
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgRepo.java Mon Feb 25 18:43:55 2013 +0400 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgRepo.java Wed Feb 27 17:00:42 2013 +0400 @@ -209,12 +209,16 @@ @NotNull Map<String, SubRepo> curSubrepos) { List<HgSubrepoConfigChange> configChanges = new ArrayList<HgSubrepoConfigChange>(); for (Map.Entry<String, SubRepo> e : curSubrepos.entrySet()) { + String path = e.getKey(); SubRepo curSubrepo = e.getValue(); List<SubRepo> prevs = new ArrayList<SubRepo>(); for (Map<String, SubRepo> prev : prevSubrepos) { - SubRepo prevSubrepo = prev.remove(e.getKey()); - if (prevSubrepo != null) - prevs.add(prevSubrepo); + SubRepo prevSubrepo = prev.remove(path); + if (prevSubrepo == null) //no subrepo at this path in previous revision + continue; + if (prevSubrepo.equals(curSubrepo)) //subrepo configuration doesn't change since previous revision + continue; + prevs.add(prevSubrepo); } configChanges.add(new HgSubrepoConfigChange(e.getKey(), prevs, curSubrepo)); }