Commit Graph

3731 Commits

Author SHA1 Message Date
Matthias Sohn 3e7e4132de Prepare post 4.0.0-m2 builds
Change-Id: I11c2d5120508526ed2671d62f4dd6a395c3b4749
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-05-05 12:41:54 +02:00
Matthias Sohn 16f27ccb6f JGit v4.0.0.201505050340-m2
Change-Id: I4a360a654d5d5e4200bf1e4817613f85755bb3ff
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-05-05 09:36:57 +02:00
Matthias Sohn f1a1acbd1c Merge branch 'master' into stable-4.0
Change-Id: I962461630384b76e7f387f4e1c1248833fbc4673
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-05-04 22:02:35 +02:00
Matthias Sohn 80369d1895 Prepare post 4.0.0-m1 builds
Change-Id: I2e6a90d74f774d576e7d3595344dccaa27a96027
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-05-04 21:59:53 +02:00
Matthias Sohn c2ce3a60e0 Merge "Revert "ResolveMerge only needs to visit differing TreeEntries"" 2015-05-04 09:33:30 -04:00
Christian Halstrick 6f71301404 Fix possible AIOOB in DirCacheTree.contains()
When DirCacheTree.contains() is called and 'aOff' is greater than 'aLen'
an ArrayIndexOutOfBoundsException was thrown. This fix makes
DirCacheTree.contains() more robust and allows parsing such index files
without throwing AIOOB.

I couldn't create a test case leading to this situation but I have seen
such situations while inspecting Bug: 465393. It seems that such
situations are created on Windows when there are invalid pathes in the
index. There may be a not yet known bug leading to such situations in
combination with invalid pathes.

Bug: 465393
Change-Id: I6535d924a22cba9a05df0ccd7e6dc2c9ddc42375
2015-05-04 11:07:23 +02:00
Matthias Sohn 4f9bdc8b84 Use CBI eclipse-jarsigner-plugin 1.1.2-SNAPSHOT
CBI recently fixed a couple of resource leaks which probably caused
jar signing failures on Hudson (bug 464947). JGit builds were also
affected. Hence use version 1.1.2-SNAPSHOT until a new release is
available.

Bug:464947
Change-Id: I7fb4a65f888194f7209c866cd58551891c89fb7a
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-05-04 09:02:36 +02:00
Shawn Pearce 4a984e2033 Support agent= capability in wire protocol
Since git-core ff5effd (v1.7.12.1) the native wire protocol transmits
the server and client implementation and version strings using
capability "agent=git/1.7.12.1" or similar.

Support this in JGit and hang the implementation data off UploadPack
and ReceivePack.  On HTTP transports default to the User-Agent HTTP
header until the client overrides this with the optional capability
string in the first line.

Extract the user agent string into a UserAgent class under transport
where it can be specified to a different value if the application's
build process has broken the Implementation-Version header in the
JGit package.

Change-Id: Icfc6524d84a787386d1786310b421b2f92ae9e65
2015-04-30 14:40:35 -07:00
Matthias Sohn 7e0ebb8e29 Merge changes I368af61a,I2400fe5f
* changes:
  Remove pack from list when file handle is stale
  Lower log level to warn for handled pack errors
2015-04-30 10:43:48 -04:00
Shawn Pearce 4feffb3bf5 Add fsck.allowInvalidPersonIdent to accept invalid author/committers
A larger than expected number of real-world repositories found on
the Internet contain invalid author, committer and tagger lines
in their history. Many of these seem to be caused by users misusing
the user.name and user.email fields, e.g.:

  [user]
    name = Au Thor <author@example.com>
    email = author@example.com

that some version of Git (or a reimplementation thereof) copied
directly into the object header. These headers are not valid and
are rejected by a strict fsck, making it impossible to transfer
the repository with JGit/EGit.

Another form is an invalid committer line with double negative for
the time zone, e.g.

  committer Au Thor <a@b> 1288373970 --700

