# HG changeset patch # User Dmitry Neverov # Date 1408987359 -7200 # Node ID 24a6ef9166ae3536095e70242351c8a21a9055fd # Parent 3f4edc3080dbbea06196638ca3c81e6957d51d64 UP-1866 disable patterns in hg archive include rules diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/ArchiveCommand.java --- 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; } diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java --- 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; } diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java --- 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()); diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/README --- /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 diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/00changelog.i Binary file mercurial-tests/testData/fileNameSymbols/hg/00changelog.i has changed diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/branch --- /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 diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/cache/branchheads-served --- /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 diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/dirstate Binary file mercurial-tests/testData/fileNameSymbols/hg/dirstate has changed diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/last-message.txt --- /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 diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/requires --- /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 diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/store/00changelog.i Binary file mercurial-tests/testData/fileNameSymbols/hg/store/00changelog.i has changed diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/store/00manifest.i Binary file mercurial-tests/testData/fileNameSymbols/hg/store/00manifest.i has changed diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/store/data/${ok}/1.i Binary file mercurial-tests/testData/fileNameSymbols/hg/store/data/${ok}/1.i has changed diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/store/data/a.i Binary file mercurial-tests/testData/fileNameSymbols/hg/store/data/a.i has changed diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/store/fncache --- /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 diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/store/phaseroots --- /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 diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/store/undo Binary file mercurial-tests/testData/fileNameSymbols/hg/store/undo has changed diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/store/undo.phaseroots --- /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 diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/tags.cache --- /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 + diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/undo.branch --- /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 diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/undo.desc --- /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 diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbols/hg/undo.dirstate Binary file mercurial-tests/testData/fileNameSymbols/hg/undo.dirstate has changed diff -r 3f4edc3080db -r 24a6ef9166ae mercurial-tests/testData/fileNameSymbolsIncrementalPatch/after/${ok}/1 --- /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