aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* IndexDiff: conflicting files aren't properly shownBernard Leach2011-05-052-10/+88
| | | | | | | | | | Before this change any files in the conflicting set would also be listed in the the other IndexDiff Sets which is confusing. With this change a conflicting file will not be included in any of the other sets. Change-Id: Ife9f2652685220bcfddc1f9820423acdcd5acfdc Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Update IP log to include Ant 1.8.2 (CQ 5111)Shawn O. Pearce2011-05-051-0/+6
| | | | | Change-Id: I953720b88d34e74509b115dcd2c1eb48d3587484 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* Ignore submodule commits during checkoutRobin Rosenberg2011-05-051-0/+6
| | | | | | | | | | | | Submodules are supposed to be handled by separate operations, so we should ignore them on checkout, just like C Git does. This fix does not add submodule support. We just try harder to ignore them. Bug: 343566 Change-Id: I2c5ae1024ea7bb57adf27072da6acc9643018eda Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
* Merge "Fix "into" part of merge message for HEAD"Shawn Pearce2011-05-052-2/+10
|\
| * Fix "into" part of merge message for HEADRobin Stocker2011-05-052-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Merging into a non-master branch would result in the following message: Merge branch 'a' into HEAD Now the merge message is correct: Merge branch 'a' into b Change-Id: I488f97190e4c1711c23a7a3cbd64f8b13a87bbac Signed-off-by: Robin Stocker <robin@nibor.org>
* | Store Git on any DHTShawn O. Pearce2011-05-05123-3/+21717
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | jgit.storage.dht is a storage provider implementation for JGit that permits storing the Git repository in a distributed hashtable, NoSQL system, or other database. The actual underlying storage system is undefined, and can be plugged in by implementing 7 small interfaces: * Database * RepositoryIndexTable * RepositoryTable * RefTable * ChunkTable * ObjectIndexTable * WriteBuffer The storage provider interface tries to assume very little about the underlying storage system, and requires only three key features: * key -> value lookup (a hashtable is suitable) * atomic updates on single rows * asynchronous operations (Java's ExecutorService is easy to use) Most NoSQL database products offer all 3 of these features in their clients, and so does any decent network based cache system like the open source memcache product. Relying only on key equality for data retrevial makes it simple for the storage engine to distribute across multiple machines. Traditional SQL systems could also be used with a JDBC based spi implementation. Before submitting this change I have implemented six storage systems for the spi layer: * Apache HBase[1] * Apache Cassandra[2] * Google Bigtable[3] * an in-memory implementation for unit testing * a JDBC implementation for SQL * a generic cache provider that can ride on top of memcache All six systems came in with an spi layer around 1000 lines of code to implement the above 7 interfaces. This is a huge reduction in size compared to prior attempts to implement a new JGit storage layer. As this package shows, a complete JGit storage implementation is more than 17,000 lines of fairly complex code. A simple cache is provided in storage.dht.spi.cache. Implementers can use CacheDatabase to wrap any other type of Database and perform fast reads against a network based cache service, such as the open source memcached[4]. An implementation of CacheService must be provided to glue this spi onto the network cache. [1] https://github.com/spearce/jgit_hbase [2] https://github.com/spearce/jgit_cassandra [3] http://labs.google.com/papers/bigtable.html [4] http://memcached.org/ Change-Id: I0aa4072781f5ccc019ca421c036adff2c40c4295 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | Add org.eclipse.jgit.ant to parent pom.xmlChris Aniszczyk2011-05-051-1/+2
|/ | | | | | Bug: 321237 Change-Id: Idd106f2700740db07f41f6d31f50d6b2a30fa732 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge "Fix error handling in RepositoryFilter"Chris Aniszczyk2011-05-051-3/+6
|\
| * Fix error handling in RepositoryFilterShawn O. Pearce2011-05-041-3/+6
| | | | | | | | | | | | | | | | | | | | 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>
* | Add pom.xml to org.eclipse.jgit.antChris Aniszczyk2011-05-051-0/+114
|/ | | | | | | | Also-by: Ketan Padegaonkar <KetanPadegaonkar@gmail.com> Bug: 321237 CQ: 5111 Change-Id: Ie93b85df76fcb5c077b93f01ed1959eaeffb3c20 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Present reset in the reflog like C Git does nowadaysRobin Rosenberg2011-05-041-2/+1
| | | | | | | Confirmed for v1.7.4.1 Change-Id: I4f1c3cd6b2cf543be213f061afb94223062dde51 Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
* Implemented merge for parallel delete/modificationBernard Leach2011-05-033-1/+87
| | | | | | | | | 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>
* Add better exception handling for the git-init ant taskKetan Padegaonkar2011-05-031-3/+8
| | | | | Change-Id: Ia935720fc9c09b427abb84be038c4dc74610850c Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Merge "Attempt to make git prefix detection more reliable"Chris Aniszczyk2011-05-031-3/+55
|\
| * Attempt to make git prefix detection more reliableRobin Rosenberg2011-05-021-3/+55
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge "Add path support to checkout command."Stefan Lay2011-05-032-3/+235
|\ \
| * | Add path support to checkout command.Kevin Sawicki2011-05-032-3/+235
| |/ | | | | | | | | Change-Id: I89e8edfc6dd87d5bf8fd08704df2432720084330 Signed-off-by: Kevin Sawicki <kevin@github.com>
* | Qualify post-0.12 buildsMatthias Sohn2011-05-0331-201/+201
| | | | | | | | | | Change-Id: I70fe2671321efb5c3d271121ce00299533d1b388 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Merge branch 'stable-0.12'Matthias Sohn2011-05-0330-199/+199
|\ \ | | | | | | | | | | | | * stable-0.12: JGit 0.12.1
| * | JGit 0.12.1v0.12.1stable-0.12Matthias Sohn2011-05-0230-199/+199
| | | | | | | | | | | | | | | Change-Id: Ia6e58b466fa3ef7ddd61b40f2ad44141fe8786c4 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | Add better javadoc to the git-init ant taskKetan Padegaonkar2011-05-021-2/+12
| | | | | | | | | | | | | | | Change-Id: If41e5a9ab37533cce10ea1c1925d7bd3ece586ea Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* | | Add GitCheckoutTask to org.eclipse.jgit.antKetan Padegaonkar2011-05-022-1/+128
| | | | | | | | | | | | | | | | | | Bug: 321237 Change-Id: I5c4753f7b99d0be002b32e403f5dfff9353c57b0 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* | | Add GitCloneTask to org.eclipse.jgit.antKetan Padegaonkar2011-05-022-1/+119
| | | | | | | | | | | | | | | | | | Bug: 321237 Change-Id: I605da8150048158d918c577ef8ca4f6edbed0133 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* | | Add org.eclipse.jgit.antKetan Padegaonkar2011-05-0210-0/+156
| |/ |/| | | | | | | | | | | | | Adds the initial project and a GitInitTask. Bug: 321237 Change-Id: I06b94e0b42b20ecf51f86845e47d49913f3513c4 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* | Merge branch 'stable-0.12'Shawn O. Pearce2011-04-214-17/+101
|\| | | | | | | | | * stable-0.12: Implement the no-done capability
| * Implement the no-done capabilityShawn O. Pearce2011-04-214-17/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge branch 'stable-0.12'Shawn O. Pearce2011-04-218-136/+73
|\| | | | | | | | | | | | | * stable-0.12: Fix sorting of names in RefDirectory Make running static checks configurable in maven build Add constants for gerrit change id configuration
| * Fix sorting of names in RefDirectoryShawn O. Pearce2011-04-212-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Merge "Make running static checks configurable in maven build" into stable-0.12Shawn Pearce2011-04-185-136/+52
| |\
| | * Make running static checks configurable in maven buildMatthias Sohn2011-04-185-136/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Add constants for gerrit change id configurationStefan Lay2011-04-141-0/+6
| |/ | | | | | | | | | | Change-Id: I22fc46dff6cc5dfd975f6e82161d265781778cde Signed-off-by: Stefan Lay <stefan.lay@sap.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | Enabled unit tests in HttpClientTestsChristian Halstrick2011-04-211-0/+13
| | | | | | | | | | Change-Id: I92ae117f1dcfc569e27c66c191e090a60fbe2bb6 Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
* | Added support to IndexDiff to return information on conflictsBernard Leach2011-04-192-0/+63
|/ | | | | Change-Id: I43c13eb72a44f80135c93525fce0c0280b0e64a2 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Update eclipse IP log for 0.12Matthias Sohn2011-04-131-0/+72
| | | | | Change-Id: I8f2ce63e039d5baabc1533477128470696a36ced Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Hande latin-1 encodingLeonard Broman2011-04-112-1/+109
| | | | | | Bug: 342259 Change-Id: Ie285b8819b5ea6f9892ebafc4ebbd9c6d091d1fe Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Add NotesCommand to the JGit APIChris Aniszczyk2011-04-106-0/+719
| | | | | | Bug: 334765 Change-Id: Ie0fb79671e7a741eb85651f507b8ade930bfcc20 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* Merge "Create all test data in trash folder"Chris Aniszczyk2011-04-092-5/+20
|\
| * Create all test data in trash folderMatthias Sohn2011-04-102-5/+20
| | | | | | | | | | | | | | | | | | 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>
* | Update to use Tycho 0.11Matthias Sohn2011-04-091-1/+1
|/ | | | | Change-Id: I1f9053fe2af39898851b41e1e86c9320ab5594ca Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Add "Conflicts" section to merge message on conflictRobin Stocker2011-04-062-3/+43
| | | | | | | | 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>
* Refactor reading and writing heads in RepositoryRobin Stocker2011-04-061-40/+47
| | | | | | | | | 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>
* Add CHERRY_PICK_HEAD for cherry-pick conflictsRobin Stocker2011-04-0610-10/+203
| | | | | | | | | | | | | | | | | | | 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>
* Add parameters for timeout and branches to cloneStefan Lay2011-04-062-0/+88
| | | | | | | | | | | 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>
* Try to checkout branch after cloningStefan Lay2011-04-063-14/+57
| | | | | | | | | 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>
* Fix DirCache.isModified()Philipp Thun2011-04-041-1/+1
| | | | | | | | | | | | | 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>
* [findbugs] Use explicit initializationMatthias Sohn2011-04-041-1/+1
| | | | | | | | Findbugs doesn't like using implicitly initialized field in initializer. Change-Id: Ic1ff9011813cc02950a71df587f31ed9f8415b49 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* [findbugs] Make mutable static field finalMatthias Sohn2011-04-031-1/+1
| | | | Change-Id: I310bc2093571bf22a58106f09706cc3eb43a2453 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge "Make DeltaBaseCache per-ObjectReader"Chris Aniszczyk2011-04-023-41/+42
|\
| * Make DeltaBaseCache per-ObjectReaderShawn O. Pearce2011-04-013-41/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge "Fix ReceivePack connectivity validation with alternates"Chris Aniszczyk2011-04-022-24/+29
|\ \