Commit Graph

4009 Commits

Author SHA1 Message Date
Matthias Sohn 8e332f1057 Replace deprecated release() methods by close() in Merger
Change-Id: I80ce98511a6e9048f1eea93288d6960dcbf3326f
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-04 00:19:39 +02:00
Matthias Sohn ed42bad1c6 Use try-with-resource to close resources in GC
Change-Id: I62a755a4ce839a252a5e80abf3f0d21243862376
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-04 00:17:03 +02:00
Matthias Sohn 2693d6075d Use try-with-resource to close resources in FetchProcess
Change-Id: If489d530ca39ae279c8da848f870b561c38eac3c
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-04 00:05:14 +02:00
Hector Oswaldo Caballero cbb617603a Clearer error message when service is not enabled
When a user tried to use a service not enabled in the remote server
a misleading error  message was given:

   fatal: remote error: Git access forbidden

This patch modifies the error message to make the cause clearer
to the user. Now, when the user tries to use a not enabled service,
the message error clearly states it:

   fatal: remote error: Service not enabled

Change-Id: If096c4ddd17c5aae0e99e3ea6eea4b69bd3c5466
Signed-off-by: Hector Oswaldo Caballero <hector.caballero@ericsson.com>
2015-04-03 08:29:08 -04:00
Matthias Sohn 787ca168a9 Reduce visibility of DirCacheCheckout.checkValidPath()
This was deprecated and should only be used by DirCacheCheckout and
friends. Other classes should use SystemReader.checkPath() instead.

Change-Id: I37cf753b1f081602dee9f0f47979eff39d735f92
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-03 02:03:00 +02:00
Matthias Sohn b84623ac64 Use try-with-resource to close resources in DirCache
Change-Id: I7dd3fd38784689816a1a8e9d8ccb499ae2138a8a
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-03 01:25:45 +02:00
Matthias Sohn ff0a7b719e Fix resource leak in DiffFormatter
- close RevWalk allocated in scan()
- replace use of deprecated ObjectReader.release() method

Change-Id: I41b2b10a1a44270a6ceaa1741e996c0921439852
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-03 01:23:31 +02:00
Matthias Sohn b8658e486c Use try-with-resource to close resources in DiffCommand
Change-Id: I13d7c8bd0eb049aa69effd8b74384746226414cb
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-03 01:15:37 +02:00
Matthias Sohn 5f8308bdb9 Replace call to deprecated RevWalk.release() in DescribeCommand
Change-Id: Ie4bfdeb37d345d6ff1525a737f3b7653b2f8e23e
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-03 00:58:50 +02:00
Matthias Sohn 4bae608e84 Use try-with-resource to close resources in CloneCommand
Change-Id: I9536bc208a5f3ec34f0a82fb565b4253be38e074
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-03 00:38:42 +02:00
Matthias Sohn b53e2a99b3 Silence non-externalized string warnings in CherryPickResult
Change-Id: I515abbcb4319b744c5074de5a0c56caed13c2fb5
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-03 00:36:36 +02:00
Matthias Sohn 588965c6da Silence non-externalized string warning in CherryPickCommand
Change-Id: I8c06635ce655470b5b650fa5c0c546e64445420c
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-03 00:33:01 +02:00
Matthias Sohn 58c2c52219 Use try-with-resource to close resources in CherryPickCommand
Change-Id: I62d6de7d67c7de2460f4cbe918ad2bb8109650b9
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-03 00:32:08 +02:00
Matthias Sohn 3f79182081 Fix resource leak in ChangeIdUtil
Change-Id: I5cb3e9c7e167248697932933eef925c446514683
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 01:30:14 +02:00
Matthias Sohn d4380a9c81 Use try-with-resource to close resources in BundleWriter
Change-Id: I5341973737f6d21c04982bcbefc2ed672ac9bcff
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 01:25:46 +02:00
Matthias Sohn 9e37f6d144 Use try-with-resource to close resources in BundleFetchConnection
Change-Id: Id79c01133b835e278d5b494b5bc5972d7aeed9a9
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 01:24:05 +02:00
Matthias Sohn d6692d54a9 Use try-with-resource to close resources in BlobBasedConfig
Change-Id: Idb890788a88049d07326cd48e7c5534148f18e32
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 01:21:55 +02:00
Matthias Sohn 48622e0ec2 Replace use of deprecated release() method in BlameResult
Change-Id: Ic555e6e0443337aed694bc6445a60abe08e07ad2
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 01:18:42 +02:00
Matthias Sohn e03b6c5cf8 Use try-with-resource to close BlameGenerator
Change-Id: Id4cb9a236dddfc674b55e9e7037329a885455288
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 01:15:59 +02:00
Matthias Sohn 21eee62f7d Remove unnecessary $NON-NLS comment in BaseReceivePack
Change-Id: I184945ee29fb9a6b1f30aec88958375e7b5239b3
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 01:12:22 +02:00
Matthias Sohn c1edc1a07e Use try-with-resources to close resources in BaseReceivePack
Change-Id: Iacaad1a7e0719541e5616d231422ea6fd4c95161
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 01:11:22 +02:00
Matthias Sohn 6691c20bc2 Replace use of deprecated release() in BasePackPushConnection
Change-Id: I28a5c7e222daf35e3d1a1a6fda8ed6ef9b960f78
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 01:06:08 +02:00
Matthias Sohn b61be2cf3e Replace use of deprecated release() in BasePackFetchConnection
Change-Id: If90a6cca9a2ae80474f5ad023cb2a0a8905010be
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 01:02:21 +02:00
Matthias Sohn 81c84c088f Use try-with-resources to close walks in ArchiveCommand
Change-Id: I77120d77a12f1bab5c918a23b0e3eac90e320b2b
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 00:58:13 +02:00
Matthias Sohn 114dee6770 Silence warning for non-translatable String in AddNoteCommand
Change-Id: Iad4d41271eff4e8744efece5bc777c1cb06dead7
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 00:51:02 +02:00
Matthias Sohn 3206f37cc3 Use try-with-resources to fix warnings in AddNoteCommand
Replaces use of deprecated release() methods.

