summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
Commit message (Collapse)AuthorAgeFilesLines
* Adds the git attributes computation on the treewalkArthur Daussy2015-11-184-39/+887
| | | | | | | | | | | | Adds the getAttributes feature to the tree walk. The computation of attributes needs to be done by the TreeWalk since it needs both a WorkingTreeIterator and a DirCacheIterator. Bug: 342372 CQ: 9120 Change-Id: I5e33257fd8c9895869a128bad3fd1e720409d361 Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr> Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
* Merge "Fix MissingObjectException in RenameDetector"Christian Halstrick2015-11-171-0/+31
|\
| * Fix MissingObjectException in RenameDetectorRüdiger Herrmann2015-11-121-0/+31
| | | | | | | | | | | | | | | | | | | | | | When attempting to determine the size of a blob that does not exist, the RenameDetector throws a MissingObjectException. The fix is to return a size of zero if the size is requested for a blob id that doesn't exist. Bug: 481577 Change-Id: I4e86276039c630617610cc51d0eefa56d7d3952f Signed-off-by: Rüdiger Herrmann <ruediger.herrmann@gmx.de>
* | Merge branch 'stable-4.1'Matthias Sohn2015-11-141-0/+19
|\ \ | |/ |/| | | | | | | | | | | | | | | * stable-4.1: Prepare 4.1.2-SNAPSHOT builds JGit v4.1.1.201511131810-r Fallback exactRef: Do not ignore symrefs to unborn branch RefDirectory.exactRef: Do not ignore symrefs to unborn branch Change-Id: I66afb303f355aad8a7eaa7a6dff06de70ae9c490 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Prepare 4.1.2-SNAPSHOT buildsMatthias Sohn2015-11-142-41/+41
| | | | | | | | | | Change-Id: I1d1c4d918f2260c866c4392c1abea1e40a1de962 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * JGit v4.1.1.201511131810-rv4.1.1.201511131810-rMatthias Sohn2015-11-142-2/+2
| | | | | | | | | | Change-Id: If0246daab39fa279c30874549b198e7aa917bc62 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * RefDirectory.exactRef: Do not ignore symrefs to unborn branchJonathan Nieder2015-11-111-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When asked to read a symref pointing to a branch-yet-to-be-born (such as HEAD in a newly initialized repository), DfsRepository and FileRepository return different results. FileRepository: exactRef("HEAD") => null DfsRepository: exactRef("HEAD") => SymbolicRef[HEAD -> refs/heads/master=00000000] getRef("HEAD") returns the same as DfsRepository's exactRef in both backends. The intended behavior is the DfsRepository one: exactRef() is supposed to be like getRef(), but more exact because it doesn't need to traverse the search path. The discrepancy is because DfsRefDatabase implements exactRef() directly with the intended semantics, while RefDirectory uses a fallback implementation built on top of getRefs(). getRefs() skips symrefs to an unborn branch. Override the fallback implementation with a correct implementation that is similar to getRef() to avoid this. A followup change will fix the fallback. Change-Id: Ic138a5564a099ebf32248d86b93e2de9ab3c94ee Reported-by: David Pursehouse <david.pursehouse@sonymobile.com> Improved-by: Christian Halstrick <christian.halstrick@sap.com> Bug: 478865
* | Fix imports in DfsInserterTestMatthias Sohn2015-11-051-10/+9
| | | | | | | | | | | | | | - remove unused import of AnyObjectId - auto-sort import statements Change-Id: I1c7cec2734bd58370a7dfae70a6a4ccbe3e304ce Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Insert duplicate objects to prevent race during garbage collection.Mike Williams2015-11-041-7/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this change, DfsInserter would not insert an object into a pack if it already existed in another pack in the repository, even if that pack was unreachable. Consider this sequence of events: - Object FOO is pushed to a repository. - Subsequent ref changes make FOO UNREACHABLE_GARBAGE. - FOO is subsequently re-inserted using a DfsInserter, but skipped due to existing in UNREACHABLE_GARBAGE. - The repository is repacked; FOO will not be written into a new pack because it is not yet reachable from a reference. If the UNREACHABLE_GARBAGE packs are deleted, FOO disappears. - A reference is updated to reference FOO. This reference is now broken as FOO was removed when the repacking process deleted the UNREACHABLE_GARBAGE pack that stored the only copy of FOO. The garbage collector can't safely delete the UNREACHABLE_GARBAGE pack because FOO might be in the middle of being re-inserted/re-packed. This change writes a duplicate copy of an object if it only exists in UNREACHABLE_GARBAGE. This "freshens" the object to give it a chance to survive long enough to be made reachable through a reference. Change-Id: I20f2062230f3af3bccd6f21d3b7342f1152a5532 Signed-off-by: Mike Williams <miwilliams@google.com>
* | Add support for pre-push hooksChristian Halstrick2015-11-021-0/+47
| | | | | | | | | | | | | | | | | | When the file <git-dir>/hooks/pre-push exists make sure that is is executing during a push. The pre-push hook runs during git push, after the remote refs have been updated but before any objects have been transferred. Change-Id: Ibbb58ee3227742d1a2f913134ce11e7a135c7f4c
* | Enhance FS.runProcess() to support stdin-redirection and binary dataChristian Halstrick2015-11-021-0/+171
| | | | | | | | | | | | | | | | In order to support filters in gitattributes FS.runProcess() is made public. Support for stdin redirection has been added. Support for binary data on stdin/stdout (as used be clean/smudge filters) has been added. Change-Id: Ice2c152e9391368dc5748d7b825a838e3eb755f9 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Bitmap generation: Add a test of ordering commits by "chains"Terry Parker2015-10-282-139/+271
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When commits are selected for bitmap generation, they are reordered so that related "chains" of commits are grouped together. Chains are "subbranches" of commits that may branch off of and re-merge with the main line. Grouping by chains means that the XOR difference between consecutive selected commits will be smaller, resulting in better run-length compression of the XORed bitmaps. Add a new testSelectionOrderingWithChains() test in a new GcCommitSelectionTest test class. Also move related GC commit selection tests out of GcBasicPackingTest and into GcCommitSelectionTest. Change-Id: I8e80cac29c4ca8193b41c9898e5436c22a659f11 Signed-off-by: Terry Parker <tparker@google.com>
* | Add missing dependency to org.slf4j for org.eclipse.jgit.test bundleMatthias Sohn2015-10-241-1/+2
| | | | | | | | | | | | This OSGi dependency was missed in 6c424d32. Change-Id: I5bad895896194ad468c260d6c0810132a358f152 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge "WalkEncryptionTest: get rid of Log4J dependency"Matthias Sohn2015-10-231-2/+3
|\ \
| * | WalkEncryptionTest: get rid of Log4J dependencyMarc Strapetz2015-10-211-2/+3
| | | | | | | | | | | | | | | | | | | | | Instead use SLF4J as all other code does Change-Id: I0fee9c0aaa1d98f918f25aa11c2160d86399467e Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
* | | Expose bitmap selection parameters via PackConfigTerry Parker2015-10-211-0/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Expose the following bitmap selection parameters via PackConfig: "bitmapContiguousCommitCount", "bitmapRecentCommitCount", "bitmapRecentCommitSpan", "bitmapDistantCommitSpan", "bitmapExcessiveBranchCount", and "bitmapInactiveBranchAge". The value of bitmapContiguousCommitCount, whereby bitmaps are created for the most recent N commits in a branch, has never been verified. If experiments show that they are not valuable, then we can simplify the implementation so that there is only a concept of recent and distant commit history (defined by "bitmapRecentCommitCount"), and the only controls we need are "bitmapRecentCommitSpan" and "bitmapDistantCommitSpan". Change-Id: I288bf3f97d6fbfdfcd5dde2699eff433a7307fb9 Signed-off-by: Terry Parker <tparker@google.com>
* | | Update bitmap selection throttling to fully span active branches.Terry Parker2015-10-212-62/+136
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the “bitmapCommitRange” parameter that was recently introduced with two new parameters: “bitmapExcessiveBranchCount” and “bitmapInactiveBranchAgeInDays”. If the count of branches does not exceed “bitmapExcessiveBranchCount”, then the current algorithm is kept for all branches. If the branch count is excessive, then the commit time for the tip commit for each branch is used to determine if a branch is “inactive”. "Active" branches get full commit selection using the existing algorithm. "Inactive" branches get fewer bitmaps near the branch tips. Introduce a "contiguousCommitCount" parameter that always enforces that the N most recent commits in a branch are selected for bitmaps. The previous nextSelectionDistance() algorithm created anywhere from 1-100 contiguous bitmaps at branch tips. For example, consider a branch with commits numbering 0-300, with 0 being the most recent commit. If the most recent 200 commits are not merge commits and the 200th commit was the last one selected, nextSelectionDistance() returned 100, causing commits 200-101 to be ignored. Then a window of size 100 was evaluated, searching for merge commits. Since no merge commits are found, the next commit (commit 0) was selected, for a total of 1 commit in the topmost 100 commits. If instead the 250th commit was selected, then by the same logic commit 50 is selected. At that point nextSelectionDistance() switches to selecting consecutive commits, so commits 0-50 in the topmost 100 commits are selected. The "contiguousCommitCount" parameter provides more determinism by always selecting a constant number or topmost commits. Add an optimization to break out of the inner loop of selectCommits() if all of the commits for the current branch have already been found. When reusing bitmaps from an existing pack, remove unnecessary populating and clearing of the writeBitmaps/PackBitmapIndexBuilder. Add comments to PackWriterBitmapPreparer, rename methods and variables for readability. Add tests for bitmap selection with and without merge commits and with excessive branch pruning triggered. Note: I will follow up with an additional change that exposes the new parameters through PackConfig. Change-Id: I5ccbb96c8849f331c302d9f7840e05f9650c4608 Signed-off-by: Terry Parker <tparker@google.com>
* | Merge "Push control of time into MockSystemReader"Jonathan Nieder2015-10-203-6/+6
|\ \
| * | Push control of time into MockSystemReaderTerry Parker2015-10-203-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LocalDiskRepositoryTestCase and TestRepository have competing ideas about time. Push them into MockSystemReader so they can cooperate. Rename getClock() methods that return Dates to getDate(). Change-Id: Ibbd9fe7f85d0064b0a19e3b675b9718a9e67c479 Signed-off-by: Terry Parker <tparker@google.com>
* | | Adding JGitV1 and JGitV2 Walk EncryptionAndrei Pozolotin2015-10-184-52/+359
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Building on top of https://git.eclipse.org/r/#/c/56391/ Here we preserve compatibility with JetS3t and add 2 new native JGit encryption implementations. For reference, see connection configuration files: * Version 0: jgit-s3-connection-v-0.properties * Version 1: jgit-s3-connection-v-1.properties * Version 2: jgit-s3-connection-v-2.properties Change-Id: I713290bcacbe92d88e5ef28ce137de73dd1abe2f Signed-off-by: Andrei Pozolotin <andrei.pozolotin@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Adding AES Walk Encryption support in http://www.jets3t.org/ modeAndrei Pozolotin2015-10-189-0/+1230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See previous attempt: https://git.eclipse.org/r/#/c/16674/ Here we preserve as much of JetS3t mode as possible while allowing to use new Java 8+ PBE algorithms such as PBEWithHmacSHA512AndAES_256 Summary of changes: * change pom.xml to control long tests * add WalkEncryptionTest.launch to run long tests * add AmazonS3.Keys to to normalize use of constants * change WalkEncryption to support AES in JetS3t mode * add WalkEncryptionTest to test remote encryption pipeline * add support for CI configuration for live Amazon S3 testing * add log4j based logging for tests in both Eclipse and Maven build To test locally, check out the review branch, then: * create amazon test configuration file * located your home dir: ${user.home} * named jgit-s3-config.properties * file format follows AmazonS3 connection settings file: accesskey = your-amazon-access-key secretkey = your-amazon-secret-key test.bucket = your-bucket-for-testing * finally: * run in Eclipse: WalkEncryptionTest.launch * or * run in Shell: mvn test --define test=WalkEncryptionTest Change-Id: I6f455fd9fb4eac261ca73d0bec6a4e7dae9f2e91 Signed-off-by: Andrei Pozolotin <andrei.pozolotin@gmail.com>
* | | Test stability: add fsTick() to avoid random testPruneNone() failuresAndrey Loskutov2015-10-131-0/+1
|/ / | | | | | | | | | | | | | | At least on Windows the test failed each second time on the last assert. Adding a small timeout before gc.prune() makes the test stable again. Change-Id: I23d98dd565912c58dcf2f24f3ebc24824670cff3 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* | Fixed jgit test failures on WindowsAndrey Loskutov2015-10-123-18/+34
| | | | | | | | | | | | | | | | | | | | RepoCommandTest was failing because of open file handle left. IgnoreNodeTest was failing because of problems with creation of files with trailing spaces on Windows. HookTest was failing because of wrong line delimiter. Change-Id: I34f074ac447eb4c3ada8b250309bb568b426189d Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* | Merge "Limit the range of commits for which bitmaps are created."Shawn Pearce2015-10-101-0/+73
|\ \
| * | Limit the range of commits for which bitmaps are created.Terry Parker2015-10-081-0/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A bitmap index contains bitmaps for a set of commits in a pack file. Creating a bitmap for every commit is too expensive, so heuristics select the most "important" commits. The most recent commits are the most valuable. To clone a repository only those for the branch tips are needed. When fetching, only commits since the last fetch are needed. The commit selection heuristics generally work, but for some repositories the number of selected commits is prohibitively high. One example is the MSM 3.10 Linux kernel. With over 1 million commits on 2820 branches, the current heuristics resulted in +36k selected commits. Each uncompressed bitmap for that repository is ~413k, making it difficult to complete a GC operation in available memory. The benefit of creating bitmaps over the entire history of a repository like the MSM 3.10 Linux kernel isn't clear. For that repository, most history for the last year appears to be in the last 100k commits. Limiting bitmap commit selection to just those commits reduces the count of selected commits from ~36k to ~10.5k. Dropping bitmaps for older commits does not affect object counting times for clones or for fetches on clients that are reasonably up-to-date. This patch defines a new "bitmapCommitRange" PackConfig parameter to limit the commit selection process when building bitmaps. The range starts with the most recent commit and walks backwards. A range of 10k considers only the 10000 most recent commits. A range of zero creates bitmaps only for branch tips. A range of -1 (the default) does not limit the range--all commits in the pack are used in the commit selection process. Change-Id: Ied92c70cfa0778facc670e0f14a0980bed5e3bfb Signed-off-by: Terry Parker <tparker@google.com>
* | | Delete non empty directories before checkout a pathAndrey Loskutov2015-10-091-1/+391
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the checkout path is currently a non-empty directory (and was a link or a regular file before), this directory will be removed before performing checkout, but only if the checkout path is specified. Bug: 474973 Change-Id: Ifc6c61592d9b54d26c66367163acdebea369145c Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* | | Add utility method allowing to check for empty folders in workdirChristian Halstrick2015-10-081-3/+21
|/ / | | | | | | | | | | | | | | | | Previously the method DirCacheCheckoutTest#assertWorkDir() silently skipped over empty folders. If tests would have left unexpected empty folders in the worktree this would be overlooked. Now empty folders have to be specified by something like mkmap("<foldername>", "/", ...] Change-Id: Idb8b270e92daf02ecdc381d148a5958bd83ec057 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge "RepoCommand: Add setRecordRemoteBranch option to record upstream branch"Jonathan Nieder2015-10-051-0/+45
|\ \
| * | RepoCommand: Add setRecordRemoteBranch option to record upstream branchStefan Beller2015-10-051-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On a server also running Gerrit that is using RepoCommand to convert from an XML manifest to a git submodule superproject periodically, it would be handy to be able to use Gerrit's submodule subscription feature[1] to update the superproject automatically between RepoCommand runs as changes are merged in each subprojects. This requires setting the 'branch' field for each submodule so that Gerrit knows what branch to watch. Add an option to do that. Setting the branch field also is useful for plain Git users, since it allows them to use "git submodule update --remote" to manually update all submodules between RepoCommand runs. [1] https://gerrit-review.googlesource.com/Documentation/user-submodules.html Change-Id: I1a10861bcd0df3b3673fc2d481c8129b2bdac5f9 Signed-off-by: Stefan Beller <sbeller@google.com>
* | | [ignore rules] fix for handling unmatched '[' bracketsAndrey Loskutov2015-09-302-1/+55
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes JGit parsing of ignore rules containing unmatched '[' bracket compatible to the Git CLI. Since '[' starts character group, Git tries to parse the ignore rule as a shell glob pattern and if the character group is not closed, the glob pattern is invalid and so the ignore rule never matches anything. See also http://article.gmane.org/gmane.comp.version-control.git/278699. Bug: 478490 Change-Id: I734a4d14fcdd721070e3f75d57e33c2c0700d503 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* | Add test case comparing CGit vs JGit ignore behavior for random patternsSébastien Arod2015-09-301-0/+275
| | | | | | | | | | | | | | | | This test case was developed in the scope of bug 478065. Bug: 478065 Change-Id: Ibcce1ed375d4a6ba05461e6c6b287d16752fa681 Signed-off-by: Sébastien Arod <sebastien.arod@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Prepare 4.2.0-SNAPSHOT buildsMatthias Sohn2015-09-282-41/+41
|/ | | | | Change-Id: If559d3565b1f84c93a533e1ce18d5293605d1950 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Prepare 4.1.1-SNAPSHOT buildsMatthias Sohn2015-09-282-41/+41
| | | | | Change-Id: I035f3a8d0f0de86e8b8f00e668be5ce008402e82 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* JGit v4.1.0.201509280440-rv4.1.0.201509280440-rMatthias Sohn2015-09-282-2/+2
| | | | | Change-Id: I9a536870b9f5c1247c52d6c976a954115982fa1c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [ignore rules] fix for backslash handlingAndrey Loskutov2015-09-261-8/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An attempt to re-implement not well documented Git CLI behavior for patterns with backslashes. It looks like Git silently ignores all \ characters in ignore rules, if they are NOT covered by 3 cases described in [1]: {quote} 1) ... Put a backslash ("\") in front of the first hash for patterns that begin with a hash. ... 2) Trailing spaces are ignored unless they are quoted with backslash ("\"). ... 3) Put a backslash ("\") in front of the first "!" for patterns that begin with a literal "!", for example, "\!important!.txt". {quote} Undocumented also is the fact that backslash itself can be escaped by backslash. So \h\e\l\l\o\.t\x\t rule matches hello.txt and a\\\\b a\b in Git CLI. Additionally, the glob parser [2] knows special meaning of backslash: {quote} One can remove the special meaning of '?', '*' and '[' by preceding them by a backslash, or, in case this is part of a shell command line, enclosing them in quotes. Between brackets these characters stand for themselves. Thus, "[[?*\]" matches the four characters '[', '?', '*' and '\'. {quote} [1] https://www.kernel.org/pub/software/scm/git/docs/gitignore.html [2] http://man7.org/linux/man-pages/man7/glob.7.html Bug: 478065 Change-Id: I3dc973475d1943c5622103701fa8cb3ea0684e3e Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* [ignore rules] Fix for character group matcherAndrey Loskutov2015-09-261-0/+1
| | | | | | | | | | Currently we fail to properly recognize character group if the pattern before character group contains opening bracket. See comment from Sebastien Arod on https://git.eclipse.org/r/56678/ Change-Id: I70d3657a2a328818ea2bdc1409d18ecb3a85825b Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* Merge "Show submodule difference as a hunk"Matthias Sohn2015-09-251-3/+2
|\
| * Show submodule difference as a hunkJacob Keller2015-09-241-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current DiffFormat behavior regarding submodules (aka git links) is incorrect. The "Subproject commit <sha1>" appears as part of the diff header, rather than as its own hunk. --> From JGit implementation diff --git a/plugins/cookbook-plugin b/plugins/cookbook-plugin index b9d3ca8..ec6ed89 160000 --- a/plugins/cookbook-plugin +++ b/plugins/cookbook-plugin -Subproject commit b9d3ca8a65030071e28be19296ba867ab424fbbf +Subproject commit ec6ed89c47ba7223f82d9cb512926a6c5081343e --> From C Git 2.5.2 diff --git a/plugins/cookbook-plugin b/plugins/cookbook-plugin index b9d3ca8..ec6ed89 160000 --- a/plugins/cookbook-plugin +++ b/plugins/cookbook-plugin @@ -1 +1 @@ -Subproject commit b9d3ca8a65030071e28be19296ba867ab424fbbf +Subproject commit ec6ed89c47ba7223f82d9cb512926a6c5081343e The current way of processing submodules results in no hunk header and includes the contents of the hunk as part of the headers. To fix this, we can't just have our writeGitLinkDiffText output the hunk header. We have to change the flow so that the raw text gets parsed as a diff. The easiest way to do this is to fake the RawText in the FormatResult when we have a GITLINK. It should be noted that it seems possible for there to be a difference between a GITLINK and a non-GITLINK, but I don't think this can happen in practice, so I don't think we need to worry too much about it. This patch also fixes up the test for GitLink headers, as the test was for the old behavior. My setup has 3 other failing tests which may or may not be the result of environmental changes. However, the same tests fail without this commit, so I do not believe they are related. Bug: 477759 Change-Id: If13f7b406904fad814416c93ed09ea47ef183337 Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
* | Properly support special regex characters in ignore rulesAndrey Loskutov2015-09-241-0/+78
| | | | | | | | | | | | | | | | | | | | Ignore rules should escape $^(){}+| chars if using regular expressions, because they should be treated literally if they aren't part of a character group. Bug: 478055 Change-Id: Ic7276442d7f8f02594b85eae1ef697362e62d3bd Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* | Remove unneeded @SuppressWarnings("boxing")Hugo Arès2015-09-231-5/+3
|/ | | | | | | | Fix the unit tests to not do boxing by using assertEquals(int, int) instead of assertThat with a matcher. Change-Id: I5412fe2f72c8ea0227b9ff3a3352ccb555e22231 Signed-off-by: Hugo Arès <hugo.ares@ericsson.com>
* Fix endless loop in ObjectChecker for MacOSChristian Halstrick2015-09-171-0/+11
| | | | | Bug: 477090 Change-Id: I0ba416f1cc172a835dd2723ff7fa904597ffd097 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Fix integer boxing eclipse warningHugo Arès2015-09-171-1/+1
| | | | | Change-Id: I89a8495a799254586016393e51697cfbceacac8b Signed-off-by: Hugo Arès <hugo.ares@ericsson.com>
* URIish: fall back to host as humanish namePatrick Steinhardt2015-09-101-0/+58
| | | | | | | | | | | | | | | When we have a URI that contains an empty path component (that is it only contains a "/") we want to fall back to the host as humanish name. This change is according to the behavior of upstream git, which falls back on the hostname when guessing directory names for newly cloned repositories (see [1] for the discussion). [1] http://article.gmane.org/gmane.comp.version-control.git/274669 Change-Id: I44400c6ab72a2722d2155d53d63671bd867d6c44 Signed-off-by: Patrick Steinhardt <ps@pks.im>
* PushCertificateStore: Don't add no-op command to batchDave Borowitz2015-09-021-0/+28
| | | | | | | | | | | | | If no refs match the input list and we are writing to a batch, the returned new commit from write() will match the current commit. Adding a command to the batch for this case is harmless as it will succeed, but it's more straightforward to just skip adding a command in this case. Add tests or the combination of saving matching refs and saving to a batch. Change-Id: I6837389b08e6c80bc2d4c9e9c506d07293ea5fb2
* Use NIO2 to implement FileUtils.rename() and expose optionsMatthias Sohn2015-08-171-0/+12
| | | | | | | | - use NIO2's Files.move() to reimplement rename() - provide a second method accepting CopyOptions which can be used to request atomic move. Change-Id: Ibcf722978e65745218a1ccda45344ca295911659 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Consider original file mode while checking parent ignore rulesAndrey Loskutov2015-08-121-0/+50
| | | | | | | | | | | | The WorkingTreeIterator.isEntryIgnored() should use originally requested file mode while descending to the file tree root and checking ignore rules. Original code asking isEntryIgnored() on a file was using directory mode instead if the .gitignore was not located in the same directory. Bug: 473506 Change-Id: I9f16ba714c3ea9e6585e9c11623270dbdf4fb1df Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* containsGitModulesFile() should not crash on bare repositoryAndrey Loskutov2015-08-031-0/+8
| | | | | Change-Id: Iba7e4674b3d33c730613a6ac703977f48b015853 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
* PushCertificate: Omit null pushee from text representationDave Borowitz2015-07-281-0/+1
| | | | Change-Id: Ie9546f2e0e9ee62e0a3c919572153b6076355195
* Fix ResolveMerger when files should be replaced by foldersChristian Halstrick2015-07-231-0/+74
| | | | | | | | | | When during Merge for a certain path OURS & BASE contains a file and THEIRS contains a folder there was a bug in JGit leading to unnecessary conflicts. This commit fixes it and adds a test for this situation. Bug: 472693 Change-Id: I71fac5a6a2ef926c01adc266c6f9b3275e870129 Also-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Don't keep empty ignore rules in the ignore node listAndrey Loskutov2015-07-211-1/+21
| | | | | Change-Id: Icd893dfaba06561bbe5cc60ebf866ec5d8301c22 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>