aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit
Commit message (Collapse)AuthorAgeFilesLines
* Minor improvements in git config file inclusionsThomas Wolf2018-01-283-5/+12
| | | | | | | | | | | * Section and key names in git config files are case-insensitive. * If an include directive is invalid, include the line in the exception message. * If inclusion of the included file fails, put the file name into the exception message so that the user knows in which file the problem is. Change-Id: If920943af7ff93f5321b3d315dfec5222091256c Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* Progress reporting for checkoutMarkus Duft2018-01-2311-1/+138
| | | | | | | | | | | | | | The reason for the change is LFS: when using a lot of LFS files, checkout can take quite some time on larger repositories. To avoid "hanging" UI, provide progress reporting. Also implement (partial) progress reporting for cherry-pick, reset, revert which are using checkout internally. The feature is also useful without LFS, so it is independent of it. Change-Id: I021e764241f3c107eaf2771f6b5785245b146b42 Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Enforce DFS blockLimit is a multiple of blockSizeDave Borowitz2018-01-223-6/+31
| | | | Change-Id: I2821124ff88d7d1812a846ed20f3828fc9123b38
* Revert usage of TYPE_USE in Nullable and NonNull annotationsDavid Pursehouse2018-01-195-7/+18
| | | | | | | | | | | | Using TYPE_USE causes compilation errors in Eclipse Neon.3 (JDT 3.12.3) and Eclipse Oxygen.2 (JDT 3.13.2). This reverts commit 8e217517e2c515032dd0d661535d2133cd80123a. This reverts commit 55eba8d0f55464ca84d676828f67a6fe14b2454d. Reported-by: Thomas Wolf <thomas.wolf@paranor.ch> Change-Id: I96869f80dd11ee238911706581b224bca4fb12cd Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Nullable: Switch to TYPE_USEDavid Pursehouse2018-01-184-12/+5
| | | | | | | | | | | | | | | Since JGit now requires Java 8, we can switch to TYPE_USE instead of explicitly specifying the target type. Some of the existing uses of Nullable need to be reworked slightly as described in [1] to prevent the compilation error: scoping construct cannot be annotated with type-use annotation [1] https://stackoverflow.com/a/21385939/381622 Change-Id: Idba48f67a09353b5237685996ce828c8ca398168 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* NonNull: Switch to TYPE_USEDavid Pursehouse2018-01-181-6/+2
| | | | | | | | Since JGit now requires Java 8, we can switch to TYPE_USE instead of explicitly specifying the target type. Change-Id: I373d47c3d92507459685789df1fad0933d5625ff Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* NonNull: Fix typo in javadocDavid Pursehouse2018-01-181-1/+1
| | | | | Change-Id: Ia8e6559047a12391223645e2768f46666f198f6d Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* RevWalk: Annotate methods documented to return "Never null" as @NonNullDavid Pursehouse2018-01-181-0/+12
| | | | | Change-Id: If1a1bed4b04dd48c9573fd3c4eacbf73de40622f Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Skip broken symbolic ref in DfsReftableDatabaseZhen Chen2018-01-171-1/+1
| | | | | | | | | | We skipped the broken symbolic reference in other implementation like DfsRefDatabase, RefDirectory. The broken symbolic reference may cause NPE when caller forget to have a null check against the object id before calling parse it. Change-Id: If5e07202e9ee329d0bd9488936d79c98143c7ad9 Signed-off-by: Zhen Chen <czhen@google.com>
* Make SideBandInputStream publicHan-Wen Nienhuys2018-01-171-1/+2
| | | | | | | This mirrors SideBandOutputStream which is also public Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Change-Id: Ic0983af663f0c4c85bf5486b195108c45cddc4c2
* Merge branch 'stable-4.10'Matthias Sohn2018-01-132-60/+101
|\ | | | | | | | | | | | | | | | | * stable-4.10: Revert handling of ssh IdentityFile to pre-4.9 behavior Prepare 4.10.1-SNAPSHOT builds JGit v4.10.0.201712302008-r Change-Id: I13797f064de919c257feb8e96da226d7b1faaf7a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Merge branch 'stable-4.9' into stable-4.10Matthias Sohn2018-01-132-60/+101
| |\ | | | | | | | | | | | | | | | | | | * stable-4.9: Revert handling of ssh IdentityFile to pre-4.9 behavior Change-Id: I7cd2f0fe93be5193d6de2a376a023bdece5d84a9
| | * Revert handling of ssh IdentityFile to pre-4.9 behaviorThomas Wolf2018-01-122-60/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Jsch caches keys (aka identities) specified in ~/.ssh/config via IndentityFile only for the current Jsch Session. This results in multiple password prompts for successive sessions. Do the handling of IdentityFile exclusively in JGit, as it was before 4.9. JGit uses different Jsch instances per host and caches the IdentityFile there, allowing it to be re-used in different sessions for the same host. * Add comments to explain this. * Move the JschBugFixingConfig from OpenSshConfig to JschConfigSessionFactory to have all these Jsch work-arounds in one place. * Make that config hide the IdentityFile config from Jsch to avoid that Jsch overrides the JGit behavior. Bug: 529173 Change-Id: Ib36c34a2921ba736adeb64de71323c2b91151613 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| * | Prepare 4.10.1-SNAPSHOT buildsMatthias Sohn2017-12-313-49/+49
| | | | | | | | | | | | | | | Change-Id: I139fb660c4630d9d073eabf37ff26ea3a823bcbd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | JGit v4.10.0.201712302008-rv4.10.0.201712302008-rMatthias Sohn2017-12-313-4/+4
| | | | | | | | | | | | | | | Change-Id: I9cc3a839d906acd01829df1de64cfafca8a6d008 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | RefDirectory#hasLooseRef: Fix stream resource leak reported by error-proneDavid Pursehouse2018-01-101-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Error-prone reports: [StreamResourceLeak] Streams that encapsulate a closeable resource should be closed using try-with-resources Change-Id: I86154fba2b896723feaecf8991ed3c8e96ea2499 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | | Ensure DirectoryStream is closed promptlyDave Borowitz2018-01-051-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From the javadoc for Files.list: "The returned stream encapsulates a DirectoryStream. If timely disposal of file system resources is required, the try-with-resources construct should be used to ensure that the stream's close method is invoked after the stream operations are completed." This is the only call to Files#newDirectoryStream that is not already in a try-with-resources. Change-Id: I91e6c56b5d74e8435457ad6ed9e6b4b24d2aa14e
* | | Add com.jcraft.jzlib 1.1.1Matthias Sohn2018-01-042-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | com.jcraft.jsch requires com.jcraft.jzlib to provide optional zlib packet compression support. Add this library so that jgit can handle packet compression. CQ: 15292 Bug: 529129 Change-Id: I0297bd0488753547a5f5d47dbf0db508a79dd265 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Merge "Fix file handle leak in FetchCommand#fetchSubmodules"Matthias Sohn2018-01-041-30/+34
|\ \ \
| * | | Fix file handle leak in FetchCommand#fetchSubmodulesTim Hosey2018-01-041-30/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The private fetchSubmodules method in the FetchCommand class creates a Repository instance for each submodule being fetched, but never calls closes on it. This leads to the leaking of file handles. Bug: 526494 Change-Id: I7070388b8b62063d9d5cd31afae3015a8388044f Signed-off-by: Tim Hosey <timhoseydev@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | Skip unborn branches in UploadPackZhen Chen2018-01-032-4/+10
|/ / / | | | | | | | | | | | | | | | | | | The ObjectId of an unborn branch is null, skip those in UploadPack. Change-Id: I7cbf66b05dff98c4fe9f33e20a647ba6acf364b2 Signed-off-by: Zhen Chen <czhen@google.com>
* / / Prepare 4.11.0-SNAPSHOT buildsMatthias Sohn2017-12-313-49/+49
|/ / | | | | | | | | Change-Id: I5d5e2befcf530d93457d44684bd9e4fc2392e5eb Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | WorkingTreeIterator should pass FS to submodulesMarc Strapetz2017-12-302-3/+22
| | | | | | | | | | Change-Id: I4b7bc6bab449b9e3aebba8170788ff9e4a04195a Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
* | CloneCommand: option to set FS to be usedMarc Strapetz2017-12-291-0/+20
| | | | | | | | | | Change-Id: If8342974d07b7d89a6c5721a6dd03826886aa89e Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
* | InitCommand: option to set FS to be usedMarc Strapetz2017-12-291-0/+20
| | | | | | | | | | Change-Id: I95c72f3bdc2da748adbb0d82af72f60650821aab Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
* | Add a command to deinitialize submodulesDavid Turner2017-12-275-1/+440
| | | | | | | | | | Change-Id: Iaaefc2cbafbf083d6ab158b1c378ec69cc76d282 Signed-off-by: David Turner <dturner@twosigma.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Use submodule name instead of path as key in configDavid Turner2017-12-274-12/+20
| | | | | | | | | | | | | | | | | | When a submodule is moved, the "name" field remains the same, while the "path" field changes. Git uses the "name" field in .git/config when a submodule is initialized, so this patch makes JGit do so too. Change-Id: I48d8e89f706447b860c0162822a8e68170aae42b Signed-off-by: David Turner <dturner@twosigma.com>
* | URIish: support for empty portsMarc Strapetz2017-12-231-6/+18
| | | | | | | | | | | | | | | | Properly parse URLs like "ssh://host:/path" Bug: 519187 Change-Id: I0054868e30509e4ba919444be16c2a20f741545a Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
* | Add header Automatic-Module-Name for Java 9Karsten Thoms2017-12-231-0/+1
| | | | | | | | | | | | Bug: 529075 Change-Id: I4532ce2c80eb91531d46026676502d636ccda706 Signed-off-by: Karsten Thoms <karsten.thoms@itemis.de> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge branch 'stable-4.9'Matthias Sohn2017-12-231-1/+4
|\| | | | | | | | | | | | | | | * stable-4.9: Strings#convertGlob: fix escaping of patterns like [\[]. Change-Id: I18d55537002b3153db35f8a6b60f2f5317d17248 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Strings#convertGlob: fix escaping of patterns like [\[].Dmitry Pavlenko2017-12-211-1/+4
| | | | | | | | | | | | | | | | | | | | Originally the patterns were escaped twice leading to wrong matching results. Bug: 528886 Change-Id: I26e201b4b0ef51cac08f940b76f381260fa925ca Signed-off-by: Dmitry Pavlenko <pavlenko@tmatesoft.com> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | Merge changes I0f1df93b,Ifd40129b,I1b059e1aDave Borowitz2017-12-211-9/+24
|\ \ | | | | | | | | | | | | | | | | | | * changes: ConfigTest: Add some additional comment parsing tests Config: Drop backslash in invalid escape sequences in subsections Config: Match C git behavior more closely in escaping values
| * | Config: Drop backslash in invalid escape sequences in subsectionsDave Borowitz2017-12-211-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are ignored by C git when parsing: $ git config -f - --list <<EOF [foo "x\0y"] bar = baz [foo "x\qy"] bar = baz [foo "x\by"] bar = baz [foo "x\ny"] bar = baz [foo "x\ty"] bar = baz EOF foo.x0y.bar=baz foo.xqy.bar=baz foo.xby.bar=baz foo.xny.bar=baz foo.xty.bar=baz This behavior is different from value parsing, where an invalid escape sequence is an error (which JGit already does as well): $ git config -f - --list <<EOF [foo] bar = x\qy EOF fatal: bad config line 2 in standard input Change-Id: Ifd40129b37d9a62df3d886d8d7e22f766f54e9d1
| * | Config: Match C git behavior more closely in escaping valuesDave Borowitz2017-12-211-6/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So this happened: $ git config -f foo.config foo.a 'x"y' $ git config -f foo.config foo.b x\\y $ git config -f foo.config foo.c $'x\ny' $ git config -f foo.config foo.d $'x\ty' $ git config -f foo.config foo.e $'x\by' $ cat foo.config [foo] a = x\"y b = x\\y c = x\ny d = x\ty e = y That last line is my shell interpreting the backspace byte: $ python -c 'print repr(open("foo.config").read())' '[foo]\n\ta = x\\"y\n\tb = x\\\\y\n\tc = x\\ny\n\td = x\\ty\n\te = x\x08y\n' Change-Id: I1b059e1afb544c39ddb587c07bf79a06e99d0a09
* | | Merge branch 'stable-4.9'Dave Borowitz2017-12-211-1/+1
|\ \ \ | |/ / |/| / | |/ | | | | | | * stable-4.9: Make PackInserter public Change-Id: I367c6111661f3005419e2becd695e04e65202f97
| * Make PackInserter publicDave Borowitz2017-12-211-1/+1
| | | | | | | | | | | | | | | | The intent with the setCompressionLevel and checkExisting methods (which are already public) is for callers to be able to call them, but they can't do that if the class itself is not public. Change-Id: I014044fec3bfa1d33775500345efd60eb5d45bde
* | Fix remaining javadoc errors raised by doclintMatthias Sohn2017-12-2117-23/+20
| | | | | | | | | | | | | | For now ignore doclint "missing" warnings. Change-Id: I0e5af7a757f4d92ffeeb113f30576a35414d6781 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Fix javadoc in org.eclipse.jgit util packagesMatthias Sohn2017-12-2056-386/+876
| | | | | | | | Change-Id: Ia655f45153bcf1d422ffffce6dcf914847e14c4c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Fix javadoc in org.eclipse.jgit treewalk packageMatthias Sohn2017-12-2021-243/+476
| | | | | | | | Change-Id: I1f9d9a005c7228c9881762a78228accad2c7a6d4 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Fix javadoc in org.eclipse.jgit transport packageMatthias Sohn2017-12-20109-755/+1807
| | | | | | | | Change-Id: Id70e2c27e38bf12f87e66b28fbd0b06908494764 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge branch 'stable-4.9'Dave Borowitz2017-12-202-31/+107
|\| | | | | | | | | | | | | | | * stable-4.9: PackInserter: Ensure objects are written at the end of the pack ObjectInserter: Add warning about mixing read-back with writes Change-Id: I308e7c1c6b72e8d4d9b5d0f4f51e9815fc92d7d7
| * PackInserter: Ensure objects are written at the end of the packDave Borowitz2017-12-201-31/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When interleaving reads and writes from an unflushed pack, we forgot to reset the file pointer back to the end of the file before writing more new objects. This had at least two unfortunate effects: * The pack data was potentially corrupt, since we could overwrite previous portions of the file willy-nilly. * The CountingOutputStream would report more bytes read than the size of the file, which stored the wrong PackedObjectInfo, which would cause EOFs during reading. We already had a test in PackInserterTest which was supposed to catch bugs like this, by interleaving reads and writes. Unfortunately, it didn't catch the bug, since as an implementation detail we always read a full buffer's worth of data from the file when inflating during readback. If the size of the file was less than the offset of the object we were reading back plus one buffer (8192 bytes), we would completely accidentally end up back in the right place in the file. So, add another test for this case where we read back a small object positioned before a large object. Before the fix, this test exhibited exactly the "Unexpected EOF" error reported at crbug.com/gerrit/7668. Change-Id: I74f08f3d5d9046781d59e5bd7c84916ff8225c3b
| * ObjectInserter: Add warning about mixing read-back with writesDave Borowitz2017-12-201-0/+7
| | | | | | | | Change-Id: Ib0460d3c7df315d86f9adca5f66a8fd4c39e4060
* | Fix javadoc leftovers in org.eclipse.jgit api packageMatthias Sohn2017-12-202-4/+3
| | | | | | | | | | | | Change-Id: I2150889b5ed04e8739e2367fc9023b750b516398 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | Remove unused importsMatthias Sohn2017-12-202-3/+0
| | | | | | | | | | | | Change-Id: I35370c66e54d93d9b0aa3995e300706956ec0923 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | Replace explicit calls to initCause where possibleDavid Pursehouse2017-12-2011-54/+34
| | | | | | | | | | | | | | | | | | Where the exception being thrown has a constructor that takes a Throwable, use that instead of instantiating the exception and then explicitly calling initCause. Change-Id: I06a0df407ba751a7af8c1c4a46f9e2714f13dbe3 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | Merge changes I50095928,Idadec0ab,I1f2747d6,I6d2a7e28David Pursehouse2017-12-199-52/+64
|\ \ | | | | | | | | | | | | | | | | | | | | | * changes: LargeObjectException: Add constructor that takes Throwable InvalidPatternException: Add constructor that takes Throwable Don't unnecessarily explicitly call CorruptObjectException#initCause Use new StoredObjectRepresentationNotAvailableException constructor
| * | LargeObjectException: Add constructor that takes ThrowableDavid Pursehouse2017-12-192-3/+12
| | | | | | | | | | | | | | | Change-Id: I500959286075f8ba4d0aa5820febd28c9c94ea1b Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
| * | InvalidPatternException: Add constructor that takes ThrowableDavid Pursehouse2017-12-192-4/+19
| | | | | | | | | | | | | | | Change-Id: Idadec0abc1c6d76f19f51a65a4b45df444c20486 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
| * | Don't unnecessarily explicitly call CorruptObjectException#initCauseDavid Pursehouse2017-12-194-24/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | CorruptObjectException has a constructor that takes Throwable and calls initCause with it. Use that instead of instantiating the exception and explicitly calling initCause. Change-Id: I1f2747d6c4cc5249e93401b9787eb4ceb50cb995 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>