]> source.dussan.org Git - jgit.git/log
jgit.git
6 years agoPatch: Open TemporaryBuffer in try-with-resource 30/118230/3
David Pursehouse [Tue, 27 Feb 2018 05:12:10 +0000 (14:12 +0900)]
Patch: Open TemporaryBuffer in try-with-resource

Change-Id: I90bff8d49ecc37b8c10ce909cd3ac563205b641c
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoEnable warning for resources not managed by try-with-resource 29/118229/3
David Pursehouse [Tue, 27 Feb 2018 05:10:41 +0000 (14:10 +0900)]
Enable warning for resources not managed by try-with-resource

Change-Id: Iefe97de6bdb62af558f1b0e77c9205a9186f9b4c
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoLFS: Enable LFS support for the CLI, better error handling 64/112864/34
Markus Duft [Tue, 5 Dec 2017 10:16:30 +0000 (11:16 +0100)]
LFS: Enable LFS support for the CLI, better error handling

Enable LFS support for the CLI by registering the according filters.

Errors during filter creation must be propagated up the call stack, as a
failure to create a filter should be treated as fatal if the filter is
required.

Change-Id: I3833757839bdda97cd01b6c21c1613d199e2692d
Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com>
6 years agoCleanup stream usage WRT filters 02/118502/3
Markus Duft [Fri, 2 Mar 2018 09:13:05 +0000 (10:13 +0100)]
Cleanup stream usage WRT filters

As it is right now some streams leak out of the filter construct. This
change clarifies responsibilities and fixes stream leaks

Change-Id: Ib9717d43a701a06a502434d64214d13a392de5ab
Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoLFS: support merge/rebase/cherry-pick/diff/compare with LFS files 76/111376/43
Markus Duft [Fri, 2 Mar 2018 09:11:42 +0000 (10:11 +0100)]
LFS: support merge/rebase/cherry-pick/diff/compare with LFS files

Respect merge=lfs and diff=lfs attributes where required to replace (in
memory) the content of LFS pointers with the actual blob content from
the LFS storage (and vice versa when staging/merging).

Does not implement general support for merge/diff attributes for any
other use case apart from LFS.

Change-Id: Ibad8875de1e0bee8fe3a1dffb1add93111534cae
Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoMerge "LFS: Dramatically improve checkout speed with SSH authentication"
Matthias Sohn [Thu, 1 Mar 2018 14:16:55 +0000 (09:16 -0500)]
Merge "LFS: Dramatically improve checkout speed with SSH authentication"

6 years agoLFS: Dramatically improve checkout speed with SSH authentication 63/112863/30
Markus Duft [Tue, 5 Dec 2017 09:46:43 +0000 (10:46 +0100)]
LFS: Dramatically improve checkout speed with SSH authentication

SSH Authentication is quite expensive (~120ms on localhost against
Gerrit with LFS plugin). The SSH authentication typically also sends a
validity time of the returned token, which allows to re-use it for a
certain time, avoiding the expensive authentication on every download
request. This improves checkout times by large factors depending on the
LFS object amount/sizes.

Also make sure that all instances of Gson used by LFS are configured in
the same way.

Change-Id: I422c94c37021b4322789b3829fa0185e25d683f2
Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com>
6 years agoCorrectly exit fetch negotiation for stateless RPC connections 89/118389/3
Terry Parker [Wed, 28 Feb 2018 23:10:23 +0000 (15:10 -0800)]
Correctly exit fetch negotiation for stateless RPC connections

Commit 9530c10192cf033c021802a3b295b06864654464 (2018-02-11)
"Add a minimum negotiation feature for fetch" made fetch
negotiation cheaper for repos with huge numbers of
references (we are seeing a 15x reduction in maximum fetch
times for chromium/chromium/src on trans-Pacific links).
But it inadvertently broke the handling of stateless RPC
connections, so fix that here.

Change-Id: I0090aa76ffecc55801ebb833ac2e0c933a4a7c54
Signed-off-by: Terry Parker <tparker@google.com>
6 years agoLFS: pre-push upload support 64/111364/31
Markus Duft [Fri, 10 Nov 2017 10:10:28 +0000 (11:10 +0100)]
LFS: pre-push upload support

If JGit built in LFS support is enabled for the current repository (or
user/system), any existing pre-push hook will cause an exception for the
time beeing, as only a single pre-push hook is supported.

Thus either native pre-push hooks OR JGit built-in LFS support may be
enabled currently, but not both.

Change-Id: Ie7d2b90e26e948d9cca3d05a7a19489488c75895
Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoAmazonS3: Open OutputStream in try-with-resource 44/118144/1
David Pursehouse [Mon, 26 Feb 2018 11:38:12 +0000 (20:38 +0900)]
AmazonS3: Open OutputStream in try-with-resource

Change-Id: I0685a298a0f9fec465973cc718ae3bff373318a4
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoMergeGitAttributeTest: Open FileInputStream in try-with-resource 43/118143/1
David Pursehouse [Mon, 26 Feb 2018 08:48:42 +0000 (17:48 +0900)]
MergeGitAttributeTest: Open FileInputStream in try-with-resource

