]> source.dussan.org Git - jgit.git/log
jgit.git
8 years agoAdd support for HEAD requests to HttpClientConnection 71/65771/2
Matthias Sohn [Wed, 3 Feb 2016 10:34:35 +0000 (11:34 +0100)]
Add support for HEAD requests to HttpClientConnection

Change-Id: I501f37e06b686a3a0bb5fd857dd72e424da91d3e
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoAllow to reuse disableSslVerify method, move it to HttpSupport 77/64677/5
Saša Živkov [Tue, 19 Jan 2016 16:52:19 +0000 (17:52 +0100)]
Allow to reuse disableSslVerify method, move it to HttpSupport

The disableSslVerify method will be used in the follow up change.

Change-Id: Ie00b5e14244a9a036cbdef94768007f1c25aa8d3
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoSupport LFS protocol and a file system based LFS storage 77/52177/16
Matthias Sohn [Tue, 22 Dec 2015 15:11:43 +0000 (16:11 +0100)]
Support LFS protocol and a file system based LFS storage

Implement LfsProtocolServlet handling the "Git LFS v1 Batch API"
protocol [1]. Add a simple file system based LFS content store and the
debug-lfs-store command to simplify testing.

Introduce a LargeFileRepository interface to enable additional storage
implementation while reusing the same protocol implementation.

At the client side we have to configure the lfs.url, specify that
we use the batch API and we don't use authentication:

  [lfs]
  url = http://host:port/lfs
  batch = true
  [lfs "http://host:port/lfs"]
  access = none

the git-lfs client appends the "objects/batch" to the lfs.url.

Hard code an Authorization header in the FileLfsRepository.getAction
because then git-lfs client will skip asking for credentials. It will
just forward the Authorization header from the response to the
download/upload request.

The FileLfsServlet supports file content storage for "Large File
Storage" (LFS) server as defined by the Github LFS API [2].

- upload and download of large files is probably network bound hence use
  an asynchronous servlet for good scalability
- simple object storage in file system with 2 level fan-out
- use LockFile to protect writing large objects against multiple
  concurrent uploads of the same object
- to prevent corrupt uploads the uploaded file is rejected if its hash
  doesn't match id given in URL

The debug-lfs-store command is used to run the LfsProtocolServlet and,
optionally, the FileLfsServlet which makes it easier to setup a
local test server.

[1]
https://github.com/github/git-lfs/blob/master/docs/api/http-v1-batch.md
[2] https://github.com/github/git-lfs/tree/master/docs/api

Bug: 472961
Change-Id: I7378da5575159d2195138d799704880c5c82d5f3
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Signed-off-by: Sasa Zivkov <sasa.zivkov@sap.com>
8 years agoAdd com.google.gson 2.2.4.v201311231704 to target platform 54/52354/9
Matthias Sohn [Fri, 17 Jul 2015 21:57:46 +0000 (23:57 +0200)]
Add com.google.gson 2.2.4.v201311231704 to target platform

We will use gson to implement the LFS REST API.

CQ: 9966
Change-Id: I7feb6b2b8f7b736888370aad94e4c436ae6014bb
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoImplement SHA-256 abstraction 76/52176/12
Matthias Sohn [Fri, 17 Jul 2015 14:22:56 +0000 (16:22 +0200)]
Implement SHA-256 abstraction

The Large File Storage extension specified by GitHub [1] uses SHA-256 to
compute the ID of large files stored by the extension. Hence implement a
SHA-256 abstraction similar to the SHA-1 abstraction used by JGit.

[1] https://git-lfs.github.com/

Bug: 470333
Change-Id: I3a95954543c8570d73929e55f4a884b55dbf1b7a
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoRemove unused API problem filters 63/65763/1
Matthias Sohn [Wed, 3 Feb 2016 09:39:08 +0000 (10:39 +0100)]
Remove unused API problem filters

Change-Id: I8b1c99b108b4cea6356e0a62e6bfc0731df44cf5
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoMerge branch 'stable-4.2' 62/65762/1
Matthias Sohn [Wed, 3 Feb 2016 09:30:38 +0000 (10:30 +0100)]
Merge branch 'stable-4.2'

* stable-4.2:
  DirCacheCheckoutTest: Open Git and TreeWalk in try-with-resource
  CommitCommand: Remove declaration of unthrown exception
  Branch: Fix variable hiding warning
  ApplyCommandTest: Open Git in try-with-resource
  PackFileTest: Open ObjectInserter.Formatter in try-with-resource

Change-Id: I8484b10fad5a4c35fcfaedc1cdf8ccf97471618e
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoDirCacheCheckoutTest: Open Git and TreeWalk in try-with-resource 37/65637/1
David Pursehouse [Tue, 2 Feb 2016 09:30:30 +0000 (18:30 +0900)]
DirCacheCheckoutTest: Open Git and TreeWalk in try-with-resource

Change-Id: Icc8eda841e6a437e1acf3438525014e7c46d5eb2
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoCommitCommand: Remove declaration of unthrown exception 36/65636/1
David Pursehouse [Tue, 2 Feb 2016 09:27:47 +0000 (18:27 +0900)]
CommitCommand: Remove declaration of unthrown exception

Change-Id: I1795b1e510ab170f062ee6c5988d7a7567abe260
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoBranch: Fix variable hiding warning 35/65635/1
David Pursehouse [Tue, 2 Feb 2016 09:25:55 +0000 (18:25 +0900)]
Branch: Fix variable hiding warning

The Branch class has a member named 'branch', which was being
hidden by the local variable of the same name used in a for-loop.