The real world is messy. :(

Allow callers and users to weaken the fsck settings to accept these
sorts of breakages if they really want to work on a repo that has
broken history.  Most routines will still function fine, however
commit timestamp sorting in RevWalk may become confused by a corrupt
committer line and sort commits out of order. This is mostly fine if
the corrupted chain is shorter than the slop window.

Change-Id: I6d529542c765c131de590f4f7ef8e7c1c8cb9db9
2015-04-30 10:27:03 -04:00
Hugo Arès ae4b72d50e Remove pack from list when file handle is stale
This error happens on nfs file system when you try to read a file that
was deleted or replaced.

When the error happens because the file was deleted, removing it from
the list is the proper way to handle the error, same use case as
FileNotFoundException. When the error happens because the file was
replaced, removing the file from the list will cause the file to be
re-read so it will get the latest version of the file.

Bug: 462868
Change-Id: I368af61a6cf73706601a3e4df4ef24f0aa0465c5
Signed-off-by: Hugo Arès <hugo.ares@ericsson.com>
2015-04-30 16:21:05 +02:00
Hugo Arès d3a73c1407 Lower log level to warn for handled pack errors
Pack not found and pack corrupted/invalid are handled by the code (pack
is removed from the list) so logging an error and the stacktrace is
misleading because it implies that there is an action to take to fix the
error.

Lower the log level to warn and remove the stacktrace for those 2 types
of errors and keep the error log statement for any other.

Change-Id: I2400fe5fec07ac6d6c244b852cce615663774e6e
Signed-off-by: Hugo Arès <hugo.ares@ericsson.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-30 16:21:03 +02:00
Matthias Sohn 65423ea1b1 Merge branch 'stable-3.7'
* stable-3.7:
  Prepare 3.7.2-SNAPSHOT builds
  JGit v3.7.1.201504261725-r
  Revert "Let ObjectWalk.markUninteresting also mark the root tree as"

Change-Id: If1b62ff695e063d797c3d13c43e488ca56f29cbe
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-27 23:59:26 +02:00
Matthias Sohn 720adcebb5 Prepare 3.7.2-SNAPSHOT builds
Change-Id: Ia42a665e76953b643a080b58d2cd4526575ddf2e
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-27 00:33:14 +02:00
Matthias Sohn 2383cccf12 JGit v3.7.1.201504261725-r
Change-Id: I80639e317df80c103aef5cad75ad9079d43fb9d0
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-26 23:23:20 +02:00
Matthias Sohn f02e4a6188 Merge "Revert "Let ObjectWalk.markUninteresting also mark the root tree as"" into stable-3.7 2015-04-26 16:26:54 -04:00
David Ostrovsky d1da2780c2 Revert "Let ObjectWalk.markUninteresting also mark the root tree as"
The Iff2de881 tried to fix missing tree ..." but introduced severe
performance degradation (>10x in some cases) when acting as server
(git push) and as client (replication). IOW cure is worse than the
disease.

This reverts commit c4797fe986.

Change-Id: I4e6056eb352d51277867f857a0cab380eca153ac
Signed-off-by: David Ostrovsky <david@ostrovsky.org>
2015-04-26 17:52:24 +02:00
Matthias Sohn 10412ddfed Delete deprecated PackWriter.preparePack() methods
Change-Id: I62befa4a933c9ffd42d14519f555554cc513ddd9
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-25 00:51:02 +02:00
Matthias Sohn ffdacc2bbb Delete deprecated class IgnoreRule
Was replaced by FastIgnoreRule in 3.6

Change-Id: Ia9c3d1231a5d97f3f5bddc81113954c9f9d8ee1e
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-25 00:43:20 +02:00
Matthias Sohn 5362e1d41c Delete deprecated checkoutEntry() methods in DirCacheCheckout
Change-Id: I7fcf6534e6092ba87360ccd68a7dd7466c5c8911
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-25 00:22:59 +02:00
Shawn Pearce 6e5c71b358 Remove validate support when reusing cached pack
Cached packs are only used when writing over the network or to
a bundle file and reuse validation is always disabled in these
two contexts. The client/consumer of the stream will be SHA-1
checksumming every object.

Reuse validation is most critical during local GC to avoid silently
ignoring corruption by stopping as soon as a problem is found and
leaving everything alone for the end-user to debug and salvage.
Cached packs are not supported during local GC as the bitmap rebuild
logic does not support including a cached pack in the result.

Strip out the validation and force PackWriter to always disable the
cached pack feature if reuseValidation is enabled.

Change-Id: If0d7baf2ae1bf1f7e71bf773151302c9f7887039
2015-04-24 11:31:22 -07:00
Shawn Pearce a3476ced1f Rename copyThroughCache to shouldCopyThroughCache
Sensible suggestion from Terry Parker as a late comment on
commit f2efcdc6f769d59722b17e9274932d585035cfb6.

Change-Id: I225775bfb6d3d91ae066ff00f9d80a9c02a422c2
2015-04-24 11:07:22 -07:00
Shawn Pearce 1553a6ff55 Add readAheadBuffer hint to ReadableChannel
This hint allows an underlying implementation to read more bytes when
possible and buffer them locally for future read calls to consume.

Change-Id: Ia986a1bb8640eecb91cfbd515c61fa1ff1574a6f
2015-04-24 11:06:56 -07:00
Shawn Pearce 3fa520b653 Merge "Restore AwtCredentialsProvider to enable debugging pgm in Eclipse" 2015-04-24 12:47:48 -04:00
Shawn Pearce c761c8bb5c Avoid storing large packs in block cache during reuse
When a large pack (> 30% of the block cache) is being reused by
copying it pollutes the block cache with noise by storing blocks
that are never referenced again.

Avoid this by streaming the file directly from its channel onto
the output stream.

Change-Id: I2e53de27f3dcfb93de68b1fad45f75ab23e79fe7
2015-04-23 20:22:13 -07:00
Matthias Sohn ff798f13da Restore AwtCredentialsProvider to enable debugging pgm in Eclipse
In 6c1f739388 the AWT based credentials
provider was dropped because we don't support Java 5 any longer so we
can always use the ConsoleCredentialsProvider which requires Java 6.
This broke debugging org.eclipse.jgit.pgm since Eclipse doesn't support
using a system console authenticator [1].

[1] see https://bugs.eclipse.org/bugs/show_bug.cgi?id=148831

Change-Id: Iba71001a7762e73d6579ba9dfa5a08ddaba777ea
2015-04-22 12:53:35 +02:00
David Pletcher 12e38d7275 Expose public getDepth method
The clone or fetch depth is a valuable bit of information
for access logging. Create a public getter to faciliate access.
A precondition check prevents unintentional misuse when the
data isn't valid yet.

Change-Id: I4603d5fd3bd4a767e3e2419b0f2da3664cfbd7f8
Signed-off-by: David Pletcher <dpletcher@google.com>
2015-04-16 15:50:43 -07:00
Matthias Sohn 41c4f9cb2a Fix error message to include cause if ResetCommand fails
Bug: 464048
Change-Id: I6e7d9262b94cb168c84faef1dea22c1e082fe5ad
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-16 14:28:39 +02:00
Christian Halstrick 510aed1493 Revert "ResolveMerge only needs to visit differing TreeEntries"
This reverts commit bda5e76420. This reduces
performance at least for non-bare repositories.

Change-Id: Ib26cf8372f210798e104112edf14e91bfeaf23ec
2015-04-10 17:06:36 -04:00
Matthias Sohn 017032c465 Fix IllegalArgumentException in AmazonS3
JGit hit IllegalArgumentException: invalid content length
when pushing large packs to S3.

Bug: 463015
Change-Id: Iddf50d90c7e3ccb15b9ff71233338c6b204b3648
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-09 11:12:01 +02:00
Shawn Pearce 300a55dcba Merge "FS.readPipe() shouldn't log IOException as an error" 2015-04-08 21:08:51 -04:00
Shawn Pearce 9fb6d217b5 Merge "Remove obsolete API warning filters to silence warnings" 2015-04-08 21:08:31 -04:00
Shawn Pearce e0d95ab577 Merge "Use try-with-resources to fix warnings in AddCommand" 2015-04-08 21:08:01 -04:00
Shawn Pearce 481405f770 Merge changes Iad4d4127,I0211bcf0
* changes:
  Silence warning for non-translatable String in AddNoteCommand
  Use try-with-resources to fix warnings in AddNoteCommand
2015-04-08 21:07:06 -04:00
Shawn Pearce a0bc9560aa Merge changes I28a5c7e2,If90a6cca
* changes:
  Replace use of deprecated release() in BasePackPushConnection
  Replace use of deprecated release() in BasePackFetchConnection
2015-04-08 21:05:33 -04:00
Shawn Pearce 5ef9c1709e Merge changes I184945ee,Iacaad1a7
* changes:
  Remove unnecessary $NON-NLS comment in BaseReceivePack
  Use try-with-resources to close resources in BaseReceivePack
2015-04-08 21:04:08 -04:00
Shawn Pearce 9b9087d47d Merge changes Ic555e6e0,Id4cb9a23
* changes:
  Replace use of deprecated release() method in BlameResult
  Use try-with-resource to close BlameGenerator
2015-04-08 20:59:05 -04:00
Shawn Pearce f96e15b1e6 Merge "Use try-with-resource to close resources in BlobBasedConfig" 2015-04-08 20:58:32 -04:00
Shawn Pearce 32cc3c3096 Merge "Use try-with-resource to close resources in BundleFetchConnection" 2015-04-08 20:57:53 -04:00
Shawn Pearce 7810d9bc42 Merge "Use try-with-resource to close resources in BundleWriter" 2015-04-08 20:56:24 -04:00
Matthias Sohn d726f0c1e0 Use try-with-resource to close resources in CommitCommand
Change-Id: Ibbbc74acfd050f28e68f318970660b5959caf7e3
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-08 22:53:20 +02:00
Matthias Sohn bb2ca576ff Externalize error message used in CheckoutCommand
Change-Id: Ifbc469b07e63218107157ffbf23ae55c52a55ef4
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-08 22:52:06 +02:00
Matthias Sohn 7343c7a10f Use try-with-resource to close resources in CheckoutCommand
Change-Id: Ia4d4f9bff03a03d116b80022d7691df67bf8b51b
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-08 22:52:05 +02:00
Shawn Pearce f4ded63880 Merge "Fix resource leak in ChangeIdUtil" 2015-04-08 16:08:43 -04:00
Shawn Pearce 2b2cd4ba53 Merge changes I11631afb,Iaa51a46a
* changes:
  Externalize error messages used in DfsGarbageCollector
  Use try-with-resource to close resources in DfsGarbageCollector
2015-04-08 15:53:48 -04:00
Shawn Pearce 297600f7c2 Merge changes I8c06635c,I62d6de7d
* changes:
  Silence non-externalized string warning in CherryPickCommand
  Use try-with-resource to close resources in CherryPickCommand
2015-04-08 15:30:50 -04:00
Shawn Pearce ba8b275ac5 Merge "Silence non-externalized string warnings in CherryPickResult" 2015-04-08 15:30:17 -04:00
Shawn Pearce b2bba1419f Merge "Use try-with-resource to close resources in CloneCommand" 2015-04-08 15:29:53 -04:00
Shawn Pearce 881dfc0147 Merge "Replace call to deprecated RevWalk.release() in DescribeCommand" 2015-04-08 15:26:21 -04:00
Shawn Pearce 15a95e3911 Merge "Use try-with-resource to close resources in DiffCommand" 2015-04-08 15:26:07 -04:00