Change-Id: Iec85eea044c46a199b5b6f6bdbb3191d817dd441
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoPullCommandWithRebaseTest: Open File{Input|Output}Stream in try-with-resource 26/118126/2
David Pursehouse [Mon, 26 Feb 2018 08:42:38 +0000 (17:42 +0900)]
PullCommandWithRebaseTest: Open File{Input|Output}Stream in try-with-resource

Change-Id: I1ff707ab7bab676603907f4c0bb1bc495503055b
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoRecursiveMergerTest: Open FileOutputStream in try-with-resource 24/118124/1
David Pursehouse [Mon, 26 Feb 2018 08:39:57 +0000 (17:39 +0900)]
RecursiveMergerTest: Open FileOutputStream in try-with-resource

Change-Id: I158333d6393fb807bc21fba23fec7ad474384471
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoPullCommandTest: Use try-with-resources for File{Input,Output}Stream 21/118121/1
David Pursehouse [Sun, 25 Feb 2018 23:58:48 +0000 (08:58 +0900)]
PullCommandTest: Use try-with-resources for File{Input,Output}Stream

Change-Id: I09242eb289655c7554aefa9e0817d9b881db656b
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoAdd ObjectIdSerializer 31/117831/3
David Pursehouse [Wed, 21 Feb 2018 03:40:47 +0000 (12:40 +0900)]
Add ObjectIdSerializer

This is based on the ObjectIdSerialization class written by Shawn Pearce
for the Gerrit Code Review project in 2009 [1]. As mentioned in the
commit message there, it should be part of core JGit.

This implementation is slightly different to Shawn's version. Rather
than having separate methods for null/non-null ids, single methods are
implemented with @Nullable annotations.

[1] https://gerrit-review.googlesource.com/c/gerrit/+/9792

Change-Id: I7599cf8bd1ecd546e2252783d6d672eb76804060
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoCheckoutCommandTest: Fix name of created temp file 05/118105/1
David Pursehouse [Sun, 25 Feb 2018 08:47:31 +0000 (17:47 +0900)]
CheckoutCommandTest: Fix name of created temp file

Change-Id: I29048f83aee3848679bbc6ded09dd3dd4a2ea35b
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoIgnoreNodeTest: Suppress deprecation warnings in testEmptyIgnoreNode 04/118104/1
David Pursehouse [Sun, 25 Feb 2018 08:36:27 +0000 (17:36 +0900)]
IgnoreNodeTest: Suppress deprecation warnings in testEmptyIgnoreNode

Change-Id: I930c9408cc702af911419f2a7b3d03f652a2d4e3
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoFix warnings about boxing/unboxing Boolean 03/118103/1
David Pursehouse [Sun, 25 Feb 2018 08:35:00 +0000 (17:35 +0900)]
Fix warnings about boxing/unboxing Boolean

Change-Id: I9d81d510282e9181267750fe3f9c571c35b61407
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoWorkingTreeIterator: Fix warnings about variable hiding 02/118102/1
David Pursehouse [Sun, 25 Feb 2018 08:32:21 +0000 (17:32 +0900)]
WorkingTreeIterator: Fix warnings about variable hiding

Change-Id: I78ed3ae7aa30a7e7f146d0bd2e9feff74554da78
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoWorkingTreeIterator: Add NON-NLS suppressions 01/118101/1
David Pursehouse [Sun, 25 Feb 2018 08:30:03 +0000 (17:30 +0900)]
WorkingTreeIterator: Add NON-NLS suppressions

Change-Id: I369b8f68912134fc3880c162e9a2c5a1669bb4ac
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoMerge "Fix processing of gitignore negations"
Matthias Sohn [Sat, 24 Feb 2018 00:42:03 +0000 (19:42 -0500)]
Merge "Fix processing of gitignore negations"

6 years agoFix processing of gitignore negations 86/117186/10
Marc Strapetz [Fri, 23 Feb 2018 12:34:23 +0000 (13:34 +0100)]
Fix processing of gitignore negations

Processing of negated rules, like !bin/ was not working correctly: they
were interpreted too broad, resulting in unexpected untracked files
which should actually be ignored

Bug: 409664
Change-Id: I0a422fd6607941461bf2175c9105a0311612efa0
Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
6 years agoUpdate tycho to 1.1.0 03/118003/1
Michael Keppler [Fri, 23 Feb 2018 08:14:05 +0000 (09:14 +0100)]
Update tycho to 1.1.0

The upgrade was already done 3 weeks ago, this version number was
missing, however.

Change-Id: Ibc794ba8035c46ea2160925b344ded5714b7c987
Signed-off-by: Michael Keppler <Michael.Keppler@gmx.de>
6 years agoConfigure Semaphore used in TestRequestLog to be fair 09/117909/2
Matthias Sohn [Wed, 21 Feb 2018 21:50:04 +0000 (22:50 +0100)]
Configure Semaphore used in TestRequestLog to be fair

Bug: 528187
Change-Id: I26c94ad7f802fc1dbe72d63a7ea346dc6e19ff94
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoFix indentation in TestRequestLog 89/117989/1
Matthias Sohn [Thu, 22 Feb 2018 22:10:14 +0000 (23:10 +0100)]
Fix indentation in TestRequestLog

We use tabs to indent.