Change-Id: I0211bcf0a76a2fccc2c85fa74778e20c256984ba
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 00:46:59 +02:00
Matthias Sohn e5b81e49e8 Use try-with-resources to fix warnings in AddCommand
- replaces use of deprecated ObjectInserter.release()
- auto-close TreeWalk

Change-Id: I540ee711b8c3430a71fdff07add506b7d9c039dc
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 00:41:19 +02:00
Matthias Sohn 5d22a7b108 Remove obsolete API warning filters to silence warnings
Change-Id: I958d540a6afb1462a3fbb3d76c8f51f386ac068e
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-04-02 00:29:34 +02:00
Shawn Pearce d94ce9c754 Buffer overflow output stream
Most callers/users of TemporaryBuffer are sizing the in-memory
portion large enough that most outputs fit into RAM. With this
assumption they don't pay close attention to the size of IOs
being written, as it "should" just be a copy from one byte array
to another.

Overflow sets up a local file handle, which is costly to write to
for small IO units. Wrap the local file in a BufferedOutputStream
to combine small writes together. Larger writes can still bypass the
buffer as BOS automatically avoids copying for larger writes.

Change-Id: I09f4136dd65c48830cfda86d9101bc647581018a
2015-04-01 13:02:09 -07:00
Shawn Pearce e4433e5e37 Fix overflow stream leak during merge conflicts
When reading back from an overflowed TemporaryBuffer the InputStream
must be closed to close the FileInputStream that is reading from
the backing file.

Change-Id: Id83d8f16f5b2c2618a9f841ec3508508455a6ae1
2015-04-01 13:02:09 -07:00
Shawn Pearce 6884ea24cd Use local GIT_DIR for overflow during merge conflicts
By writing the temporary overflow merge result to $GIT_DIR JGit
can ensure the same filesystem permissions apply to protect the
file contents.

If no directory is available from the repository (e.g. DfsRepository)
null will be passed and the system temporary directory will be used
instead.

