changeset 473:52daa97ae352

Merge branch Faradi-7.1.x
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 07 Sep 2012 16:53:00 +0400
parents 18f20be1769e (current diff) 6d4ce78234c5 (diff)
children 797fadbf2a9b
files
diffstat 4 files changed, 24 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgRepo.java	Thu Sep 06 18:12:53 2012 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgRepo.java	Fri Sep 07 16:53:00 2012 +0400
@@ -94,10 +94,10 @@
   }
 
   @NotNull
-  public List<String> listFiles() throws VcsException {
+  public List<String> listFiles(@NotNull String revision) throws VcsException {
     List<FileStatus> fileStatuses = status()
-            .fromRevision("tip")
-            .toRevision("tip")
+            .fromRevision(revision)
+            .toRevision(revision)
             .hideStatus()
             .showAllFiles()
             .call();
--- a/mercurial-server/resources/buildServerResources/mercurialSettings.jsp	Thu Sep 06 18:12:53 2012 +0400
+++ b/mercurial-server/resources/buildServerResources/mercurialSettings.jsp	Fri Sep 07 16:53:00 2012 +0400
@@ -25,7 +25,7 @@
     <th><label for="branchName">Default Branch: </label></th>
     <td>
         <props:textProperty name="branchName" />
-        <div class="smallNote">Branch to be used if no branch from Branch Specification is set</div>
+        <div class="smallNote" style="margin: 0;">Branch to be used if no branch from Branch Specification is set</div>
     </td>
   </tr>
   <bs:branchSpecTableRow/>
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ListFilesSupport.java	Thu Sep 06 18:12:53 2012 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ListFilesSupport.java	Fri Sep 07 16:53:00 2012 +0400
@@ -44,7 +44,7 @@
     HgRepo repo = myVcs.createRepo(root);
     List<VcsFileData> result = new ArrayList<VcsFileData>();
     Pattern p = compile(quote(File.separator));
-    for (String file : repo.listFiles()) {
+    for (String file : repo.listFiles(root.getBranchName())) {
       String canonicalFile = p.matcher(file).replaceAll("/");
       if (!canonicalFile.startsWith(dir))
         continue;
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ListFilesSupportTest.java	Thu Sep 06 18:12:53 2012 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ListFilesSupportTest.java	Fri Sep 07 16:53:00 2012 +0400
@@ -3,7 +3,9 @@
 import com.intellij.openapi.diagnostic.Logger;
 import jetbrains.buildServer.TempFiles;
 import jetbrains.buildServer.log.Log4jFactory;
+import jetbrains.buildServer.util.TestFor;
 import jetbrains.buildServer.vcs.ListDirectChildrenPolicy;
+import jetbrains.buildServer.vcs.VcsException;
 import jetbrains.buildServer.vcs.VcsFileData;
 import jetbrains.buildServer.vcs.VcsRoot;
 import org.jetbrains.annotations.NotNull;
@@ -12,10 +14,12 @@
 import org.testng.annotations.Test;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.Collection;
 
 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository;
 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot;
+import static org.testng.AssertJUnit.assertFalse;
 import static org.testng.AssertJUnit.assertNotNull;
 import static org.testng.AssertJUnit.assertTrue;
 
@@ -31,6 +35,7 @@
 
   private MercurialVcsSupport myVcs;
   private VcsRoot myRoot;
+  private File myRemoteRepoDir;
 
   @BeforeMethod
   protected void setUp() throws Exception {
@@ -41,9 +46,9 @@
             .build();
     myVcs = Util.createMercurialServerSupport(context, myPluginConfig);
 
-    File repo = tempFiles.createTempDir();
-    copyRepository(new File("mercurial-tests/testData/rep1"), repo);
-    myRoot = vcsRoot().withUrl(repo.getAbsolutePath()).build();
+    myRemoteRepoDir = tempFiles.createTempDir();
+    copyRepository(new File("mercurial-tests/testData/rep1"), myRemoteRepoDir);
+    myRoot = vcsRoot().withUrl(myRemoteRepoDir.getAbsolutePath()).build();
   }
 
 
@@ -72,6 +77,17 @@
     assertTrue(files.contains(file("file2.txt")));
   }
 
+
+  @TestFor(issues = "TW-23435")
+  public void should_take_branch_into_account() throws VcsException, IOException {
+    ListDirectChildrenPolicy policy = getListFilesPolicy();
+    VcsRoot differentBranchRoot = vcsRoot().withUrl(myRemoteRepoDir.getAbsolutePath()).withBranch("test_branch").build();
+    Collection<VcsFileData> files1 = policy.listFiles(myRoot, "");
+    Collection<VcsFileData> files2 = policy.listFiles(differentBranchRoot, "");
+    assertFalse("List files doesn't take branch into account", files1.equals(files2));
+  }
+
+
   @NotNull
   private ListDirectChildrenPolicy getListFilesPolicy() {
     ListDirectChildrenPolicy listFilesPolicy = (ListDirectChildrenPolicy) myVcs.getListFilesPolicy();