Change-Id: I19b00e06becfb92fbabb99b5699385506fd85214
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoDfsReaderIoStats: Clarify that "blocks" are really cache misses 64/115264/2
Dave Borowitz [Thu, 11 Jan 2018 18:14:02 +0000 (13:14 -0500)]
DfsReaderIoStats: Clarify that "blocks" are really cache misses

The previous wording was ambiguous as to whether these were blocks
requested from the cache (hits + misses) or read from underlying storage
(misses only).

They are in fact recording only misses:
Accumulator#{readBlock,readBlockBytes,readBlockMicros} are only
incremented from BlockBasedFile#readOneBlock, which is only called from
the cache miss path in DfsBlockCache#getOrLoad (line 391).

Change-Id: I0135cd1e76d09c1e28e0f1833b34c312511c66ce

6 years agoPathMatcher: fix handling of **/ 77/117477/12
Marc Strapetz [Sat, 17 Feb 2018 12:20:57 +0000 (13:20 +0100)]
PathMatcher: fix handling of **/

**/ should match only directories, but not files

Change-Id: I885c83e5912cac5bff338ba657faf6bb9ec94064
Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
6 years agoMerge changes Id616611e,Ib6509e81,I52f5d3f2
David Pursehouse [Thu, 22 Feb 2018 05:37:48 +0000 (00:37 -0500)]
Merge changes Id616611e,Ib6509e81,I52f5d3f2

* changes:
  RepoCommand: generate relative submodule URLs from absolute URLs.
  RepoCommand: don't record new commit if tree did not change
  RepoCommand: persist unreadable submodules in .gitmodules

6 years agoCGitIgnoreTest: also test untracked files 83/117583/3
Marc Strapetz [Sat, 17 Feb 2018 12:20:46 +0000 (13:20 +0100)]
CGitIgnoreTest: also test untracked files

Change-Id: I21a4ebd63eaaa85aa2e68f99ef58c141189bdab4
Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
6 years agodfs: Try to avoid searching UNREACHABLE_GARBAGE during packing 70/102770/5
Shawn Pearce [Wed, 9 Aug 2017 12:22:14 +0000 (05:22 -0700)]
dfs: Try to avoid searching UNREACHABLE_GARBAGE during packing

If an object can be found in a non-garbage pack, favor that pack over
paging in the garbage pack's idx and pack content.

Only fall back to garbage packs if an object cannot be found and there
are garbage packs present in the repository.  This fallback is
required to correct race conditions during GC.

Change-Id: Ia7c123975bc069b8e6e713eda2d357303b71e329

6 years agoRepoCommand: generate relative submodule URLs from absolute URLs. 88/117688/3
Han-Wen Nienhuys [Mon, 19 Feb 2018 18:59:35 +0000 (19:59 +0100)]
RepoCommand: generate relative submodule URLs from absolute URLs.

If a manifest file specifies an absolute URL on the same host on which
the superproject resides, rewrite the URLs to be relative.

Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Change-Id: Id616611e5195998fb665c8e7806539a3a02e219a

6 years agoRepoCommand: don't record new commit if tree did not change 87/117387/4
Han-Wen Nienhuys [Wed, 14 Feb 2018 19:34:03 +0000 (20:34 +0100)]
RepoCommand: don't record new commit if tree did not change

Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Change-Id: Ib6509e816684256d723558d5e8f3c37de58a2ff8

6 years agoRepoCommand: persist unreadable submodules in .gitmodules 86/117386/5
Han-Wen Nienhuys [Wed, 14 Feb 2018 17:23:03 +0000 (18:23 +0100)]
RepoCommand: persist unreadable submodules in .gitmodules

In cases where a manifest file mixes different remotes, a Gerrit
server process may not have access to all remotes, and won't be able
to produce a full submodule tree.

Preserving this information in .gitmodules will let downstream clients
reconstruct the full tree.

Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Change-Id: I52f5d3f288e771dca0af2b4dd3f3fa0f940dcf15

6 years agoDeclare LFS dependency on GSON for Bazel build 37/117637/2
Han-Wen Nienhuys [Mon, 19 Feb 2018 09:42:14 +0000 (10:42 +0100)]
Declare LFS dependency on GSON for Bazel build

Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Change-Id: Ia017dd5651756c3b80f18b908fb28ba56b6cbf14

6 years agoSilence API error for new constant in ConfigConstants 25/117625/1
Matthias Sohn [Sun, 18 Feb 2018 21:23:00 +0000 (22:23 +0100)]
Silence API error for new constant in ConfigConstants

Change-Id: Ic4bd10b67caf6b2a2cc0c23bb4e7c717e4ccd6d5
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoSilence API errors raised for new public fields in PackStatistics 24/117624/1
Matthias Sohn [Sun, 18 Feb 2018 21:08:39 +0000 (22:08 +0100)]
Silence API errors raised for new public fields in PackStatistics

Change-Id: I8e118282a833361b676aa3cc90cbe774ccd42ed0
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoLFS: Add remote download to SmudgeFilter 06/83506/38
Markus Duft [Fri, 7 Oct 2016 10:39:45 +0000 (12:39 +0200)]
LFS: Add remote download to SmudgeFilter

Transfer data in chunks of 8k Transferring data byte per byte is slow,
running checkout with CleanFilter on a 2.9MB file takes 20 seconds.
Using a buffer of 8k shrinks this time to 70ms.

