Commit Graph

1429 Commits

Author SHA1 Message Date
Chris Aniszczyk eb9dba2fde Merge "Fix error handling in RepositoryFilter" 2011-05-05 10:35:55 -04:00
Chris Aniszczyk 2352290398 Add pom.xml to org.eclipse.jgit.ant
Also-by: Ketan Padegaonkar <KetanPadegaonkar@gmail.com>
Bug: 321237
CQ: 5111
Change-Id: Ie93b85df76fcb5c077b93f01ed1959eaeffb3c20
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-05-05 09:02:55 -05:00
Shawn O. Pearce de16d5e8f9 Fix error handling in RepositoryFilter
The filter did not correctly match smart HTTP client requests,
so it always fell back on HTTP status codes for errors. This
usually causes a smart client to retry a dumb request, which
is not what the server wants.

Change-Id: I42592378dc42fbe308ef30a2923786c690f668a9
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2011-05-04 14:58:33 -07:00
Robin Rosenberg e2413ce2f6 Present reset in the reflog like C Git does nowadays
Confirmed for v1.7.4.1

Change-Id: I4f1c3cd6b2cf543be213f061afb94223062dde51
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
2011-05-04 00:31:32 +02:00
Bernard Leach 98b019f4bd Implemented merge for parallel delete/modification
Duplicates cgit behaviour for merging the case where
OURS is deleted and THEIRS is modified as well as
OURS is modified and THEIRS id deleted.

Change-Id: Ia2ab4f8dc95020f2914ff01c2bf3b1bc62a9d45d
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-05-03 12:11:52 -05:00
Ketan Padegaonkar 04df086d3e Add better exception handling for the git-init ant task
Change-Id: Ia935720fc9c09b427abb84be038c4dc74610850c
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-05-03 12:09:04 -05:00
Chris Aniszczyk 7a9ebbfa9f Merge "Attempt to make git prefix detection more reliable" 2011-05-03 12:53:49 -04:00
Stefan Lay f2a146d033 Merge "Add path support to checkout command." 2011-05-03 11:39:11 -04:00
Kevin Sawicki ec92f8f59e Add path support to checkout command.
Change-Id: I89e8edfc6dd87d5bf8fd08704df2432720084330
Signed-off-by: Kevin Sawicki <kevin@github.com>
2011-05-03 08:07:15 -07:00
Matthias Sohn f9d7b0d21e Qualify post-0.12 builds
Change-Id: I70fe2671321efb5c3d271121ce00299533d1b388
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2011-05-03 00:19:54 +02:00
Matthias Sohn d085a8954f Merge branch 'stable-0.12'
* stable-0.12:
  JGit 0.12.1
2011-05-03 00:11:47 +02:00
Robin Rosenberg ea5df16404 Attempt to make git prefix detection more reliable
This fix makes sure the readPipe methods drains the stderr
pipe and close the subprocess' stdin stream before reading
the process outputs.

I never managed to repeat the reported problem myself, so this
may help in diagnosing the probelm on other peoples machines.

Bug: 337533
Change-Id: I299555f09768c34d5868327e574326946ee265e1
2011-05-02 22:50:49 +02:00
Ketan Padegaonkar dce5f96c1e Add better javadoc to the git-init ant task
Change-Id: If41e5a9ab37533cce10ea1c1925d7bd3ece586ea
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-05-02 12:22:24 -05:00
Matthias Sohn b2b58feba7 JGit 0.12.1
Change-Id: Ia6e58b466fa3ef7ddd61b40f2ad44141fe8786c4
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2011-05-02 18:24:45 +02:00
Ketan Padegaonkar 130ecaad6d Add GitCheckoutTask to org.eclipse.jgit.ant
Bug: 321237
Change-Id: I5c4753f7b99d0be002b32e403f5dfff9353c57b0
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-05-02 09:27:20 -05:00
Ketan Padegaonkar f8b89a922f Add GitCloneTask to org.eclipse.jgit.ant
Bug: 321237
Change-Id: I605da8150048158d918c577ef8ca4f6edbed0133
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-05-02 09:22:47 -05:00
Ketan Padegaonkar fdeb327270 Add org.eclipse.jgit.ant
Adds the initial project and a GitInitTask.