Change-Id: I95532aa092676d18f1dc1e3fdbe6dcb1f91b782e
2015-04-01 13:02:08 -07:00
Shawn Pearce 835955fc5b Use try-with-resources and BufferedOutputStream for local merge conflicts
Change-Id: If5539aab1de19bb22400c862bbe2cdf7c3e85535
2015-04-01 13:02:08 -07:00
Shawn Pearce 1b63323212 Optimize EolAwareOutputStream for bulk output
Formatting merge conflicts one byte at a time is going to be very
slow when the final OutputStream is a FileOutputStream and the JVM
is making system calls for each byte output.

When outputting a range of bytes from a byte[] the bol (beginning
of line) value only depends on the value of the last byte written.
Other bytes in the array can be passed directly to the lower stream
for more efficient output.

Change-Id: I3415f9a390ee215210a17bb5bf39164d197e1348
2015-04-01 13:02:07 -07:00
Matthias Sohn bda5e76420 ResolveMerge only needs to visit differing TreeEntries
This should considerably speed up the treewalk on larger repositories.

Found by discussing new EGit API to support model merge in change
eda23bb556d342f421f03b93c7faa160998598aa

Change-Id: I822721c76c64e614f87a080ced2457941f53adcd
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
cc: Laurent Delaigue <laurent.delaigue@obeo.fr>
2015-03-31 17:33:31 +02:00
Matthias Sohn 6e653aef1d FS.readPipe() shouldn't log IOException as an error
This unintentionally was changed from severity debug to error which is
causing unexpected log entries.

Bug: 463349
Change-Id: I4b6d42a1420652ab6824e237bd231ba86896acbf
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-03-28 10:10:47 +01:00
André de Oliveira 3cd7d0d85a Do not add a newline at the end if neither merged side had one
Bug: 390833
Change-Id: I29f7b79b241929877c93ac485c677487a91bb77b
Signed-off-by: André de Oliveira <andre.oliveira@liferay.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-03-27 20:42:49 -04:00
Laurent Delaigue a5c40a3862 Make RepositoryState.REBASING_MERGE reachable again.
If a non interactive rebase is launched, stopping after a conflict
should set the repository state to RepositoryState.REBASING_MERGE
instead of RepositoryState.REBASING_INTERACTIVE.

Bug: 452623
Change-Id: Ie885aab6d71dabd158a718af0d14fff643c9b850
Also-by: Arthur Daussy <arthur.daussy@obeo.fr>
Signed-off-by: Laurent Delaigue <laurent.delaigue@obeo.fr>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-03-27 15:58:05 +01:00
Christian Halstrick 2bd3556e7e Fix RecursiveMerger in case of multiple, independent base commits
When RecursiveMerger found that there are multiple base-commits for the
commits to be merged it tries to temporarily merge the base commits. But
if these base commits have no common predecessor there was a bug in JGit
leading to a NPE. This commit fixes this by enforcing that an empty tree
is used as base when merging two unrelated base commits.

This logic was already there when merging two commits which have no
common predecessor (ThreeWayMerger.mergeBase()). But the code which was
computing a new temporary base commit in case of criss-cross merges
didn't take care to pick an empty tree when no common predecessor can be
found.

Bug: 462671
Change-Id: Ibd96302f5f81383f36d3b1e3edcbf5822147b1a4
2015-03-25 10:49:58 +01:00
Dave Borowitz f1a15f7eb0 TestRepository: Add a cherryPick method
CherryPickCommand only works on a non-bare repository, as it must
modify the working tree and index in case of a merge conflict. In
tests, being able to recover from a merge conflict is less important,
as the caller should be able to control the full contents of files in
advance of the cherry-pick.

Change-Id: Ic332e44df1308b9336e884666b08c1f6db64513d
2015-03-23 13:03:31 -07:00
Matthias Sohn 8a9568eab2 JGit v4.0.0.201503231230-m1
Change-Id: I195239ac3a3f0efbe1409f0ebaad2d1a29c4782e
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-03-23 17:19:38 +01:00
Matthias Sohn dd453f4185 Include slf4j and log4j in jgit command line
This enables the command line to log. Include log4j configuration to log
warnings and errors to stderr.

Exclude the dependencies which log4j 1.2.15 should have marked optional.
See
http://unitstep.net/blog/2009/05/18/resolving-log4j-1215-dependency-problems-in-maven-using-exclusions/
for details