Also register the filter commands in a way that the native GIT LFS can
be used alongside with JGit.

Implements auto-discovery of LFS server URL when cloning from a Gerrit
LFS server.

Change-Id: I452a5aa177dcb346d92af08b27c2e35200f246fd
Also-by: Christian Halstrick <christian.halstrick@sap.com>
Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com>
6 years agoRepoCommand: Don't leave Git open 17/117317/7
David Pursehouse [Wed, 14 Feb 2018 01:30:12 +0000 (10:30 +0900)]
RepoCommand: Don't leave Git open

When the command is run on a non-bare repository, an instance of
Git is created to execute the commit, and is left open when the
command has finished.

Refactor to not use a class scope Git instance, and make sure it
gets closed before returning.

Change-Id: Ic623ae0fd8b9e264b5dfd434da0de6bb4f910984
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoMerge "Merge branch 'stable-4.10'"
Matthias Sohn [Wed, 14 Feb 2018 23:18:43 +0000 (18:18 -0500)]
Merge "Merge branch 'stable-4.10'"

6 years agoMerge "InitCommand: Don't leave Repository open after Git is closed"
David Pursehouse [Wed, 14 Feb 2018 23:18:35 +0000 (18:18 -0500)]
Merge "InitCommand: Don't leave Repository open after Git is closed"

6 years agoMerge branch 'stable-4.10' 03/117403/1
Matthias Sohn [Wed, 14 Feb 2018 22:28:17 +0000 (23:28 +0100)]
Merge branch 'stable-4.10'

* stable-4.10:
  Fix ssh host name handling for Jsch
  Jsch overrides the port in the URI with the one in ~/.ssh/config

Change-Id: I860fc61ceb12ae792b1ee7421046ecd32373b9f8
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoMerge branch 'stable-4.9' into stable-4.10 96/117396/1
Matthias Sohn [Wed, 14 Feb 2018 20:24:54 +0000 (21:24 +0100)]
Merge branch 'stable-4.9' into stable-4.10

* stable-4.9:
  Fix ssh host name handling for Jsch
  Jsch overrides the port in the URI with the one in ~/.ssh/config

Change-Id: Iff9076f65e767bbe8df016337b631bdaeb40ad98
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoMerge "TransportLocal should reuse FS from source repo"
Matthias Sohn [Wed, 14 Feb 2018 20:02:22 +0000 (15:02 -0500)]
Merge "TransportLocal should reuse FS from source repo"

6 years agoFix ssh host name handling for Jsch 48/117348/1
Thomas Wolf [Wed, 14 Feb 2018 12:39:28 +0000 (13:39 +0100)]
Fix ssh host name handling for Jsch

If we give Jsch access to the ssh config file, we must _not_ resolve
the host name from the alias. Instead we must give the alias (i.e.,
the host name as is in the URI) to Jsch, so that it finds the same
ssh config entry.

Otherwise if the hostname in the URI, which is taken as an alias in
ssh config ("Host" line), is unequal to the "Hostname" line, and
there happens to be another ssh config entry with that translated
host name as alias, Jsch will pick up that second entry, and we end
up with a strange mixture of both.

Add tests for this case.

Bug: 531118
Change-Id: I249d8c073b0190ed110a69dca5b9be2a749822c3
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
6 years agoJsch overrides the port in the URI with the one in ~/.ssh/config 47/117347/1
Thomas Wolf [Wed, 14 Feb 2018 12:05:17 +0000 (13:05 +0100)]
Jsch overrides the port in the URI with the one in ~/.ssh/config

Jsch unconditionally overwrites the port from the ssh config
file (if a port is specified there), even if the URI explicitly does
give a different port.

Fix this, and add tests.

Change-Id: I7b014543c7ece26270e366db39d7647f82d64f0d
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
6 years agoInitCommand: Don't leave Repository open after Git is closed 16/117316/3
David Pursehouse [Wed, 14 Feb 2018 01:13:46 +0000 (10:13 +0900)]
InitCommand: Don't leave Repository open after Git is closed

The InitCommand returns a Git that is instantiated with the newly
created Repository, but the Repository is not closed with the Git
resulting in resource leaks.

Create the Git with `closeRepo` set to true, such that the Repository
is also closed when the Git is closed.

Adjust the tests to use try-with-resource on the Git instance.

Change-Id: Ib26e7428c7d8840956d1edb09e53b93e23e6fe5a
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoURIish: add a test for equals and hashcode methods 15/114715/3
Matthias Sohn [Sat, 23 Dec 2017 21:09:43 +0000 (22:09 +0100)]
URIish: add a test for equals and hashcode methods

Change-Id: I5727ac1757dca0d63631401bcb074ee8f58ce082
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoAdd a minimum negotiation feature for fetch 29/117129/4
Terry Parker [Sun, 11 Feb 2018 22:37:22 +0000 (14:37 -0800)]
Add a minimum negotiation feature for fetch

Android an Chrome have several repos with >300k refs. We sometimes see
negotiations of >100k rounds. This change provides a "minimal negotiation"
feature on the client side that limits how many "have" lines the client
sends. The client extracts the current SHA-1 values for the refs in its
wants set, and terminates negotiation early when all of those values have
been sent as haves. If a new branch is being fetched then that set will
be empty and the client will terminate after current default minimum
of two rounds.