Bug: 321237
Change-Id: I06b94e0b42b20ecf51f86845e47d49913f3513c4
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-05-02 09:12:55 -05:00
Shawn O. Pearce d05d351f3b Merge branch 'stable-0.12'
* stable-0.12:
  Implement the no-done capability
2011-04-21 16:33:56 -07:00
Shawn O. Pearce b209671d04 Implement the no-done capability
Smart HTTP clients may request both multi_ack_detailed and no-done in
the same request to prevent the client from needing to send a "done"
line to the server in response to a server's "ACK %s ready".

For smart HTTP, this can save 1 full HTTP RPC in the fetch exchange,
improving overall latency when incrementally updating a client that
has not diverged very far from the remote repository.

Unfortuantely this capability cannot be enabled for the traditional
bi-directional connections.  multi_ack_detailed has the client sending
more "have" lines at the same time that the server is creating the
"ACK %s ready" and writing out the PACK stream, resulting in some race
conditions and/or deadlock, depending on how the pipe buffers are
implemented.  For very small updates, a server might actually be able
to send "ACK %s ready", then the PACK, and disconnect before the
client even finishes sending its first batch of "have" lines.  This
may cause the client to fail with a broken pipe exception.  To avoid
all of these potential problems, "no-done" is restricted only to the
smart HTTP variant of the protocol.

Change-Id: Ie0d0a39320202bc096fec2e97cb58e9efd061b2d
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2011-04-21 16:14:31 -07:00
Shawn O. Pearce b9691b94a3 Merge branch 'stable-0.12'
* stable-0.12:
  Fix sorting of names in RefDirectory
  Make running static checks configurable in maven build
  Add constants for gerrit change id configuration
2011-04-21 15:41:10 -07:00
Shawn O. Pearce 33e65ec691 Fix sorting of names in RefDirectory
RefDirectory did not correctly follow the contract of RefList.  The
contract says if you use add() method of RefList builder, you MUST
sort() it afterwards, and later every other method assumes that list
is properly sorted (especially the binary search in the find() and
get() methods).  Instead RefDirectory class tried to scan the refs
recursively while sorting every folder in the process before
processing and did not call sort().

