Mercurial > hg > mercurial
changeset 261:b855b472e985
TW-17530
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Mon, 04 Jul 2011 13:42:30 +0400 |
parents | b00f7c7d53e1 (current diff) 62f9389a4095 (diff) |
children | d6c9dd7e0fee |
files | |
diffstat | 2 files changed, 24 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java Fri Jun 17 12:15:41 2011 +0400 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java Mon Jul 04 13:42:30 2011 +0400 @@ -113,17 +113,27 @@ private List<VcsChange> toVcsChanges(final List<ModifiedFile> modifiedFiles, String prevVer, String curVer, CheckoutRules rules) { List<VcsChange> files = new ArrayList<VcsChange>(); for (ModifiedFile mf: modifiedFiles) { - String normalizedPath = PathUtil.normalizeSeparator(mf.getPath()); - VcsChangeInfo.Type changeType = getChangeType(mf.getStatus()); - if (changeType == null) { - Loggers.VCS.warn("Unable to convert status: " + mf.getStatus() + " to VCS change type"); - changeType = VcsChangeInfo.Type.NOT_CHANGED; - } - files.add(new VcsChange(changeType, mf.getStatus().getName(), normalizedPath, rules.map(mf.getPath()), prevVer, curVer)); + final String path = rules.map(mf.getPath()); + if (shouldInclude(path)) + files.add(toVcsChange(mf, prevVer, curVer, path)); } return files; } + private boolean shouldInclude(String path) { + return path != null; + } + + private VcsChange toVcsChange(ModifiedFile mf, String prevVer, String curVer, String mappedPath) { + String normalizedPath = PathUtil.normalizeSeparator(mf.getPath()); + VcsChangeInfo.Type changeType = getChangeType(mf.getStatus()); + if (changeType == null) { + Loggers.VCS.warn("Unable to convert status: " + mf.getStatus() + " to VCS change type"); + changeType = VcsChangeInfo.Type.NOT_CHANGED; + } + return new VcsChange(changeType, mf.getStatus().getName(), normalizedPath, mappedPath, prevVer, curVer); + } + private VcsChangeInfo.Type getChangeType(final ModifiedFile.Status status) { switch (status) { case ADDED:return VcsChangeInfo.Type.ADDED;
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Fri Jun 17 12:15:41 2011 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Mon Jul 04 13:42:30 2011 +0400 @@ -401,6 +401,13 @@ assertFiles(Arrays.asList("M dir6/file6.txt", "A dir5/file5.txt"), changes.get(1)); } + //TW-17530 + public void test_collect_changes_with_exclude_checkout_rules() throws Exception { + VcsRootImpl root = createVcsRoot(simpleRepo()); + collectChanges(root, "0:9875b412a788", "10:9c6a6b4aede0", new CheckoutRules("-:dir1\n" + + "-:dir with space")); + } + //TW-10172 public void should_not_fill_server_clone_path() { assertFalse(myVcs.getDefaultVcsProperties().containsKey(Constants.SERVER_CLONE_PATH_PROP));