This feature is gated behind a "fetch.useminimalnegotiation" configuration
flag, which defaults to false.

Change-Id: Ib12b095cac76a59da6e8f72773c4129e3b32ff2b
Signed-off-by: Terry Parker <tparker@google.com>
6 years agoAdd negotiation statistics to PackStatistics 28/117128/3
Terry Parker [Sun, 11 Feb 2018 21:29:38 +0000 (13:29 -0800)]
Add negotiation statistics to PackStatistics

Add fetch statistics for the counts of advertised refs, wants and haves.
Also add the duration in milliseconds for the negotiation phase. For
non-bidirectional transports like HTTP, this is the time for the final
round that sends the pack back to the user.

Change-Id: I1af7ffd3cb7b62182340682e2a243691ea24ec2e
Signed-off-by: Terry Parker <tparker@google.com>
6 years agoMergedReftable to skip shadowed refs in same reftable 74/117074/1
Minh Thai [Fri, 9 Feb 2018 17:49:24 +0000 (09:49 -0800)]
MergedReftable to skip shadowed refs in same reftable

This would allow compact and GC process to clean up duplicate ref names in the reftables.

Change-Id: I2b9df0bf72dba63cc3525e374982e60559a776c2
Signed-off-by: Minh Thai <mthai@google.com>
6 years agoFix CleanCommand not to throw FileNotFoundExceptions 01/116801/2
Christian Halstrick [Tue, 6 Feb 2018 14:32:14 +0000 (15:32 +0100)]
Fix CleanCommand not to throw FileNotFoundExceptions

When CleanCommand is collecting the files and folders to be deleted
it may happen that the list of directories contains obsolete entries.
E.g. a folder and its parent folder may be in the list. Only the
parent folder would be sufficient.

This was a reason for hitting FileNotFoundExceptions when finally
trying to delete the files and folders. Improve CleanCommand
to ignore files to be deleted which are already gone.

Bug: 514434
Change-Id: I10caa01bfb9cec5967dfdaea50c6e4a713eeeabd
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoGC: Remove empty references folders 88/116788/5
Hector Caballero [Mon, 5 Feb 2018 13:58:46 +0000 (08:58 -0500)]
GC: Remove empty references folders

After packaging references, the folders containing these references are
not deleted. In a busy repository, this causes operations to slow down
as traversing the references tree becomes longer.

Delete empty reference folders after the loose references have been
packed.
To avoid deleting a folder that was just created by another concurrent
operation, only delete folders that were not modified in the last 30
seconds.

Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
Change-Id: Ie79447d6121271cf5e25171be377ea396c7028e0

6 years agoBazel: Support building with Java 9 68/113368/6
David Ostrovsky [Wed, 13 Dec 2017 22:41:45 +0000 (23:41 +0100)]
Bazel: Support building with Java 9

Bazel@HEAD supports Java 9.

The current code has one single issue with Java 9 compliance: the usage
of javax.xml.bind.DatatypeConverter class for printHexBinary() method.
This class is not available on Java 9. One alternative is to use guava
library. Something similar was done here: [1]. But unlike the case with
checkstyle library, JGit currently doesn't use guava. Instead, we add
java.xml.bind module with --add-modules compiler option.

To build (or test) with Java 9, build custom bazel version and issue:

  $ bazel --host_javabase=/usr/lib64/jvm/java-9-openjdk build \
    --javacopt='--release 9' \
    --java_toolchain=@bazel_tools//tools/jdk:toolchain_jdk9 :all

The Java 9 support is backwards compatible.

* [1] https://github.com/checkstyle/checkstyle/issues/5027

Change-Id: I2c5203fc4e65885ce7b210f824fda85ba6d6c51d
Signed-off-by: David Ostrovsky <david@ostrovsky.org>
6 years agoGC: Merge if statement with the enclosing one 87/116787/1
Hector Caballero [Tue, 6 Feb 2018 11:20:19 +0000 (06:20 -0500)]
GC: Merge if statement with the enclosing one

Reported by Sonar.

Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
Change-Id: Ib6fe6c67d6f7697e6d60693d5cee7e9c6a227767

6 years agoGC: Replace Files methods with File alternatives 86/116786/1
Hector Caballero [Sun, 4 Feb 2018 19:49:41 +0000 (14:49 -0500)]
GC: Replace Files methods with File alternatives

The Files.exists method has noticeably poor performance in JDK 8 and can
slow an application significantly when used to check files that do not
actually exist. The same goes for Files.notExists, Files.isDirectory and
Files.isRegularFile [1].

Replace them with their File counterpart.

[1] https://rules.sonarsource.com/java/tag/performance/RSPEC-3725

Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
Change-Id: I89d23b9cc74bec8e05f6b7f3e49bfd967dbb6373

6 years agoGC: Replace anonymous classes with lambdas 85/116785/1
Hector Caballero [Tue, 30 Jan 2018 01:57:50 +0000 (20:57 -0500)]
GC: Replace anonymous classes with lambdas

Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
Change-Id: Ic9725bdb1a281c80055a5438a02d961b1d1875f4

6 years agoGC: Simplify lambda 84/116784/1
Hector Caballero [Tue, 30 Jan 2018 01:24:23 +0000 (20:24 -0500)]
GC: Simplify lambda