Change-Id: I334092010a9c80686fb79713852d4bfa166ce12f
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoApplyCommandTest: Open Git in try-with-resource 34/65634/1
David Pursehouse [Tue, 2 Feb 2016 09:22:32 +0000 (18:22 +0900)]
ApplyCommandTest: Open Git in try-with-resource

Also, add missing braces around if-block.

Change-Id: I9390b2c7d5c4507923b6f06271a070dc868534e5
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoPackFileTest: Open ObjectInserter.Formatter in try-with-resource 33/65633/1
David Pursehouse [Tue, 2 Feb 2016 09:20:38 +0000 (18:20 +0900)]
PackFileTest: Open ObjectInserter.Formatter in try-with-resource

Change-Id: I9c56b5efdb9c13b929073a786092a707fca21281
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoMerge branch 'stable-4.2' 31/65531/1
David Pursehouse [Mon, 1 Feb 2016 01:30:36 +0000 (10:30 +0900)]
Merge branch 'stable-4.2'

* stable-4.2:
  FileTreeIteratorTest: Open Git and RevWalk in try-with-resource
  RebaseCommandTest: Open RevWalk in try-with-resource
  PullCommandTest: Open RevWalk in try-with-resource
  BlameGeneratorTest: Create Git instances in try-with-resource
  Remove unnecessary suppression of deprecation warnings in tests
  DiffEntryTest: Open Git and TreeWalk in try-with-resource
  DiffCommandTest: Open Git and RevWalk in try-with-resource
  CommitCommandTest: Open Git and TreeWalk in try-with-resource

Change-Id: Ic886ec9b1a4b3b46f9fa14188b4df832ce36cfa6
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoMerge "Remove unused dependency to commons logging"
Shawn Pearce [Sun, 31 Jan 2016 18:33:31 +0000 (13:33 -0500)]
Merge "Remove unused dependency to commons logging"

8 years agoMerge "Prevent ChainingCredentialsProvider from adding delegated providers twice"
Matthias Sohn [Thu, 28 Jan 2016 23:51:13 +0000 (18:51 -0500)]
Merge "Prevent ChainingCredentialsProvider from adding delegated providers twice"

8 years ago[gitrepo] Support revision in remote tag. 26/65326/4
Yuxuan 'fishy' Wang [Wed, 27 Jan 2016 23:01:47 +0000 (15:01 -0800)]
[gitrepo] Support revision in remote tag.

Repo manifest file allows revision attribute in <remote> tag. This change
teaches JGit to read that information.

Change-Id: I1c878a2505b9d09fa09fbd404a119b71f2fb8fdb
Signed-off-by: Yuxuan 'fishy' Wang <fishywang@google.com>
8 years agoPrevent ChainingCredentialsProvider from adding delegated providers twice 08/65208/1
Rüdiger Herrmann [Tue, 26 Jan 2016 17:55:39 +0000 (18:55 +0100)]
Prevent ChainingCredentialsProvider from adding delegated providers twice

Signed-off-by: Rüdiger Herrmann <ruediger.herrmann@gmx.de>
Change-Id: Icc0907af4fe26877d066db3c813dba37213a3ccc

8 years agoFileTreeIteratorTest: Open Git and RevWalk in try-with-resource 61/65161/1
David Pursehouse [Tue, 26 Jan 2016 08:56:47 +0000 (17:56 +0900)]
FileTreeIteratorTest: Open Git and RevWalk in try-with-resource

Change-Id: I6e68c4b028e0aa01964eace10307372060371df7
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoRebaseCommandTest: Open RevWalk in try-with-resource 78/65078/1
David Pursehouse [Mon, 25 Jan 2016 08:05:14 +0000 (17:05 +0900)]
RebaseCommandTest: Open RevWalk in try-with-resource

Change-Id: If7b7a90171d1349d634a84f135471ebac29e3210
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoPullCommandTest: Open RevWalk in try-with-resource 73/65073/1
David Pursehouse [Mon, 25 Jan 2016 06:23:06 +0000 (15:23 +0900)]
PullCommandTest: Open RevWalk in try-with-resource

Change-Id: I676cd7ef4bb29f980a313acd77506dd070e6c98f
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoBlameGeneratorTest: Create Git instances in try-with-resource 72/65072/1
David Pursehouse [Mon, 25 Jan 2016 06:20:24 +0000 (15:20 +0900)]
BlameGeneratorTest: Create Git instances in try-with-resource

Change-Id: I2dc4191603fbd6c3214763b869882c51b0e53284
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoRemove unnecessary suppression of deprecation warnings in tests 70/65070/1
David Pursehouse [Mon, 25 Jan 2016 03:00:57 +0000 (12:00 +0900)]
Remove unnecessary suppression of deprecation warnings in tests

Change-Id: I722f8c2e80129e0129349b55a53b29626e2af21c
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoDiffEntryTest: Open Git and TreeWalk in try-with-resource 69/65069/1
David Pursehouse [Mon, 25 Jan 2016 02:55:46 +0000 (11:55 +0900)]
DiffEntryTest: Open Git and TreeWalk in try-with-resource

Change-Id: If4a49268b9b7ec3a44ed1508ed78db365b0c9e5b
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoDiffCommandTest: Open Git and RevWalk in try-with-resource 68/65068/1
David Pursehouse [Mon, 25 Jan 2016 02:48:12 +0000 (11:48 +0900)]
DiffCommandTest: Open Git and RevWalk in try-with-resource

Change-Id: I966f7e5053651661abc7de63c968e1f5bf2de464
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoCommitCommandTest: Open Git and TreeWalk in try-with-resource 66/65066/1
David Pursehouse [Mon, 25 Jan 2016 01:41:24 +0000 (10:41 +0900)]
CommitCommandTest: Open Git and TreeWalk in try-with-resource