For example, when scanning the contents of refs/tags project1 string
is smaller than project1-*, so it will recursively go into the folder
and add these tags first and only then will add project-* ones. This
will result in a broken list (any project1-* string is less than
project1/* one, but they all appear after them in the list), that's
why binary search will fail making loose RefList and the whole local
RefMap completely unusable.

Change-Id: Ibad90017e3b2435b1396b69a22520db4b1b022bb
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2011-04-21 12:40:26 -07:00
Christian Halstrick 0359184f4e Enabled unit tests in HttpClientTests
Change-Id: I92ae117f1dcfc569e27c66c191e090a60fbe2bb6
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
2011-04-21 10:27:04 +02:00
Bernard Leach 1a867d10b9 Added support to IndexDiff to return information on conflicts
Change-Id: I43c13eb72a44f80135c93525fce0c0280b0e64a2
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-04-19 17:11:01 -05:00
Shawn Pearce 502508f028 Merge "Make running static checks configurable in maven build" into stable-0.12 2011-04-18 11:46:47 -04:00
Matthias Sohn df85978aae Make running static checks configurable in maven build
In order to run the static checks run:

mvn -P static-checks clean install

Change-Id: I14077498a04be986ded123ddbfc97da8f9bc3130
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2011-04-18 17:38:58 +02:00
Stefan Lay ce2de7db4c Add constants for gerrit change id configuration
Change-Id: I22fc46dff6cc5dfd975f6e82161d265781778cde
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2011-04-14 21:57:22 +02:00
Matthias Sohn b69284f72d Update eclipse IP log for 0.12
Change-Id: I8f2ce63e039d5baabc1533477128470696a36ced
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2011-04-13 01:35:34 +02:00
Leonard Broman 09be3948cd Hande latin-1 encoding
Bug: 342259
Change-Id: Ie285b8819b5ea6f9892ebafc4ebbd9c6d091d1fe
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-04-11 11:55:55 -05:00
Chris Aniszczyk e109529d6f Add NotesCommand to the JGit API
Bug: 334765
Change-Id: Ie0fb79671e7a741eb85651f507b8ade930bfcc20
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-04-10 21:25:14 -05:00
Chris Aniszczyk 72c2203117 Merge "Create all test data in trash folder" 2011-04-09 19:12:23 -04:00
Matthias Sohn ea0f2f9e39 Create all test data in trash folder
This ensures that all test data is separated from project sources and
cleaned up after the test. Previously the cloned bare test repository
was created in org.eclipse.jgit.test/ and not deleted after the test
run.

Change-Id: I55110442e365fc8fe610f1c372f72a71ee6e1412
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2011-04-10 01:02:29 +02:00
Matthias Sohn b8669ed5c0 Update to use Tycho 0.11
Change-Id: I1f9053fe2af39898851b41e1e86c9320ab5594ca
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2011-04-09 23:23:47 +02:00
Robin Stocker 5dbef3fa51 Add "Conflicts" section to merge message on conflict
The same as with cherry-pick, the commit message of a merge should
include a "Conflicts" section when the merge resulted in conflicts.

Change-Id: I6261dc898262322924af5ca1bef841a654b0df55
Signed-off-by: Robin Stocker <robin@nibor.org>
2011-04-06 22:57:49 +02:00
Robin Stocker 3151657404 Refactor reading and writing heads in Repository
Add private methods which are used for reading and writing MERGE_HEAD
and CHERRY_PICK_HEAD files, as suggested in the comments on change
I947967fdc2f1d55016c95106b104c2afcc9797a1.

Change-Id: If4617a05ee57054b8b1fcba36a06a641340ecc0e
Signed-off-by: Robin Stocker <robin@nibor.org>
2011-04-06 22:40:28 +02:00
Robin Stocker 6e10aa42e9 Add CHERRY_PICK_HEAD for cherry-pick conflicts
Add handling of CHERRY_PICK_HEAD file in .git (similar to MERGE_HEAD),
which is written in case of a conflicting cherry-pick merge.

It is used so that Repository.getRepositoryState can return the new
states CHERRY_PICKING and CHERRY_PICKING_RESOLVED. These states, as well
as CHERRY_PICK_HEAD can be used in EGit to properly show the merge tool.

Also, in case of a conflict, MERGE_MSG is written with the original
commit message and a "Conflicts" section appended. This way, the
cherry-picked message is not lost and can later be re-used in the commit
dialog.

Bug: 339092
Change-Id: I947967fdc2f1d55016c95106b104c2afcc9797a1
Signed-off-by: Robin Stocker <robin@nibor.org>
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-04-06 13:28:10 -05:00
Stefan Lay fbf35fea4e Add parameters for timeout and branches to clone
The timeout is also used in the FetchCommand called by the
CloneCommand. 

The possibility to provide a list of branches to fetch initially is a
feature offered by EGit. To implement it here is a prerequisite for
EGit to be able to use the CloneCommand.

Change-Id: I21453de22e9ca61919a7c3386fcc526024742f5f
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
2011-04-06 15:00:22 +02:00
Stefan Lay 792b93bc62 Try to checkout branch after cloning
When no branch was specified in the clone command, HEAD pointed to a
commit after clone. Now the clone command tries to find a branch which
points to the same commit and checks out this branch.

Bug: 339354
Change-Id: Ie3844465329f213dee4a8868dbf434ac3ce23a08
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
2011-04-06 14:58:48 +02:00
Philipp Thun e24005de2d Fix DirCache.isModified()
Change I61a1b45db2d60fdcc0f87373ac6fd75ac4c4a202 fixed a possible NPE
occurring for newly created repositories - but in that case a wrong
value (false = not modified) was returned.

If a current version of the index file exists (liveFile), but there is
no snapshot, this means that there have been modifications (i.e. true
has to be returned).

Change-Id: I698f78112249f9924860fc58eb7eab7afdf87eb7
Signed-off-by: Philipp Thun <philipp.thun@sap.com>
2011-04-04 18:04:21 +02:00
Matthias Sohn efad7327ca [findbugs] Use explicit initialization
Findbugs doesn't like using implicitly initialized field in 
initializer.

Change-Id: Ic1ff9011813cc02950a71df587f31ed9f8415b49
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2011-04-04 02:19:16 +02:00
Matthias Sohn 7aec8247c1 [findbugs] Make mutable static field final
Change-Id: I310bc2093571bf22a58106f09706cc3eb43a2453
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
2011-04-03 00:32:37 +02:00
Chris Aniszczyk 7b3a6ef530 Merge "Make DeltaBaseCache per-ObjectReader" 2011-04-02 13:35:54 -04:00
Chris Aniszczyk 2b42869912 Merge "Fix ReceivePack connectivity validation with alternates" 2011-04-02 09:44:26 -04:00
Christian Halstrick 12d7e3af1a Merge "Add open(File) and wrap(Repository) to Git" 2011-04-02 03:38:07 -04:00
Christian Halstrick 82372d36f8 Add open(File) and wrap(Repository) to Git
When a new Git instance for an exisiting git repository should be
created there are two use-cases: either the application has already a
Repository instance in hand or the application knows where the
repository resides in the filesystem. Two methods are added to
explicitly support these use-cases: wrap(Repository db) and open(File
gitDir)

Change-Id: I2970e4aa8d4602cb1298f01e5b76bf0f96c492e5
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
2011-04-02 09:33:45 +02:00
Carsten Pfeiffer 11e2e746c1 Support reading first SHA-1 from large FETCH_HEAD files
When reading refs, avoid reading huge files that were put there
accidentally, but still read the top of e.g. FETCH_HEAD, which
may be longer than our limit. We're only interested in the first line
anyway.

Bug: 340880
Change-Id: I11029b9b443f22019bf80bd3dd942b48b531bc11
Signed-off-by: Carsten Pfieffer <carsten.pfeiffer@gebit.de>
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
2011-04-01 20:26:15 -05:00
Shawn Pearce 1e03d52f33 Merge "Let LockFile.unlock use FileUtils.delete()" 2011-04-01 20:46:33 -04:00
Shawn O. Pearce 53fb027284 Make DeltaBaseCache per-ObjectReader
The 'Counting objects' phase of PackWriter requires good hit rates
from the DeltaBaseCache while walking trees, the deltas need to find
their bases in the cache in order to inflate in a reasonable time.

If JGit is running in a multi-threaded server, such as Gerrit Code
Review, each thread needs its own DeltaBaseCache to prevent one thread
from evicting the other thread's relevant bases.  Move the cache to be
per-ObjectReader, lazily allocated when required by a PackFile.

Change-Id: If9d5ed06728e813632ae96dcfb811f4860b276e8
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2011-04-01 20:42:06 -04:00
Shawn O. Pearce 3609dde4cd Fix ReceivePack connectivity validation with alternates
If a repository has an alternate object database, the alternate has
its references advertised as ".have" lines, which permits the client
to use these as delta base candidates when generating the pack.  If
setCheckReferencedObjectsAreReachable(true) is used, these additional
have lines need to be considered in addition to the advertised refs.

Change-Id: Ie39c6696f9d3ff147ef4405cd5624f6011700ce5
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2011-04-01 20:23:51 -04:00
Christian Halstrick d8bcc84154 Let LockFile.unlock use FileUtils.delete()
We sometimes face the problem that the file .git/index.lock
can't deleted causing JGit operations to fail. Problem is
that LockFile.unlock() simply deletes the lockfile and ignores the
return value of File.delete(). Instead use
FileUtils.delete() with retry option. This method will retry the
deletion of the file at most 10 times with sleeps inbetween.

Bug: 335959
Change-Id: I9598edea9f2304fe12e6f470301211b503434848
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
2011-04-02 02:20:58 +02:00
Christian Halstrick ffbaf694e2 Enhance RefDatabase with a refresh() method
There should be a way to explictly refresh the refs cached in the
RefDirectory. Since commit c261b28 (use of FileSnapshot) this is
not needed anymore for storage in the filesystem. But for DHT based
storage an explicit refresh may be needed.

Change-Id: I7d30c3496c05e1fb6e9519f3af9f23c6adb93bf9
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
2011-04-02 02:14:01 +02:00