filter() stream operation also accepts a lambda expression.

Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
Change-Id: Ie0b7fe43d39593172969fd16c3e44b49bac27306

6 years agoGC: Simplify reference equals() method 83/116783/1
Hector Caballero [Tue, 30 Jan 2018 01:51:14 +0000 (20:51 -0500)]
GC: Simplify reference equals() method

Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
Change-Id: I5b2e12e012d5423e9b84c1c66a478960121ea212

6 years agoGC: Simplify boolean expression 82/116782/1
Hector Caballero [Tue, 30 Jan 2018 02:08:52 +0000 (21:08 -0500)]
GC: Simplify boolean expression

Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
Change-Id: I0e7a365c26b2333627fcc26b9ea9f4fcd65e8746

6 years agoGC: Simplify expression 81/116781/1
Hector Caballero [Tue, 30 Jan 2018 01:31:47 +0000 (20:31 -0500)]
GC: Simplify expression

Avoid converting path to file to then reconvert it to path.

Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
Change-Id: I6a8c3ca9b83bf9b0eead9506938f5d68b27a76f5

6 years agoGC: Remove redundant type arguments 80/116780/1
Hector Caballero [Tue, 30 Jan 2018 02:25:06 +0000 (21:25 -0500)]
GC: Remove redundant type arguments

Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
Change-Id: Id3281a744b08f9d7b2b60f69b4e461b053ac5d02

6 years agoGC: Remove unnecessary continue statement 79/116779/1
Hector Caballero [Tue, 30 Jan 2018 01:39:16 +0000 (20:39 -0500)]
GC: Remove unnecessary continue statement

continue is unnecessary when it is the last statement in a loop

Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
Change-Id: I12af9f9a0bb2fd7fc0239f1f3b59fb8e64e1f351

6 years agoClose RevWalk in BranchTrackingStatus.of() 54/116754/1
Matthias Sohn [Tue, 6 Feb 2018 00:10:26 +0000 (01:10 +0100)]
Close RevWalk in BranchTrackingStatus.of()

Bug: 530757
Change-Id: I985ee5395e1468981c28ae0a80797732e2f528d2
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoUpdate tycho to 1.1.0 87/116687/1
Matthias Sohn [Sun, 4 Feb 2018 22:10:09 +0000 (23:10 +0100)]
Update tycho to 1.1.0

Change-Id: I8a72c59c1453a9252e56d68c8a162341c690622f
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoBasic submodule merge handling 72/110172/8
David Turner [Thu, 12 Oct 2017 22:43:15 +0000 (18:43 -0400)]
Basic submodule merge handling

This doesn't handle the really hard thing, which is merging spurious
conflicts inside .gitmodules files.  That's OK: git.git doesn't
either.  Users can resolve the conflict themselves and then commit
the merge.

Previously, jgit would crash when attempting to merge conflicting
submodule changes.  Even if there was no conflict, after a merge which
adds submodules, the repository would have been missing empty
directories for newly-added submodules.

This patch fixes the crash, and adds the empty directories where
necessary. It ensures that the index is in a conflicted state when
submodule changes conflict.

Reported-by: Alexey Korobkov
Bug: 494551
Change-Id: I79db6798c2bdcc1159b5b2589b02da198dc906a1
Signed-off-by: David Turner <dturner@twosigma.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoAdd class to access WindowCache statistics 01/116501/3
David Pursehouse [Thu, 1 Feb 2018 05:01:11 +0000 (14:01 +0900)]
Add class to access WindowCache statistics

Change-Id: Iacb5b65539efd92a6b45afc307ebf246e8b8fccf
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoUse a TemporaryBuffer to do a content merge 84/116584/1
Thomas Wolf [Fri, 2 Feb 2018 09:42:54 +0000 (10:42 +0100)]
Use a TemporaryBuffer to do a content merge

This avoids having to re-read the merged file (twice even!) to
update the index.

Change-Id: Id13e0fd38906ed6f859604f86ca352761dca9ffe
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
6 years agoFix index blob for merges with CRLF translations 74/116574/1
Thomas Wolf [Fri, 2 Feb 2018 07:16:13 +0000 (08:16 +0100)]
Fix index blob for merges with CRLF translations

Commit fc7d407 corrected line endings for working tree files resulting
from merges when CRLF translations are to be done. However, that also
resulted in the file content being put as-is into the index, which is
wrong. The index must contain the file content with reverse CRLF
translations applied.

With core.autocrlf=true, the working tree file should have CR-LF, but
the index blob must still contain only LF.

Fix this oversight and apply the inverse translation when updating the
index, similar to what is done in AddCommand.

Bug: 499615
Change-Id: I3a33931318bdb580b2390f3450f91ea8f258a6a4
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
6 years agoFix version of slf4j in manifest files 23/115923/3
David Pursehouse [Wed, 24 Jan 2018 01:15:56 +0000 (10:15 +0900)]
Fix version of slf4j in manifest files

Consistently require 1.7.0. We ship 1.7.2 with our p2 repository but
there is no need to require 1.7.2 since it should be API compatible with
1.7.0.