Change-Id: I65a6fd7028e209c300d992c2756100c09ab4dc19
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoRemove unused dependency to commons logging 49/65049/1
Rüdiger Herrmann [Sun, 24 Jan 2016 12:47:31 +0000 (13:47 +0100)]
Remove unused dependency to commons logging

Signed-off-by: Rüdiger Herrmann <ruediger.herrmann@gmx.de>
Change-Id: Ibbca0f7023350a5d424b6a5a84a5d11845a8ded7

8 years agoMerge branch 'stable-4.2' 46/65046/1
Matthias Sohn [Sun, 24 Jan 2016 09:59:14 +0000 (10:59 +0100)]
Merge branch 'stable-4.2'

* stable-4.2:
  ConcurrentRepackTest: Don't use deprecated WindowCache.reconfigure
  ConcurrentRepackTest: Open RevWalk in try-with-resource
  CommitOnlyTest: Open RevWalk in try-with-resource
  UnpackedObjectTest: Create ObjectInserter.Formatter in try-with-resource
  FileRepositoryBuilderTest: Use try-with-resource for auto-closeables
  RepositorySetupWorkDirTest: Fix "resource leak" warnings
  Remove java7 bundle from Maven central scripts
  Prepare 4.2.1-SNAPSHOT builds
  JGit v4.2.0.201601211800-r
  Add progress monitor to Merger
  Fix TransportException when reading bundle
  Fix unused throws CorruptObjectException from addTree

Change-Id: I2325fb995561a6249b7b5e82fa413dfd34ef6007
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoMerge changes Ifdb33501,Idc7b7bbd,Ia3db8696,I4ef82311,I3ad58d4c, ... into stable-4.2
Matthias Sohn [Sun, 24 Jan 2016 01:11:04 +0000 (20:11 -0500)]
Merge changes Ifdb33501,Idc7b7bbd,Ia3db8696,I4ef82311,I3ad58d4c, ... into stable-4.2

* changes:
  ConcurrentRepackTest: Don't use deprecated WindowCache.reconfigure
  ConcurrentRepackTest: Open RevWalk in try-with-resource
  CommitOnlyTest: Open RevWalk in try-with-resource
  UnpackedObjectTest: Create ObjectInserter.Formatter in try-with-resource
  FileRepositoryBuilderTest: Use try-with-resource for auto-closeables
  RepositorySetupWorkDirTest: Fix "resource leak" warnings

8 years agoCompare API against 4.2.0 45/65045/1
Matthias Sohn [Sat, 23 Jan 2016 22:49:30 +0000 (23:49 +0100)]
Compare API against 4.2.0

Change-Id: I08e2cf8f3fbb9e63f4a264daf8d9cc41dde55921
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoFix a @since tag 41/65041/2
Thomas Wolf [Sat, 23 Jan 2016 14:51:47 +0000 (15:51 +0100)]
Fix a @since tag

Ketch didn't make it into 4.2

Change-Id: Iab3ddfb926a2f8d31622e212c845c825369b09d5
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
8 years agoConcurrentRepackTest: Don't use deprecated WindowCache.reconfigure 51/64951/1
David Pursehouse [Fri, 22 Jan 2016 06:03:33 +0000 (15:03 +0900)]
ConcurrentRepackTest: Don't use deprecated WindowCache.reconfigure

Replace with calls to WindowCacheConfig.install() as mentioned in
WindowCache.reconfigure's deprecation notice.

Change-Id: Ifdb33501a2209239029c815b1e4e844ea5b56075
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoConcurrentRepackTest: Open RevWalk in try-with-resource 50/64950/1
David Pursehouse [Fri, 22 Jan 2016 05:59:54 +0000 (14:59 +0900)]
ConcurrentRepackTest: Open RevWalk in try-with-resource

Change-Id: Idc7b7bbdc1df05372b873cbe4c495474f3ffd64b
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoCommitOnlyTest: Open RevWalk in try-with-resource 49/64949/1
David Pursehouse [Fri, 22 Jan 2016 05:57:21 +0000 (14:57 +0900)]
CommitOnlyTest: Open RevWalk in try-with-resource

Change-Id: Ia3db8696f66f8d294e1d443fb54e716d26d517b1
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoUnpackedObjectTest: Create ObjectInserter.Formatter in try-with-resource 48/64948/1
David Pursehouse [Fri, 22 Jan 2016 05:51:52 +0000 (14:51 +0900)]
UnpackedObjectTest: Create ObjectInserter.Formatter in try-with-resource

The ObjectInserter.Formatter instance is only used to call idFor.

Factor out a utility method to do that.

Change-Id: I4ef823110c2152ac7905681df3217eb8001f5bd9
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoFileRepositoryBuilderTest: Use try-with-resource for auto-closeables 47/64947/1
David Pursehouse [Fri, 22 Jan 2016 05:30:57 +0000 (14:30 +0900)]
FileRepositoryBuilderTest: Use try-with-resource for auto-closeables

Use try-with-resource to create instances of FileRepository and
FileWriter.

"resource" and "unused" warnings no longer occur, so remove the
suppression annotations.

Change-Id: I3ad58d4cc2d4c019cd8edda7cb401e9d9f3fb790
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoRepositorySetupWorkDirTest: Fix "resource leak" warnings 46/64946/1
David Pursehouse [Fri, 22 Jan 2016 05:21:15 +0000 (14:21 +0900)]
RepositorySetupWorkDirTest: Fix "resource leak" warnings

Use FileRepositoryBuilder to create the Repository, except in cases
where the creation was already in a try-block. Convert those to use
a try-with-resource.

Change-Id: I7d7adeee81bda6e80d91a119c7d690de3d00dc2b
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoRemove java7 bundle from Maven central scripts 38/64938/1
Matthias Sohn [Fri, 22 Jan 2016 00:49:22 +0000 (01:49 +0100)]
Remove java7 bundle from Maven central scripts