Change-Id: Ie730db4007fb7614fd7d130cd0858b1ac550066a
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-03-23 09:52:22 -04:00
Matthias Sohn 197e3393a5 Merge bundle org.eclipse.jgit.java7 into org.eclipse.jgit
As we moved minimum Java version to 7 we don't need a separate bundle
and feature for JGit features depending on Java 7 anymore.

Change-Id: Ib5da61b0886ddbdea65298f1e8c6d65c9879ced1
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-03-23 14:23:07 +01:00
Matthias Sohn 8ec01500e2 Add missing @since tag to DiffInterruptedException
Change-Id: Ibadbc1b476bfe0d1fe11979ec237a3554966eb59
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2015-03-19 14:53:43 +01:00
Jonathan Nieder 5967b65838 Revert "CommitBuilder should check for duplicate parents"
This reverts commit 6bc48cdc62.

Until git v1.7.10.2~29^2~1 (builtin/merge.c: reduce parents early,
2012-04-17), C git merge would make merge commits with duplicate parents
when asked to with a series of commands like the following:

  git checkout origin/master
  git merge --no-ff origin/master

Nowadays "git merge" removes redundant parents more aggressively
(whenever one parent is an ancestor of another and not just when
duplicates exist) but merges with duplicate parents are still permitted
and can be created with git fast-import or git commit-tree and history
viewers need to be able to cope with them.

CommitBuilder is an interface analagous to commit-tree, so it should
allow duplicate parents.  (That said, an option to automatically remove
redundant parents would be useful.)

Reported-by: Dave Borowitz <dborowitz@google.com>
Change-Id: Ia682238397eb1de8541802210fa875fdd50f62f0
Signed-off-by: Jonathan Nieder <jrn@google.com>
2015-03-18 16:26:05 -07:00
Dave Borowitz 65c379e02d Merge changes I51167503,I794eca3a
* changes:
  TemporaryBuffer: Clear block pointer list instead of reallocating
  TemporaryBuffer: Allow presizing block pointer list
2015-03-18 17:19:52 -04:00
Dave Borowitz e3e9e1f003 TemporaryBuffer: Clear block pointer list instead of reallocating
The block pointer list may have been relatively large, so no need to
make more garbage. Instead, just clear the list and null out all the
elements.

Another possible motivation: a caller may have provided an inaccurate
estimated size, so the list might have been resized several times. If
the list is reused later for a similarly underestimated workload, this
fix will prevent additional resizing on subsequent usages.

Change-Id: I511675035dcff1117381a46c294cc11aded10893
2015-03-18 13:38:58 -07:00
Dave Borowitz edf4368b0c TemporaryBuffer: Allow presizing block pointer list
Callers may wish to use TemporaryBuffer as an essentially unbounded
buffer by passing Integer.MAX_VALUE as the size. (This makes it
behave like ByteArrayOutputStream, only without requiring contiguous
memory.) Unfortunately, it was always allocating an array in the
backing block pointer list to hold enough blocks to MAX_VALUE--all
262,016 of them. It wasn't allocating the blocks themselves, but this
array was still extremely wasteful, using about 2MiB of memory on a
64-bit system.

Tweak the interface to specify an estimated size, and only allocate
the block pointer list enough entries to hold that size. It's an
ArrayList, so if that estimate was wrong, it'll grow. We assume the
cost of finding enough contiguous memory to grow that array is
acceptable.

While we're in there, fix an off-by-one error: due to integer division
we were undercounting the number of blocks needed to store n bytes of
data as (n / SZ).

Change-Id: I794eca3ac4472bcc605b3641e177922aca92b9c0
2015-03-18 13:38:57 -07:00
Christian Halstrick ebed526329 Merge "Make MyersDiff interruptible" 2015-03-18 14:40:29 -04:00
Dave Borowitz 89b91ad406 InMemoryRepository: Use a real Builder class
Change-Id: I161b98a58503415955a21f2720395611f439ce98
2015-03-18 10:22:12 -04:00
Dave Borowitz be08dcb6b5 TestRepository: Expose a Git instance
Change-Id: I2fab7dd9a24205686db4724e77c0fd0a28f2075e
2015-03-18 06:59:55 -07:00