Change-Id: I8467bb14316cb24daa79e89275332107d2716190
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoUpdate gson version in org.eclipse.jgit.lfs.server manifest 22/115922/3
David Pursehouse [Wed, 24 Jan 2018 01:09:32 +0000 (10:09 +0900)]
Update gson version in org.eclipse.jgit.lfs.server manifest

Commit f3bb0e2 upgraded gson to 2.8.2 but did not update the LFS
server manifest file to require 2.8. Also accept 2.8.0 which should be
API compatible with 2.8.2 which is the version we ship with the p2
repository.

Change-Id: I734496c4826739f9bc6a790b9d2c70e549c0e559
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoHonor CRLF settings when writing merge results 63/116563/4
Thomas Wolf [Thu, 1 Feb 2018 20:58:23 +0000 (21:58 +0100)]
Honor CRLF settings when writing merge results

Merges are performed using the raw text as stored in the git
repository. When we write the merge result, we must apply the
correct CRLF settings. Otherwise the line endings in the result
will be wrong.

Bug: 499615
Change-Id: I37a9b987e9404c97645d2720cd1c7c04c076a96b
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoMerge branch 'stable-4.10' 15/116515/1
David Pursehouse [Thu, 1 Feb 2018 09:09:08 +0000 (18:09 +0900)]
Merge branch 'stable-4.10'

* stable-4.10:
  Minor fixes in three error messages

Change-Id: I159d397e4d78b3f5d7f0a0dbff7fe76470148c6a
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoMerge branch 'stable-4.9' into stable-4.10 09/116509/2
David Pursehouse [Thu, 1 Feb 2018 08:36:10 +0000 (17:36 +0900)]
Merge branch 'stable-4.9' into stable-4.10

* stable-4.9:
  Minor fixes in three error messages

Change-Id: Ibd6bcecb40a6d97c46c66360020dca7453876298
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoMinor fixes in three error messages 95/116395/1
Thomas Wolf [Tue, 30 Jan 2018 06:33:56 +0000 (07:33 +0100)]
Minor fixes in three error messages

* Fix "can not" -> "cannot" in two messages
* Re-word "Cannot mkdir" to "Cannot create directory"

Change-Id: Ide0cec55eeeebd23bccc136257c80f47638ba858
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
6 years agoMinor fixes in three error messages 84/116284/1
Thomas Wolf [Tue, 30 Jan 2018 06:33:56 +0000 (07:33 +0100)]
Minor fixes in three error messages

* Fix "can not" -> "cannot" in two messages
* Re-word "Cannot mkdir" to "Cannot create directory"

Change-Id: Ide0cec55eeeebd23bccc136257c80f47638ba858
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
6 years agoMinor improvements in git config file inclusions 80/116180/3
Thomas Wolf [Sat, 27 Jan 2018 15:06:15 +0000 (16:06 +0100)]
Minor improvements in git config file inclusions

* 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>
6 years agoProgress reporting for checkout 55/112855/10
Markus Duft [Tue, 5 Dec 2017 08:30:48 +0000 (09:30 +0100)]
Progress reporting for checkout

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>
6 years agoEnforce DFS blockLimit is a multiple of blockSize 07/115807/2
Dave Borowitz [Mon, 22 Jan 2018 13:54:38 +0000 (08:54 -0500)]
Enforce DFS blockLimit is a multiple of blockSize

Change-Id: I2821124ff88d7d1812a846ed20f3828fc9123b38

6 years agoUpgrade gson to version 2.8.2 73/114573/6
David Pursehouse [Thu, 21 Dec 2017 11:01:00 +0000 (20:01 +0900)]
Upgrade gson to version 2.8.2

CQ: 15286
CQ: 15287 (Orbit)
Change-Id: I43312d5276b64d871f7fa253a43a090f9b163724
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoUpgrade commons-compress to 1.15 60/115360/4
David Pursehouse [Mon, 15 Jan 2018 00:45:38 +0000 (09:45 +0900)]
Upgrade commons-compress to 1.15

Also update xz to 1.6 as this is the version commons-compress 1.15
wants. Since xz 1.6 is an optional dependency for commons-compress we
need to add a non-optional dependency to xz for
org.eclipse.jgit.pgm.test since one of the tests explicitly requires xz.

Related change adding commons-compress to Orbit:
https://git.eclipse.org/r/#/c/115366/

CQ: 15356
CQ: 15360
Change-Id: I0d61c71bc541cc30464a0fff93775b079dd3ba88
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
6 years agoRevert usage of TYPE_USE in Nullable and NonNull annotations 00/115700/1
David Pursehouse [Fri, 19 Jan 2018 13:40:54 +0000 (22:40 +0900)]
Revert usage of TYPE_USE in Nullable and NonNull annotations

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>
6 years agoNullable: Switch to TYPE_USE 81/115581/1
David Pursehouse [Thu, 18 Jan 2018 04:35:44 +0000 (13:35 +0900)]
Nullable: Switch to TYPE_USE

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>
6 years agoNonNull: Switch to TYPE_USE 79/115579/1
David Pursehouse [Thu, 18 Jan 2018 04:20:49 +0000 (13:20 +0900)]
NonNull: Switch to TYPE_USE

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>
6 years agoNonNull: Fix typo in javadoc 78/115578/1
David Pursehouse [Thu, 18 Jan 2018 04:19:52 +0000 (13:19 +0900)]
NonNull: Fix typo in javadoc