The bundle org.eclipse.jgit.java7 was deleted in 4.0

Change-Id: I57dbc0b18eaf164c8f53cc2b776ecb80481a993d
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoPrepare 4.2.1-SNAPSHOT builds 37/64937/1
Matthias Sohn [Fri, 22 Jan 2016 00:48:52 +0000 (01:48 +0100)]
Prepare 4.2.1-SNAPSHOT builds

Change-Id: Ic9eac53b10ac97b2038b334d388ae3d21393f993
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoJGit v4.2.0.201601211800-r 33/64933/1 v4.2.0.201601211800-r
Matthias Sohn [Thu, 21 Jan 2016 22:47:12 +0000 (23:47 +0100)]
JGit v4.2.0.201601211800-r

Change-Id: I89f33b0da81ff499315baa5311f95f31724fa510
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoMerge "Remove unused variable from DfsBlockCache"
Terry Parker [Thu, 21 Jan 2016 21:21:14 +0000 (16:21 -0500)]
Merge "Remove unused variable from DfsBlockCache"

8 years agoRemove unused variable from DfsBlockCache 21/64921/2
Terry Parker [Thu, 21 Jan 2016 21:00:45 +0000 (13:00 -0800)]
Remove unused variable from DfsBlockCache

Change-Id: I8ea167e44e9ebcac7ca08920e806d8bcb8188bf0
Signed-off-by: Terry Parker <tparker@google.com>
8 years agoPrepare 4.3.0-SNAPSHOT builds 20/64920/1
Matthias Sohn [Thu, 21 Jan 2016 19:31:10 +0000 (20:31 +0100)]
Prepare 4.3.0-SNAPSHOT builds

Change-Id: Idcf0479529693b023042becd96698f9afd344bd4
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoAdd progress monitor to Merger 01/64901/1
Laurent Delaigue [Wed, 13 Jan 2016 15:56:00 +0000 (16:56 +0100)]
Add progress monitor to Merger

Monitoring progress of merges can be useful for users for large
repositories or complex merge processes that take some time.

This enables setting a monitor. Existing merge implementations in jgit
do not yet report progress if a monitor is set. This will be added in a
later change.

Change-Id: I17b978b3fc91750dd88649638b90a46820a0877c
Signed-off-by: Laurent Delaigue <laurent.delaigue@obeo.fr>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoFix TransportException when reading bundle 00/64900/1
Chris Gavin [Wed, 6 Jan 2016 15:53:22 +0000 (15:53 +0000)]
Fix TransportException when reading bundle

When reading a bundle file, commit messages who's oneline format is
longer than 982 characters caused JGit to treat subsequent text in
the commit as a SHA, then throw a TransportException because it's
not a valid SHA.

Now the readLine method will read all the way to the end of the
line, not just the first 1024 characters of it.

Change-Id: If15b491aa9a1e4fd9b8bbed2dd9e6be47a64ccb7
Signed-off-by: Chris Gavin <chris@chrisgavin.me>
8 years agoFix unused throws CorruptObjectException from addTree 99/64899/1
Shawn Pearce [Thu, 21 Jan 2016 06:08:23 +0000 (22:08 -0800)]
Fix unused throws CorruptObjectException from addTree

2262a794b48ea removed throws CorruptObjectException, but was not
compiled under Eclipse and did not see errors generated by Eclipse.
Maven build silently ignored the unnecessary code.

Change-Id: I6e9014adcc604588e10e5963d13d0c6ef0e1c617

8 years agoMerge branch 'master' into stable-4.2 98/64898/1
Matthias Sohn [Thu, 21 Jan 2016 16:03:20 +0000 (17:03 +0100)]
Merge branch 'master' into stable-4.2

Change-Id: Ieec4f51aedadf5734ae0e3f4e8713248a3c4fc52
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoMerge branch 'stable-4.2' 72/64872/1
Matthias Sohn [Thu, 21 Jan 2016 13:04:39 +0000 (14:04 +0100)]
Merge branch 'stable-4.2'

* stable-4.2:
  BundleWriterTest: Open RevWalk in try-with-resource
  DiffFormatterTest: Remove accidentally added trailing whitespace
  CherryPickCommandTest: Create Git instances in try-with-resource
  DiffFormatterTest: Create auto-closeable instances in try-with-resource
  ConfigTest: Create Git instance in try-with-resource
  CommitAndLogCommandTest: Use assumeFalse to skip test on Windows
  CommitAndLogCommandTest: Create Git instances in try-with-resource
  AddCommandTest: Create Git instances in try-with-resource
  ArchiveCommandTest: Create Git instances in try-with-resource
  TagCommandTest: Instantiate Git and RevWalk objects in try-with-resource
  BlameCommandTest: Instantiate Git objects in try-with-resource
  SideBandOutputStreamTest: Use try-with-resource
  FileTreeIteratorJava7Test: Create Git instances in try-with-resource

Change-Id: Ib572e98e6117b70442aee9cd7e7b8c3cf65562a7
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoAdd progress monitor to Merger 80/64280/3
Laurent Delaigue [Wed, 13 Jan 2016 15:56:00 +0000 (16:56 +0100)]
Add progress monitor to Merger

Monitoring progress of merges can be useful for users for large
repositories or complex merge processes that take some time.

This enables setting a monitor. Existing merge implementations in jgit
do not yet report progress if a monitor is set. This will be added in a
later change.

Change-Id: I17b978b3fc91750dd88649638b90a46820a0877c
Signed-off-by: Laurent Delaigue <laurent.delaigue@obeo.fr>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoBundleWriterTest: Open RevWalk in try-with-resource 54/64854/1
David Pursehouse [Thu, 21 Jan 2016 10:13:04 +0000 (19:13 +0900)]
BundleWriterTest: Open RevWalk in try-with-resource

