changeset 862:24a6ef9166ae

UP-1866 disable patterns in hg archive include rules
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Mon, 25 Aug 2014 19:22:39 +0200
parents 3f4edc3080db
children 11af75f9dc98
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/ArchiveCommand.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java mercurial-tests/testData/fileNameSymbols/README mercurial-tests/testData/fileNameSymbols/hg/00changelog.i mercurial-tests/testData/fileNameSymbols/hg/bookmarks mercurial-tests/testData/fileNameSymbols/hg/branch mercurial-tests/testData/fileNameSymbols/hg/cache/branchheads-served mercurial-tests/testData/fileNameSymbols/hg/dirstate mercurial-tests/testData/fileNameSymbols/hg/last-message.txt mercurial-tests/testData/fileNameSymbols/hg/requires mercurial-tests/testData/fileNameSymbols/hg/store/00changelog.i mercurial-tests/testData/fileNameSymbols/hg/store/00manifest.i mercurial-tests/testData/fileNameSymbols/hg/store/data/${ok}/1.i mercurial-tests/testData/fileNameSymbols/hg/store/data/a.i mercurial-tests/testData/fileNameSymbols/hg/store/fncache mercurial-tests/testData/fileNameSymbols/hg/store/phaseroots mercurial-tests/testData/fileNameSymbols/hg/store/undo mercurial-tests/testData/fileNameSymbols/hg/store/undo.phaseroots mercurial-tests/testData/fileNameSymbols/hg/tags.cache mercurial-tests/testData/fileNameSymbols/hg/undo.bookmarks mercurial-tests/testData/fileNameSymbols/hg/undo.branch mercurial-tests/testData/fileNameSymbols/hg/undo.desc mercurial-tests/testData/fileNameSymbols/hg/undo.dirstate mercurial-tests/testData/fileNameSymbolsIncrementalPatch/after/${ok}/1
diffstat 23 files changed, 34 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/ArchiveCommand.java	Mon Aug 25 16:28:24 2014 +0200
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/ArchiveCommand.java	Mon Aug 25 19:22:39 2014 +0200
@@ -65,15 +65,16 @@
     return this;
   }
 
-  public boolean addIncludeRule(@NotNull final String rule) {
+  public boolean addIncludePathRule(@NotNull String rule) {
     final MercurialCommandLine cmd = createCmd();
 
+    String pathRule = "path:" + rule;
     final int cmdSize = cmd.getCommandLineLength();
-    if (cmdSize + rule.length() + 3 + (myIncludeRules.isEmpty() ? 0 : "-I ".length()) > myCommandSettings.getMaxCommandLineSize()) {
+    if (cmdSize + pathRule.length() + 3 + (myIncludeRules.isEmpty() ? 0 : "-I ".length()) > myCommandSettings.getMaxCommandLineSize()) {
       return false;
     }
 
-    myIncludeRules.add(rule);
+    myIncludeRules.add(pathRule);
     return true;
   }
 
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Mon Aug 25 16:28:24 2014 +0200
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Mon Aug 25 19:22:39 2014 +0200
@@ -282,7 +282,7 @@
         i++;
         continue;
       }
-      if (archive.addIncludeRule(notDeletedFiles.get(i))) {
+      if (archive.addIncludePathRule(/*"path:" + */notDeletedFiles.get(i))) {
         i++;
         continue;
       }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java	Mon Aug 25 16:28:24 2014 +0200
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java	Mon Aug 25 19:22:39 2014 +0200
@@ -356,6 +356,16 @@
   }
 
 
+  @TestFor(issues = "UP-1866")
+  public void incremental_patch_with_spec_symbols_in_paths() throws Exception {
+    setName("fileNameSymbolsIncrementalPatch");
+    File remoteRepo = copyRepository(myTempFiles, new File("mercurial-tests/testData/fileNameSymbols").getAbsolutePath());
+    VcsRoot root = vcsRoot().withUrl(remoteRepo.getAbsolutePath()).withArchiveForPatch(true).build();
+    ByteArrayOutputStream output = buildPatch(myVcs, root, "cc8c19c8f8ee", "120549be17e9", CheckoutRules.DEFAULT);
+    checkPatchResult(output.toByteArray());
+  }
+
+
   public void clean_patch_from_archive() throws Exception {
     setName("patch3");
     File repository = copyRepository(myTempFiles, simpleRepo());
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/README	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,2 @@
+1:120549be17e9 add ${ok}/1
+0:cc8c19c8f8ee add a
Binary file mercurial-tests/testData/fileNameSymbols/hg/00changelog.i has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/hg/branch	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,1 @@
+default
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/hg/cache/branchheads-served	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,2 @@
+120549be17e9b5faef278b2948fd65ca35ab7fee 1
+120549be17e9b5faef278b2948fd65ca35ab7fee default
Binary file mercurial-tests/testData/fileNameSymbols/hg/dirstate has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/hg/last-message.txt	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,1 @@
+add ${ok}/1
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/hg/requires	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,3 @@
+revlogv1
+store
+fncache
Binary file mercurial-tests/testData/fileNameSymbols/hg/store/00changelog.i has changed
Binary file mercurial-tests/testData/fileNameSymbols/hg/store/00manifest.i has changed
Binary file mercurial-tests/testData/fileNameSymbols/hg/store/data/${ok}/1.i has changed
Binary file mercurial-tests/testData/fileNameSymbols/hg/store/data/a.i has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/hg/store/fncache	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,2 @@
+data/${ok}/1.i
+data/a.i
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/hg/store/phaseroots	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,1 @@
+1 cc8c19c8f8ee4d2bd503dd0e42af5b240a7e6a24
Binary file mercurial-tests/testData/fileNameSymbols/hg/store/undo has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/hg/store/undo.phaseroots	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,1 @@
+1 cc8c19c8f8ee4d2bd503dd0e42af5b240a7e6a24
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/hg/tags.cache	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,2 @@
+0 cc8c19c8f8ee4d2bd503dd0e42af5b240a7e6a24
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/hg/undo.branch	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,1 @@
+default
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbols/hg/undo.desc	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,2 @@
+1
+commit
Binary file mercurial-tests/testData/fileNameSymbols/hg/undo.dirstate has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-tests/testData/fileNameSymbolsIncrementalPatch/after/${ok}/1	Mon Aug 25 19:22:39 2014 +0200
@@ -0,0 +1,1 @@
+1
\ No newline at end of file