Change-Id: Ia8e6559047a12391223645e2768f46666f198f6d
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoRevWalk: Annotate methods documented to return "Never null" as @NonNull 76/115576/1
David Pursehouse [Thu, 18 Jan 2018 01:45:07 +0000 (10:45 +0900)]
RevWalk: Annotate methods documented to return "Never null" as @NonNull

Change-Id: If1a1bed4b04dd48c9573fd3c4eacbf73de40622f
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoSkip broken symbolic ref in DfsReftableDatabase 75/115575/1
Zhen Chen [Wed, 17 Jan 2018 23:14:43 +0000 (15:14 -0800)]
Skip broken symbolic ref in DfsReftableDatabase

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>
6 years agoMake SideBandInputStream public 53/115453/2
Han-Wen Nienhuys [Tue, 16 Jan 2018 16:28:22 +0000 (17:28 +0100)]
Make SideBandInputStream public

This mirrors SideBandOutputStream which is also public

Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Change-Id: Ic0983af663f0c4c85bf5486b195108c45cddc4c2

6 years agoMerge branch 'stable-4.10' 42/115342/3
Matthias Sohn [Fri, 12 Jan 2018 23:54:31 +0000 (00:54 +0100)]
Merge branch 'stable-4.10'

* 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>
6 years agoMerge branch 'stable-4.9' into stable-4.10 41/115341/1
Matthias Sohn [Fri, 12 Jan 2018 23:51:28 +0000 (00:51 +0100)]
Merge branch 'stable-4.9' into stable-4.10

* stable-4.9:
  Revert handling of ssh IdentityFile to pre-4.9 behavior

Change-Id: I7cd2f0fe93be5193d6de2a376a023bdece5d84a9

6 years agoRevert handling of ssh IdentityFile to pre-4.9 behavior 94/115294/1
Thomas Wolf [Fri, 12 Jan 2018 11:51:22 +0000 (12:51 +0100)]
Revert handling of ssh IdentityFile to pre-4.9 behavior

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>
6 years agoPackInserterTest#newLargeBlob: Factor Random instance out to class member 09/115209/1
David Pursehouse [Thu, 11 Jan 2018 05:22:09 +0000 (14:22 +0900)]
PackInserterTest#newLargeBlob: Factor Random instance out to class member

Instead of instantiating a new Random on each invocation of newLargeBlob,
create it once and reuse it.

This fixes a warning raised by Spotbugs about the Random object being
created and only used once.

Change-Id: I5b8e6ccbbc92641811537808aed9eae2034c1133
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoUpgrade error_prone_core to 2.2.0 46/115146/1
David Pursehouse [Wed, 10 Jan 2018 07:18:27 +0000 (16:18 +0900)]
Upgrade error_prone_core to 2.2.0

Change-Id: Icf1e2fba724dec363bdc941e562396255b9d9faf
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoRefDirectory#hasLooseRef: Fix stream resource leak reported by error-prone 45/115145/1
David Pursehouse [Wed, 10 Jan 2018 07:30:28 +0000 (16:30 +0900)]
RefDirectory#hasLooseRef: Fix stream resource leak reported by error-prone

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>
6 years agoUpdate developers list in pom.xml 44/115144/1
David Pursehouse [Wed, 10 Jan 2018 07:15:34 +0000 (16:15 +0900)]
Update developers list in pom.xml

Change-Id: If391947957918a456a8f9eb315c95bb669a413b4
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoUpgrade Spotbugs to 3.1.1 80/115080/2
David Pursehouse [Tue, 9 Jan 2018 02:21:16 +0000 (11:21 +0900)]
Upgrade Spotbugs to 3.1.1

Change-Id: Ie43c74acabd9520dde5d8577f040e6575bd3ebbc
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
6 years agoEnsure DirectoryStream is closed promptly 06/115006/1
Dave Borowitz [Fri, 5 Jan 2018 18:02:47 +0000 (13:02 -0500)]
Ensure DirectoryStream is closed promptly

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

6 years agoAdd com.jcraft.jzlib 1.1.1 07/114907/2
Matthias Sohn [Wed, 3 Jan 2018 00:09:57 +0000 (01:09 +0100)]
Add com.jcraft.jzlib 1.1.1

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>
6 years agoMerge "Fix file handle leak in FetchCommand#fetchSubmodules"
Matthias Sohn [Thu, 4 Jan 2018 11:45:00 +0000 (06:45 -0500)]
Merge "Fix file handle leak in FetchCommand#fetchSubmodules"

6 years agoFix file handle leak in FetchCommand#fetchSubmodules 16/114916/1
Tim Hosey [Thu, 4 Jan 2018 01:58:05 +0000 (02:58 +0100)]
Fix file handle leak in FetchCommand#fetchSubmodules

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>
6 years agoSkip unborn branches in UploadPack 12/114912/2
Zhen Chen [Wed, 3 Jan 2018 22:12:30 +0000 (14:12 -0800)]
Skip unborn branches in UploadPack

The ObjectId of an unborn branch is null, skip those in UploadPack.

Change-Id: I7cbf66b05dff98c4fe9f33e20a647ba6acf364b2
Signed-off-by: Zhen Chen <czhen@google.com>