Change-Id: Ie25770a73b19d6522bad9fdc0966f48370f96265
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoDiffFormatterTest: Remove accidentally added trailing whitespace 53/64853/1
David Pursehouse [Thu, 21 Jan 2016 10:12:12 +0000 (19:12 +0900)]
DiffFormatterTest: Remove accidentally added trailing whitespace

Change-Id: Ia7a3b05b79c3a5530a4445e6e48ceae445425224
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoCherryPickCommandTest: Create Git instances in try-with-resource 42/64842/1
David Pursehouse [Thu, 21 Jan 2016 09:07:54 +0000 (18:07 +0900)]
CherryPickCommandTest: Create Git instances in try-with-resource

Change-Id: I9d49258bdf12f3221013c37cfb8a21ea27f28860
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoDiffFormatterTest: Create auto-closeable instances in try-with-resource 40/64840/1
David Pursehouse [Thu, 21 Jan 2016 08:00:15 +0000 (17:00 +0900)]
DiffFormatterTest: Create auto-closeable instances in try-with-resource

Git, ByteArrayOutputStream, and DiffFormatter are auto-closeable and
should be managed in try-with-resource.

Change-Id: I83395116acb4b4f7cd4300fd69564355bc07e4bb
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoConfigTest: Create Git instance in try-with-resource 30/64830/1
David Pursehouse [Thu, 21 Jan 2016 06:31:56 +0000 (15:31 +0900)]
ConfigTest: Create Git instance in try-with-resource

Change-Id: Ie65c69e0f1aed95bcdf68ebd68d21b3e2590b41c
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoCommitAndLogCommandTest: Use assumeFalse to skip test on Windows 29/64829/1
David Pursehouse [Thu, 21 Jan 2016 06:30:23 +0000 (15:30 +0900)]
CommitAndLogCommandTest: Use assumeFalse to skip test on Windows

Use JUnit's assumeFalse method to cause the test to skip when
run on Windows.

Change-Id: I3f59440cfe62c37c127e381052b60471fbe8ec5e
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoCommitAndLogCommandTest: Create Git instances in try-with-resource 28/64828/1
David Pursehouse [Thu, 21 Jan 2016 06:25:46 +0000 (15:25 +0900)]
CommitAndLogCommandTest: Create Git instances in try-with-resource

Change-Id: Id06417f1d3914cd3addacdbe9b5801a06cc3955f
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoMerge "Fix unused throws CorruptObjectException from addTree"
Shawn Pearce [Thu, 21 Jan 2016 06:20:42 +0000 (01:20 -0500)]
Merge "Fix unused throws CorruptObjectException from addTree"

8 years agoMerge "Fix TransportException when reading bundle"
Shawn Pearce [Thu, 21 Jan 2016 06:15:10 +0000 (01:15 -0500)]
Merge "Fix TransportException when reading bundle"

8 years agoFix TransportException when reading bundle 57/63657/3
Chris Gavin [Wed, 6 Jan 2016 15:53:22 +0000 (15:53 +0000)]
Fix TransportException when reading bundle

When reading a bundle file, commit messages who's oneline format is
longer than 982 characters caused JGit to treat subsequent text in
the commit as a SHA, then throw a TransportException because it's
not a valid SHA.

Now the readLine method will read all the way to the end of the
line, not just the first 1024 characters of it.

Change-Id: If15b491aa9a1e4fd9b8bbed2dd9e6be47a64ccb7
Signed-off-by: Chris Gavin <chris@chrisgavin.me>
8 years agoFix unused throws CorruptObjectException from addTree 27/64827/1
Shawn Pearce [Thu, 21 Jan 2016 06:08:23 +0000 (22:08 -0800)]
Fix unused throws CorruptObjectException from addTree

2262a794b48ea removed throws CorruptObjectException, but was not
compiled under Eclipse and did not see errors generated by Eclipse.
Maven build silently ignored the unnecessary code.

Change-Id: I6e9014adcc604588e10e5963d13d0c6ef0e1c617

8 years agoMerge changes from topic 'reftree'
Shawn Pearce [Thu, 21 Jan 2016 05:32:17 +0000 (00:32 -0500)]
Merge changes from topic 'reftree'

* changes:
  debug-rebuild-ref-tree: Copy HEAD into RefTree
  debug-rebuild-ref-tree: Add --enable flag to turn the database on
  RefTreeDatabase: Allow ORIG_HEAD, etc. on non-bare repositories
  RefTreeDatabase: Expose bootstrap refs in getAdditionalRefs

8 years agoMerge changes from topic 'ketch'
Shawn Pearce [Thu, 21 Jan 2016 04:15:09 +0000 (23:15 -0500)]
Merge changes from topic 'ketch'

* changes:
  daemon: Add --ketch=LEADER flag
  Ketch: Intercept push and route it through Ketch
  Ketch: Simple map of running leader instances
  Ketch: Basic replication system

8 years agoAddCommandTest: Create Git instances in try-with-resource 25/64825/1
David Pursehouse [Thu, 21 Jan 2016 01:21:12 +0000 (10:21 +0900)]
AddCommandTest: Create Git instances in try-with-resource

Change-Id: Idf42f03099eeb9975fef9492ea8a75776afc2a3c
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoArchiveCommandTest: Create Git instances in try-with-resource 24/64824/1
David Pursehouse [Thu, 21 Jan 2016 00:45:58 +0000 (09:45 +0900)]
ArchiveCommandTest: Create Git instances in try-with-resource

