summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
Commit message (Collapse)AuthorAgeFilesLines
* Replace most usages of PacketLineIn.END with PacketLineIn.end()David Pursehouse2019-06-033-81/+84
| | | | | | | | | | | | | | PacketLineIn.END is only referenced in tests. Replace most of those with a new package visible end() method. Remaining usages of PacketLineIn.END are in the form: while ((line = pckIn.readString()) != PacketLineIn.END) { and are not trivial replacements, hence are not touched in this change. Change-Id: Id77c5321ddcad127130b246bde8f08736e60e1ea Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* PacketLineIn: Deprecate DELIM constantDavid Pursehouse2019-06-032-67/+67
| | | | | | | | | | | | | | Deprecate DELIM with the intention of making it private in a future release. Callers that want to test if a packet line string is the delimiter should use the isDelimiter(String) method. The only other references to DELIM in the JGit code are in tests. For those, introduce a package visible delimiter() method. Change-Id: I21e8bbac0ffb9ef710c9753e23435416b09a4891 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Replace trivial reference comparison of PacketLineIn.{DELIM,END}David Pursehouse2019-06-025-50/+49
| | | | | | | | Replace reference comparisons of PacketLineIn's DELIM and END strings with usage of the helper methods isDelimiter() and isEnd(). Change-Id: I52dcfc4ee9097f1bd6970601c716701847d9eebd Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* PacketLineIn: Rename isDelim to isDelimiterDavid Pursehouse2019-06-021-1/+1
| | | | | Change-Id: I279808b8ddd8a9230a35582c00867b811633dfe8 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* ProtocolV2ParserTest: Fix typo in commentDavid Pursehouse2019-06-021-1/+1
| | | | | Change-Id: I22b07179ba6e2517ae3e178c31fde20987cead34 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* Upgrade Bouncy Castle to 1.61Brandon Weeks2019-06-011-1/+1
| | | | | | | | | | | | Also now use JcaKeyBoxBuilder constructor in BouncyCastleGpgKeyLocator.readKeyBoxFile(Path). CQ: 19868 CQ: 19869 CQ: 19870 Change-Id: I45bd80e158aecd90448b0c7e59615db27aaef892 Signed-off-by: Brandon Weeks <bweeks@google.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* DescribeCommand: Support the "always" optionSebastian Schuberth2019-05-311-7/+24
| | | | | | | | | | | See: https://git-scm.com/docs/git-describe#Documentation/git-describe.txt---always Extend the tests accordingly. Change-Id: Ibfcda338a246c8cba0df6b6e7b9bad76c9f8b593 Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
* Remove excess blank line in FileUtilsTestMatthias Sohn2019-05-311-1/+0
| | | | Change-Id: I0d617feb7baacf9917b1da605fcb75f7d4ccd184 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* PacketLineIn: Add helper methods to check for END and DELIMDavid Pursehouse2019-05-301-6/+7
| | | | | | | | | These methods will allow clients to check for END and DELIM without doing a reference comparison on the String objects, which raises warnings from Error Prone. Change-Id: I9e7e59843553ed4488ee8e864033198bbb60d67c Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* UploadPackTest: Rename variable to avoid hiding class memberDavid Pursehouse2019-05-301-4/+4
| | | | | Change-Id: I9e02642b2f56a735681e58b8c8d6e3545ef9093b Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* UploadPackTest: Add missing <> operator on instantiation of ArrayListDavid Pursehouse2019-05-301-1/+1
| | | | | Change-Id: I348cbcd75252d7857ada843dc496d445ee1d62fb Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* BitmapCalculator and its test: add missing license headerMatthias Sohn2019-05-231-0/+42
| | | | Change-Id: I3c4a8b1e9159b0553aa95213bb82628370b6c036 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Tune max heap size for testsMatthias Sohn2019-05-221-1/+1
| | | | | | | | | | | | | | | | | | | | This is an attempt to fix crashes observed on the new Jenkins infrastructure running on Kubernetes [1]. Increase it to 512m for - org.eclipse.jgit.ant.test - org.eclipse.jgit.http.test - org.eclipse.jgit.lfs.server.test - org.eclipse.jgit.lfs.test - org.eclipse.jgit.pgm.test Decrease it to 768m for - org.eclipse.jgit.test [1] e.g. https://ci-staging.eclipse.org/jgit/job/stable/job/jgit.gerrit/16074/console Change-Id: Id074ed0f7bcb8a13da649a547342af2a08439d9f Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Recognize ReachabilityCheckerTestCase as helperJonathan Tan2019-05-201-0/+1
| | | | | | | | | | 4e196faa1b ("ReachabilityChecker: Default implementation with a RevWalk", 2019-05-15) added ReachabilityCheckerTestCase but did not add it as a test helper in the corresponding BUILD file, making tests no longer runnable with Bazel. Resolve this issue. Change-Id: Iccc00b0d169dbaa137e130ce2ddd1b7669960b52 Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
* Merge changes from topic 'reachability-2'Jonathan Tan2019-05-204-0/+433
|\ | | | | | | | | | | | | | | * changes: UploadPack: Use reachability checker to validate non-advertised wants BitmappedReachabilityChecker: Reachability check using bitmaps BitmapCalculator: Get the reachability bitmap of a commit ReachabilityChecker: Default implementation with a RevWalk
| * BitmappedReachabilityChecker: Reachability check using bitmapsIvan Frade2019-05-151-0/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "basic" reachability check walks the graph starting from the tips marking things as "uninteresting". If the target commit is marked as "uninteresting" it was reached; it is reachable from those tips. This requires a lot of walking and can be solved directly with bitmaps. Most of the time the bitmaps are already calculated or a short walk away. This should improve the performance of reachability checks, for example in Gitiles. Change-Id: I83d33271f58d95d2dc9ed151967b3eda513c99f7 Signed-off-by: Ivan Frade <ifrade@google.com>
| * BitmapCalculator: Get the reachability bitmap of a commitIvan Frade2019-05-151-0/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To make reachability checks with bitmaps, we need to get the reachability bitmap of a commit, which is not always precalculated. There is already a class returning such bitmap (BitmapWalker) but it does too much unnecessary work: it calculates ALL reachable objects from a commit (i.e. including trees and blobs), when for reachability the commits are just enough. Introduce BitmapCalculator to get the bitmap of a commit: either because it is precalculated or generating it with a walk only over commits. Change-Id: Ibb6c78affe9eeaf1fa362a06daf4fd2d91c1caea Signed-off-by: Ivan Frade <ifrade@google.com>
| * ReachabilityChecker: Default implementation with a RevWalkIvan Frade2019-05-152-0/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It is common to check if a certain commit is reachable from some starting points. For example gitiles does it to check if a commit is visible to a user based on its permissions. Offer this functionality in JGit. Split the interface as the next commit will introduce an implementation using bitmap indices. Change-Id: I0933b305c8d734f7a64502910ff4d9ef4fc92ae1 Signed-off-by: Ivan Frade <ifrade@google.com>
* | Convert to lambda or member referenceCarsten Hammer2019-05-1616-384/+211
|/ | | | | | | | | | | Convert anonymous inner classes to lambda expressions or member references Bug: 545856 CQ: 19537 Change-Id: I621431c178e8b99316314602f7c66c9a36f9ae98 Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Apache MINA sshd client: test reading encrypted ed25519 keysThomas Wolf2019-05-063-1/+12
| | | | | | | | | | | | | | | Add encrypted ed25519 keys in the tests; sshd 2.2.0 can finally decrypt encrypted new-style OpenSSH key files. (Needs the "unlimited strength" JCE, which is the default since Java 8u161. On older JREs, users should install the policy files available from Oracle.) The "expensive" key added has been generated with OpenSSH's ssh-keygen -t ed25519 -a 256, i.e., with 256 bcrypt KDF rounds instead of the default 16. On my machine it takes about 2sec to decrypt. Bug: 541703 Change-Id: Id3872ca2fd75d8f009cbc932eeb6357d3d1f267c Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* Apache MINA sshd client: adapt to sshd 2.2.0Thomas Wolf2019-05-062-2/+2
| | | | | | | | | | | | | | Update target platforms, maven and bazel builds to use sshd 2.2.0. Adapt internal classes to changed sshd interfaces and remove previous work-arounds for asking repeatedly for key passwords and for loading keys lazily; both are now done by sshd. CQ: 19034 CQ: 19035 Bug: 541425 Change-Id: I85e1df6ebb8a94953a912d9b2b8a7b5bdfbd608a Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge branch 'stable-5.3'Matthias Sohn2019-04-293-19/+96
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-5.3: Prepare 5.3.2-SNAPSHOT builds JGit v5.3.1.201904271842-r Prepare 5.2.3-SNAPSHOT builds JGit v5.2.2.201904231744-r Revert 4678f4b and provide another solution for bug 467631 Apache MINA sshd: make sendKexInit() work also for re-keying Prepare 5.1.8-SNAPSHOT builds JGit v5.1.7.201904200442-r ObjectUploadListener: Add callback interface Prepare 4.11.9-SNAPSHOT builds JGit v4.11.8.201904181247-r Prepare 4.9.11-SNAPSHOT builds JGit v4.9.10.201904181027-r Prepare 4.7.10-SNAPSHOT builds JGit v4.7.9.201904161809-r Prepare 4.5.8-SNAPSHOT builds JGit v4.5.7.201904151645-r Remember the cause for invalidating a packfile Fix API problem filters Fix pack files scan when filesnapshot isn't modified Change-Id: I8a8671f7767444a77b809bd66a27d776c8332736 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Prepare 5.3.2-SNAPSHOT buildsMatthias Sohn2019-04-282-51/+51
| | | | | | | | | | Change-Id: Iedd56602acc89783387098c7f92ce0e5bad091e0 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * JGit v5.3.1.201904271842-rv5.3.1.201904271842-rMatthias Sohn2019-04-282-2/+2
| | | | | | | | | | Change-Id: If3c323acfd2b6933f7d4fbec480cd4e82224f701 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Merge branch 'stable-5.2' into stable-5.3Matthias Sohn2019-04-283-19/+96
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-5.2: Prepare 5.2.3-SNAPSHOT builds JGit v5.2.2.201904231744-r Revert 4678f4b and provide another solution for bug 467631 Apache MINA sshd: make sendKexInit() work also for re-keying Prepare 5.1.8-SNAPSHOT builds JGit v5.1.7.201904200442-r ObjectUploadListener: Add callback interface Prepare 4.11.9-SNAPSHOT builds JGit v4.11.8.201904181247-r Prepare 4.9.11-SNAPSHOT builds JGit v4.9.10.201904181027-r Prepare 4.7.10-SNAPSHOT builds JGit v4.7.9.201904161809-r Prepare 4.5.8-SNAPSHOT builds JGit v4.5.7.201904151645-r Remember the cause for invalidating a packfile Fix API problem filters Fix pack files scan when filesnapshot isn't modified Change-Id: Ie7e572ac7e346f21fe0c387d7448be168a9c127a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * Prepare 5.2.3-SNAPSHOT buildsMatthias Sohn2019-04-242-51/+51
| | | | | | | | | | | | | | | Change-Id: I6ae3db901d986467128326073d4ba70406ae8385 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * JGit v5.2.2.201904231744-rv5.2.2.201904231744-rMatthias Sohn2019-04-232-2/+2
| | | | | | | | | | | | | | | Change-Id: I4ed2aff28bff702a8c1b42814acb04c7ef9025a7 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * Revert 4678f4b and provide another solution for bug 467631Thomas Wolf2019-04-203-19/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Making gitlinks and folders match in a tree walk was the wrong approach to fix bug 467631. The problem is that in such a conflict the tree walk may then not descend into the folder. Revert the changes to Paths.java and PathsTest.java from commit 4678f4b. Instead test for the problem case from bug 467631 explicitly in IndexDiff. Add Daniel's test case from bug 545162, and add yet another test case for DiffEntry.scan() that covers the problem originally reported in bug 545162. Bug: 545162 Change-Id: Ie2214c5d5ee32ac6596b621f0f1c7b86d38fa9b7 Also-by: Daniel Veihelmann <daniel.veihelmann@gmail.com> Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | tree:<depth>: do not revisit tree during packingMatthew DeVore2019-04-161-0/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a tree is visited during pack and filtered out with tree:<depth>, we may need to include it if it is visited again at a lower depth. Until now we revisit it no matter what the depth is. Now, avoid visiting it if it has been visited at a lower or equal depth. Change-Id: I68cc1d08f1999a8336684a05fe16e7ae51898866 Signed-off-by: Matthew DeVore <matvore@gmail.com>
* | | tree:<depth> should not traverse overly-deep treesMatthew DeVore2019-04-161-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we are traversing a tree which is too deep, then there is no need to traverse the children. Skipping children is much faster than traversing the possibly thousands of objects which are directly or indirectly referenced by the tree. Change-Id: I6d68cc1d35da48e3288b9cc80356a281ab36863d Signed-off-by: Matthew DeVore <matvore@gmail.com>
* | | Preliminary support for tree:<depth> filterMatthew DeVore2019-04-163-0/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is used when fetching, and in particular to populate a partial clone or a virtual file system cache as the user navigates. With this, a client can pre-fetch a few directories deeper than only the current directory. depth:0 will omit all trees, and is useful if you only want to fetch the commits of a repository, or fetch just a single tree or blob object. depth:1 will fetch only the root tree of all commits fetched. depth:2 will fetch the root tree and all blobs and tree objects directly referenced from it. depth:3 gets one more level, and so on. depth:# will not filter a blob or tree that is explicitly marked wanted. Bitmaps are disabled when this filter is used. This implementation is quite slow because it iterates over all omitted objects rather than skipping them. This will be addressed in follow-up commits. Change-Id: Ic312fee22d60e32cfcad59da56980e90ae2cae6a Signed-off-by: Matthew DeVore <matvore@gmail.com>
* | | Use Arrays.asList instead of copying array in a for loopCarsten Hammer2019-04-142-4/+4
| | | | | | | | | | | | | | | Change-Id: Ie44950f7d2f2f94a0412efb6c274f6e1e31efcd6 Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Use isEmpty() instead of size()==0 where possibleCarsten Hammer2019-04-132-6/+5
| | | | | | | | | | | | | | | Change-Id: I97f1367a2ea9f1f6146e264c27c3981b842f2a26 Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Use jdk 5 for loopCarsten Hammer2019-04-136-34/+51
| | | | | | | | | | | | | | | | | | | | | | | | Replace simple uses of Iterator with a corresponding for-loop. Also add missing braces on loops as necessary. Change-Id: I708d82acdf194787e3353699c07244c5ac3de189 Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Join catch sections using multicatchCarsten Hammer2019-04-131-3/+1
| | | | | | | | | | | | | | | Change-Id: I1a9112e6a4f938638c599b489cb0858eca27ab91 Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Use StringBuilder instead of StringBuffer where possible.Carsten Hammer2019-04-111-1/+1
| | | | | | | | | | | | | | | | | | Change-Id: Ifc67c84a3e786cd766f45726733a6d294d2652a1 Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de> Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | | ConfigTest: Add test for parsing invalid group headerDavid Pursehouse2019-04-111-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test that an exception is raised for an invalid group header: [group "foo" ] foo = bar i.e. where there is a space between the group subsection name and the closing ']'. Change-Id: I8933ae100b77634b0afb66bb8aa43d24c955799e Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | | Introduce RefDatabase#getTipsWithSha1 to list refs pointing to objectPatrick Hiesel2019-04-082-1/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add resolveTipSha1, an inverse of exactRef(String ...), to RefDatabase and provide a default implementation that runs in O(n) time where n is the number of refs. For RefTable, provide an implementation that runs in O(log(n)) time. [ifrade@google.com: with tests in InMemoryRepositoryTest to exercise the reftable code path, too] Change-Id: I2811ccd0339cdc1c74b42cce2ea003f07a2ce9e1 Signed-off-by: Patrick Hiesel <hiesel@google.com> Signed-off-by: Ivan Frade <ifrade@google.com>
* | | UploadPackTest: Stop using deprecated Transport.setFilterBlobLimit(long)David Pursehouse2019-04-081-6/+6
| | | | | | | | | | | | | | | | | | | | | Replace usage with the recommended setFilterSpec(FilterSpec). Change-Id: Icc528d175f25234eeb2daa6b4c29a67a7a6d1e0a Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
* | | DfsRefDatabase: Keep update index when peeling a referenceIvan Frade2019-03-291-0/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new references created in the peeling do not receive the update index. In other words, the update index of a reference (if set) is lost in the peeling. Pass-through the update index to the newly created references. Tested via InMemoryRepository, which uses DfsReftableDatabase. Change-Id: I7ff7c737a9c3366fdec296a4d9b2e51d10227957 Signed-off-by: Ivan Frade <ifrade@google.com>
* | | Clarify error message for invalid Windows charactersHan-Wen Nienhuys2019-03-291-3/+15
| | | | | | | | | | | | | | | Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Change-Id: I20c37d70fc78d745f83b9ce702777535b16b8dfe
* | | Put filter spec information in a dedicated objectMatthew DeVore2019-03-222-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | This increases type-safety and is ground work for support of the "tree:<depth>" filter. Change-Id: Id19eacdcdaddb9132064c642f6d554b1060efe9f Signed-off-by: Matthew DeVore <matvore@gmail.com>
* | | Merge branch 'stable-5.3'Matthias Sohn2019-03-211-0/+17
|\| | | | | | | | | | | | | | | | | | | | | | | * stable-5.3: Fix GC to delete empty fanout directories after repacking Change-Id: I080ddb03c6143f0bfa24707a10a4d926676d32b1 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | Merge branch 'stable-5.2' into stable-5.3Matthias Sohn2019-03-211-0/+17
| |\| | | | | | | | | | | | | | | | | | | | | | * stable-5.2: Fix GC to delete empty fanout directories after repacking Change-Id: I29e1da15396daaf0036bcb92cfb567cc243db5a1 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | * Merge branch 'stable-5.1' into stable-5.2Matthias Sohn2019-03-211-0/+17
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-5.1: Fix GC to delete empty fanout directories after repacking Change-Id: I0cf4d26bdee5ecee43e723c4176efbce777acabc Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | * Merge branch 'stable-5.0' into stable-5.1Matthias Sohn2019-03-211-0/+17
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-5.0: Fix GC to delete empty fanout directories after repacking Change-Id: I5c0e7d59f137c27e4588f20f4472d3ea450cd59c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | | * Merge branch 'stable-4.11' into stable-5.0Matthias Sohn2019-03-211-0/+17
| | | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.11: Fix GC to delete empty fanout directories after repacking Change-Id: Idce894a24e126e0fbe7bc9b6a3c64318f1a8eb75 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | | | * Merge branch 'stable-4.10' into stable-4.11Matthias Sohn2019-03-211-0/+17
| | | | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.10: Fix GC to delete empty fanout directories after repacking Change-Id: I7118b9c668dcbb0f5435cc613e964c557bfebf01 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | | | | * Merge branch 'stable-4.9' into stable-4.10Matthias Sohn2019-03-211-0/+17
| | | | | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-4.9: Fix GC to delete empty fanout directories after repacking Change-Id: Ibdbfe08eb290286fa738010bad1c604e857885cd Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| | | | | | | * Fix GC to delete empty fanout directories after repackingMatthias Sohn2019-03-201-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The prune method did not delete empty fanout directories when loose objects moved to a new pack file but only when loose unreferenced objects were pruned. Change-Id: Ia068f4914c54d9cf9f40b75e8ea50759402b5000 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>