Change-Id: Icbfd92395db85818736142fd3fb3432385e89ca9
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoMerge "TreeWalk: Remove CorruptObjectException from addTree(AbstractTreeIterator)"
Shawn Pearce [Wed, 20 Jan 2016 16:03:46 +0000 (11:03 -0500)]
Merge "TreeWalk: Remove CorruptObjectException from addTree(AbstractTreeIterator)"

8 years agoTreeWalk: Remove CorruptObjectException from addTree(AbstractTreeIterator) 79/64779/1
Shawn Pearce [Wed, 20 Jan 2016 15:41:08 +0000 (07:41 -0800)]
TreeWalk: Remove CorruptObjectException from addTree(AbstractTreeIterator)

This form of addTree() does not parse any objects and cannot throw the
declared checked exception.  Callers are being forced to try-catch
CorruptObjectException that cannot occur when the iterator instance
has already been constructed.

Change-Id: Id338035302903bab81569d1576eab063eee0885a

8 years agoFix ResetCommand to return the resulting ref 93/59093/2
Christian Halstrick [Wed, 28 Oct 2015 09:36:27 +0000 (10:36 +0100)]
Fix ResetCommand to return the resulting ref

ResetCommand was not returning the updated ref as a result of the call()
method. Since the ResetCommand is always updating the same ref (HEAD)
this should always be the HEAD ref.

Bug: 440750
Change-Id: I7974975c3ab05e68c208384e69cf0692ded6e8db
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoAdd option to allow empty commits to CommitCommand 65/58165/4
Christian Halstrick [Wed, 14 Oct 2015 14:25:45 +0000 (16:25 +0200)]
Add option to allow empty commits to CommitCommand

CommitCommand should allow to specify whether empty commits (commits
having the same tree as the sole predecessor commit) are allowed or not.
Similar to native git's "--allow-empty" flag.

The defaults differ between JGit and native git even after this change.
When not specifying paths then by default JGit allows to create empty
commits while native git does not. It would be API breaking to change
this now.

Bug: 460301
Change-Id: I88feb0c3ffb2c686b1d0594e669729b065cda4cb
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoTagCommandTest: Instantiate Git and RevWalk objects in try-with-resource 44/64744/1
David Pursehouse [Wed, 20 Jan 2016 09:34:41 +0000 (18:34 +0900)]
TagCommandTest: Instantiate Git and RevWalk objects in try-with-resource

Change-Id: I08959650e2970e964bc864dc6d120d7bddfd8232
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoBlameCommandTest: Instantiate Git objects in try-with-resource 43/64743/1
David Pursehouse [Wed, 20 Jan 2016 09:33:58 +0000 (18:33 +0900)]
BlameCommandTest: Instantiate Git objects in try-with-resource

Change-Id: Icb9e6bb9ee99589fa2e0388c8b305a8a1f5954db
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agodaemon: Add --ketch=LEADER flag 09/64209/5
Shawn Pearce [Wed, 13 Jan 2016 05:55:43 +0000 (21:55 -0800)]
daemon: Add --ketch=LEADER flag

Experimental flag to turn on the KetchLeader within this daemon JVM.
This is a manually elected leader process, set from the command line.
Remote followers for each repository are configured per-repository
using remote sections with ketch-type = FULL. For example:

Manually elected leader's $GIT_DIR/config:

  [ketch]
    name = A

  [remote "A"]
    ketch-type = FULL

  [remote "B"]
    url = git://127.0.0.1:9421/sample.git
    ketch-type = FULL

  [remote "C"]
    url = git://127.0.0.1:9422/sample.git
    ketch-type = FULL

Replica B and C daemons:

  git daemon \
    --export-all \
    --enable=receive-pack \
    --listen=127.0.0.1 --port=9421 \
    --base-path=$HOME/ketch_test/follower_one \
    $HOME/ketch_test/follower_one &

  git daemon \
    --export-all \
    --enable=receive-pack \
    --listen=127.0.0.1 --port=9422 \
    --base-path=$HOME/ketch_test/follower_two \
    $HOME/ketch_test/follower_two &

Change-Id: I165f85970a77e16b5263115290d685d8a00566f5

8 years agoKetch: Intercept push and route it through Ketch 08/64208/5
Shawn Pearce [Fri, 4 Dec 2015 23:02:09 +0000 (15:02 -0800)]
Ketch: Intercept push and route it through Ketch

Capture commands and pass to the in-process KetchLeader, allowing
it to replicate to followers.

Change-Id: I25dfeb2a93821af65354337f391480a72bae2210

8 years agoKetch: Simple map of running leader instances 07/64207/5
Shawn Pearce [Fri, 4 Dec 2015 23:05:26 +0000 (15:05 -0800)]
Ketch: Simple map of running leader instances

Supports use in basic daemons where RepositoryCache is also effective.

Change-Id: Ia736b32c2c710b5a802233badc0d30818de763cd

8 years agoKetch: Basic replication system 06/64206/6
Shawn Pearce [Mon, 18 Jan 2016 18:33:31 +0000 (10:33 -0800)]
Ketch: Basic replication system

Git Ketch is a multi-master Git repository management system.  Writes
are successful only if a majority of participant servers agree.  Acked
writes are durable against server failures as a majority of the
participants store all required objects.

Git Ketch is modeled on the Raft Consensus Algorithm[1].  A ketch
sailing vessel is faster and more nimble than a raft.  It can also
carry more source codes.

Git Ketch front-loads replication costs, which vaguely resembles a
ketch sailing vessel's distinguishing feature of the main mast on the
front of the ship.

[1] https://raft.github.io/
Change-Id: Ib378dab068961fc7de624cd96030266660b64fb4

8 years agoSideBandOutputStreamTest: Use try-with-resource 18/64718/1
David Pursehouse [Wed, 20 Jan 2016 02:38:35 +0000 (11:38 +0900)]
SideBandOutputStreamTest: Use try-with-resource

Factor out the creation of the SideBandOutputStream objects into
a utility method that wraps it in a try-with-resource.

Remove the "unused" suppression that is now unnecessary, and add
declaration that the tests methods can throw Exception.

Change-Id: Iff02e4e3532bd6ab6e423f197e70d44c4f328d0b
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoFileTreeIteratorJava7Test: Create Git instances in try-with-resource 17/64717/1
David Pursehouse [Wed, 20 Jan 2016 02:22:18 +0000 (11:22 +0900)]
FileTreeIteratorJava7Test: Create Git instances in try-with-resource

Change-Id: I493e90e8a0d96db5acc49759c8e138b0a8c7b099
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoMerge "Remove declared IOException which is no longer thrown"
Matthias Sohn [Wed, 20 Jan 2016 01:05:33 +0000 (20:05 -0500)]
Merge "Remove declared IOException which is no longer thrown"

8 years agoRemove declared IOException which is no longer thrown 12/64712/1
Matthias Sohn [Wed, 20 Jan 2016 00:53:17 +0000 (01:53 +0100)]
Remove declared IOException which is no longer thrown

Since 2ccea7f0 ChangeIdUtil.computeChangeId() doesn't throw IOException
anymore.

Change-Id: I0bf43f2346dadbbfe7e6cbcb38b5525456fbf686
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoMerge branch 'stable-4.2' 11/64711/1
David Pursehouse [Wed, 20 Jan 2016 00:32:19 +0000 (09:32 +0900)]
Merge branch 'stable-4.2'

* stable-4.2:
  CheckoutCommandTest: Create Git instances in try-with-resource
  BranchCommandTest: Create Git instances in try-with-resource
  CheckoutTest: Create Git instances in try-with-resource
  BranchTest: Create Git instances in try-with-resource
  URIishTest: Use @Test annotation's `expected` argument
  Suppress "The allocated object is never used" warning in tests
  Add $NON-NLS to suppress "Non-externalized string literal" warnings
  Don't use deprecated constructors of CmdLineException
  Prepare 4.2.0-SNAPSHOT builds
  Remove org.eclipse.jgit.updatesite project from tools/version.sh
  RevParse: Remove superfluous semicolon
  RefUpdateTest: Use try-with-resource for auto-closable types
  RefUpdateTest: Add null check to prevent potential NPE
  CommitCommand: Remove redundant null check
  JGit v4.2.0.201512141825-rc1

Change-Id: I2179859289b2f2e3d0b7c6d02ef7e7890c467f7b
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoChangeIdUtil: Don't throw IOException 70/64670/4
Dave Borowitz [Tue, 19 Jan 2016 16:13:40 +0000 (11:13 -0500)]
ChangeIdUtil: Don't throw IOException

This could have only happened during the getBytes call. Instead, use
Constants.encode, which is a non-throwing implementation.

This change is binary compatible with existing code compiled against
older versions of JGit, although it might break compilation of
previously compiling code due to dead catch blocks.

Change-Id: I191fec5cac718657407230de141440e86d0151fb

8 years agoMerge "Transport: Implement AutoCloseable"
Shawn Pearce [Tue, 19 Jan 2016 22:36:37 +0000 (17:36 -0500)]
Merge "Transport: Implement AutoCloseable"

8 years agoTransport: Implement AutoCloseable 05/64605/4
Shawn Pearce [Tue, 19 Jan 2016 21:08:38 +0000 (13:08 -0800)]
Transport: Implement AutoCloseable

After creating a Transport instance callers should always call
its close() method. Use AutoCloseable to document this idiom
and allow use of try-with-resources.

Change-Id: I0c6ff3e39ebecdd7a028dbcae1856a818937b186

8 years agoMerge changes from topic 'deadtree'
Shawn Pearce [Tue, 19 Jan 2016 22:08:53 +0000 (17:08 -0500)]
Merge changes from topic 'deadtree'

* changes:
  Ignore API errors about Tree, TreeEntry, FileTreeEntry and friends being removed
  Revert "Revert "Remove deprecated Tree, TreeEntry, FileTreeEntry and friends""

8 years agoMerge "ReceiveCommand.abort(): Utility to mark batch of commands as failed"
Shawn Pearce [Tue, 19 Jan 2016 20:54:05 +0000 (15:54 -0500)]
Merge "ReceiveCommand.abort(): Utility to mark batch of commands as failed"

8 years agoIgnore API errors about Tree, TreeEntry, FileTreeEntry and friends being 87/64087/3
Shawn Pearce [Tue, 12 Jan 2016 00:07:24 +0000 (16:07 -0800)]
Ignore API errors about Tree, TreeEntry, FileTreeEntry and friends being
removed

Bug: 486105
Change-Id: I04adcdb68bee7d5f608bb7ab959fe36a890f9ecd

8 years agoRevert "Revert "Remove deprecated Tree, TreeEntry, FileTreeEntry and 78/64678/3
Andrey Loskutov [Tue, 19 Jan 2016 17:22:36 +0000 (12:22 -0500)]
Revert "Revert "Remove deprecated Tree, TreeEntry, FileTreeEntry and
friends""

This reverts commit 2cc80187d3633adedc99eb97132e0a749b457c19.

Bug: 486105
Change-Id: Id4f9987c33d66cbed9de6e4d4d6784afdd01a3cf
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
8 years agoCheckoutCommandTest: Create Git instances in try-with-resource 25/64325/2
David Pursehouse [Thu, 14 Jan 2016 08:56:49 +0000 (17:56 +0900)]
CheckoutCommandTest: Create Git instances in try-with-resource

Also rename a local variable in one of the tests that was hiding
a class variable of the same name.

Change-Id: Ia9398157b87a78df6eef0b64a833c16ca2e57ce3
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoBranchCommandTest: Create Git instances in try-with-resource 24/64324/2
David Pursehouse [Thu, 14 Jan 2016 08:53:28 +0000 (17:53 +0900)]
BranchCommandTest: Create Git instances in try-with-resource

Also remove a local variable in one of the tests that was
hiding a member variable with the same name.

Change-Id: Ia4d94cdbf2d83d8be2645f0a93d8891d01606c59
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoCheckoutTest: Create Git instances in try-with-resource 23/64323/2
David Pursehouse [Thu, 14 Jan 2016 08:49:26 +0000 (17:49 +0900)]
CheckoutTest: Create Git instances in try-with-resource

Change-Id: I49a03f7bee0b61c062ce160674f9aa0cd1bcc8ba
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoBranchTest: Create Git instances in try-with-resource 22/64322/2
David Pursehouse [Thu, 14 Jan 2016 08:38:18 +0000 (17:38 +0900)]
BranchTest: Create Git instances in try-with-resource

Change-Id: I8becee479fab91a18e6daffd6f4fd57338c9d120
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoURIishTest: Use @Test annotation's `expected` argument 21/64321/2
David Pursehouse [Thu, 14 Jan 2016 08:25:56 +0000 (17:25 +0900)]
URIishTest: Use @Test annotation's `expected` argument

Specify the expected exception in the annotation, instead of
catching it and calling `fail()` when it wasn't raised.

Change-Id: I8a640c0e42353533e4e73b85b50c224dc060f2d7
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoSuppress "The allocated object is never used" warning in tests 20/64320/2
David Pursehouse [Thu, 14 Jan 2016 08:01:50 +0000 (17:01 +0900)]
Suppress "The allocated object is never used" warning in tests

Change-Id: Ibb405e0b36ce5a2cb30268a7de31ab2bd079ad80
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoAdd $NON-NLS to suppress "Non-externalized string literal" warnings 19/64319/2
David Pursehouse [Thu, 14 Jan 2016 07:37:39 +0000 (16:37 +0900)]
Add $NON-NLS to suppress "Non-externalized string literal" warnings

Change-Id: I3e6f83ad2bc7d493e2c1ab5a8c60affa2b49c386
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoDon't use deprecated constructors of CmdLineException 16/64316/2
David Pursehouse [Thu, 14 Jan 2016 06:25:28 +0000 (15:25 +0900)]
Don't use deprecated constructors of CmdLineException

Change-Id: If01fa896537209821d6a7a262ee978572195a397
Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
8 years agoMerge "Prepare 4.2.0-SNAPSHOT builds" into stable-4.2
Matthias Sohn [Tue, 19 Jan 2016 15:04:05 +0000 (10:04 -0500)]
Merge "Prepare 4.2.0-SNAPSHOT builds" into stable-4.2

8 years agoMerge "Remove org.eclipse.jgit.updatesite project from tools/version.sh" into stable-4.2
Matthias Sohn [Tue, 19 Jan 2016 14:15:58 +0000 (09:15 -0500)]
Merge "Remove org.eclipse.jgit.updatesite project from tools/version.sh" into stable-4.2

8 years agoAnnotated to be removed Tree API with @noreference and @noextend 47/64647/1
Andrey Loskutov [Tue, 19 Jan 2016 13:27:41 +0000 (14:27 +0100)]
Annotated to be removed Tree API with @noreference and @noextend

See https://wiki.eclipse.org/Eclipse/API_Central/API_Removal_Process.

Bug: 486105
Change-Id: I460e43da0d487279608729a2081c614e7065f56f
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
8 years agoPrepare 4.2.0-SNAPSHOT builds 57/64657/1
Matthias Sohn [Tue, 19 Jan 2016 12:10:20 +0000 (13:10 +0100)]
Prepare 4.2.0-SNAPSHOT builds

Change-Id: Ibe38a95bf36db0c0ed948280b28c416943ec0329
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoRemove org.eclipse.jgit.updatesite project from tools/version.sh 56/64656/1
Matthias Sohn [Tue, 19 Jan 2016 12:07:24 +0000 (13:07 +0100)]
Remove org.eclipse.jgit.updatesite project from tools/version.sh

We don't need to update versions for this project which was removed
a long time ago.

Change-Id: Ie2d030134942add152847581797db3a213ec4c9e
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
8 years agoReceiveCommand.abort(): Utility to mark batch of commands as failed 04/64604/1
Shawn Pearce [Mon, 18 Jan 2016 18:42:00 +0000 (10:42 -0800)]
ReceiveCommand.abort(): Utility to mark batch of commands as failed

If one or more commands is failing the entire group usually has to
also fail with "transaction aborted". Pull this loop into a helper
so the idiom can be easily reused in several places throughout JGit.

Change-Id: I3b9399b7e26ce2b0dc5f7baa85d585a433b4eaed

8 years agodebug-rebuild-ref-tree: Copy HEAD into RefTree 06/64506/1
Shawn Pearce [Fri, 15 Jan 2016 22:13:25 +0000 (14:13 -0800)]
debug-rebuild-ref-tree: Copy HEAD into RefTree

HEAD is not part of getRefs(ALL) and must be copied explicitly.
This allows `jgit debug-rebuild-ref-tree --enable` to convert an
existing repository to use RefTree with a local working tree:

  mkdir testRepo
  cd testRepo

  jgit init
  jgit debug-rebuild-ref-tree --enable

  touch a
  jgit add a
  jgit commit -m initial

Change-Id: I46cbc2611b9ae683ef7319dc46af277925dfaee5