aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Adds DiffEntry.scan(TreeWalk, boolean) methodDariusz Luksza2011-08-175-2/+341
| | | | | | | | | | | | | | | Adds method into DiffEntry class that allows to specify whether changed trees are included in scanning result list. By default changed trees aren't added, but in some cases having changed tree would be useful. Also adds check for tree count in TreeWalk and when it is different from two it will thrown an IllegalArgumentException. This change is required by egit I7ddb21e7ff54333dd6d7ace3209bbcf83da2b219 Change-Id: I5a680a73e1cffa18ade3402cc86008f46c1da1f1 Signed-off-by: Dariusz Luksza <dariusz@luksza.org> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* Merge "Add DiffCommand to JGit API"Christian Halstrick2011-08-163-0/+299
|\
| * Add DiffCommand to JGit APITomasz Zarna2011-08-163-0/+299
| | | | | | | | | | Bug: 334766 Change-Id: Iea74c599a956a058608e424d0274f879bc2f064a
* | Merge changes I1ca7acb4,Ia41b7a1c,I33b65286,Ie2823724,I6b65bfb4Shawn O. Pearce2011-08-1411-92/+193
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | * changes: DHT: Change DhtReadher caches to be dynamic by workload DHT: Use a proper HashMap for RecentChunk lookups DHT: Always have at least one recent chunk in DhtReader DHT: Fix NPE during prefetch DHT: Drop leading hash digits from row keys
| * | DHT: Change DhtReadher caches to be dynamic by workloadShawn O. Pearce2011-06-096-54/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of fixing the prefetch queue and recent chunk queue as different sizes, allow these to share the same limit but be scaled based on the work being performed. During walks about 20% of the space will be given to the prefetcher, and the other 80% will be used by the recent chunks cache. This should improve cases where there is bad locality between chunks. During writing of a pack stream, 90-100% of the space should be made available to the prefetcher, as the prefetch plan is usually very accurate about the order chunks will be needed in. Change-Id: I1ca7acb4518e66eb9d4138fb753df38e7254704d Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | DHT: Use a proper HashMap for RecentChunk lookupsShawn O. Pearce2011-06-091-12/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A linear search is somewhat acceptable for only 4 recent chunks, but a HashMap based lookup would be better. The table will have 16 slots by default and given the hashCode() of ChunkKey is derived from the SHA-1 of the chunk, each chunk will fall into its own bucket within the table and thus evaluate only 1 entry during lookup instead of 4. Some users may also want to devote more memory to the recent chunks, in which case expanding this list to a longer length will help to reduce chunk faults, but would increase search time. Using a HashMap will help this code to scale to larger sizes better. Change-Id: Ia41b7a1cc69ad27b85749e3b74cbf8d0aa338044 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | DHT: Always have at least one recent chunk in DhtReaderShawn O. Pearce2011-06-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RecentChunks cache assumes there is always at least one recent chunk in the maxSize that it receives from the DhtReaderOptions. Ensure that is true by requiring the size to be at least 1. Running with 0 recent chunk cache is very a bad idea, often during commit walking the parents of a commit will be found on the same chunk as the commit that was just accessed. In these cases its a good idea to keep that last chunk around so the parents can be quickly accessed. Change-Id: I33b65286e8a4cbf6ef4ced28c547837f173e065d Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | DHT: Fix NPE during prefetchShawn O. Pearce2011-06-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Prefetcher may have loaded a chunk that is a fragment, if the DhtReader is scanning the Prefetcher's chunks for a particular object fragment chunks will be missing the index and NPE during the findOffset() call into the index itself. Change-Id: Ie2823724c289f745655076c5209acec32361a1ea Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | DHT: Drop leading hash digits from row keysShawn O. Pearce2011-06-094-27/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally I put the first two digits of the object SHA-1 into the start of a row key to try and spread the load of objects around a DHT service. Unfortunately this tends to not work as well as I had hoped. Servers reading a repository need to contact every node in a DHT cluster if the cluster tries to evenly distribute the object rows. This is a lot of connections, especially if the cluster has many backend storage servers. If the library has an open connection limit (possibly due to JVM file descriptor limitations) it may need to open and close a lot of connections to access a repository, rather than being able to reuse the same connection to a handful of backend servers. This results in a lot of connection thrashing for some DHT type databases, and is inefficient. Some DHTs are able to operate even if part of the database space is currently unavailable. For example, a DHT service might assign some section of the key space to a node, and then fail that section over to another node when the primary is noticed as being offline. During that failover period that section of the key space is not available, but other sections hosted by other backends are still ready for service. Spreading keys all over the cluster makes it likely that any single backend being temporarily down means the entire cluster is down, rather than only some. This is a massive schema change, but it should improve relability and performance for any DHT system. Change-Id: I6b65bfb4c14b6f7bd323c2bd0638b49d429245be Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | Revert "PackWriter: Do not delta compress already packed objects"Shawn O. Pearce2011-08-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 67b064fc9fa7418fab83957b4f4e4baf9c6e08be. The "tiny optimization" introduced by 67b0 turns out to have a big savings on wall-clock time when the object store is very slow (e.g. the DHT support in JGit), but comes with a much bigger penalty in space used by the output stream. CGit packed with 67b0 enabled is 7 MiB larger than it should be (36 MiB rather than 28/29 MiB). The much bigger Linux kernel repository gained over 200 MiB, though some of this may have been caused by a smaller window setting. Revert this patch as PackWriter should be optimizing for space used rather than time spent, since its primary use is network transfer, and that isn't free. Change-Id: I7413a9ef89762208159b4a1adc5a22a4c9245611 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | Speed up ObjectWalk by 6235 objects/secShawn O. Pearce2011-08-132-114/+369
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "Counting objects" phase of packing is the most time consuming part for any server providing access to Git repositories. Scanning through the entire project history, including every revision of every tree that has ever existed is expensive and takes an incredible amount of CPU time. Inline the tree parsing logic, unroll a number of loops, and setup to better handle the common case of seeing another occurrence of an object that was already marked SEEN. This change boosts the "Counting objects" phase when JGit is acting as a server and is packing the linux-2.6 repository for its client. Compared to CGit on the same hardware, a JGit daemon server is now 21883 objects/sec faster: CGit: Counted 2058062 objects in 38981 ms at 52796.54 objects/sec Counted 2058062 objects in 38920 ms at 52879.29 objects/sec Counted 2058062 objects in 39059 ms at 52691.11 objects/sec JGit (before): Counted 2058062 objects in 31529 ms at 65275.21 objects/sec Counted 2058062 objects in 30359 ms at 67790.84 objects/sec Counted 2058062 objects in 30033 ms at 68526.69 objects/sec JGit (this commit): Counted 2058062 objects in 28726 ms at 71644.57 objects/sec Counted 2058062 objects in 27652 ms at 74427.24 objects/sec Counted 2058062 objects in 27528 ms at 74762.50 objects/sec Above the first run was a "cold server". For JGit the JVM had just started up with `jgit daemon`, and for CGit we hadn't touched the repository "recently" (but it was certainly in kernel buffer cache). The second and third runs were against the running JGit JVM, allowing timing tests to better reflect the benefits of JGit's pack and index caching, as well as any optimizations the JIT may have performed. The timings are fair. CGit is opening, checking and mmap'ing both the pack and index during the timer. JGit is opening, checking and malloc+read'ing the pack and index data into its Java heap during the timer. Both processes are walking the same graph space, and are computing the "path hash" necessary to sort objects in the object table for delta compression. Since this commit only impacts the "Counting objects" phase, delta compression was obviously not included in the timings and JGit may still be performing delta compression slower than CGit, resulting in an overall slower server experience for clients. Change-Id: Ieb184bfaed8475d6960a494b1f3c870e0382164a Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | Merge "PackWriter: Only search for base objects on thin packs"Shawn O. Pearce2011-08-131-13/+22
|\ \ \
| * | | PackWriter: Only search for base objects on thin packsShawn O. Pearce2011-08-081-13/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A non-thin pack does not need to worry about preferred bases, the pack will be self-contained and all required delta base objects will appear within the pack itself. Obtaining the path buffer and length from the ObjectWalk to build the preferred base table is "expensive", so avoid the cost unless a thin pack is being constructed. Change-Id: I16e30cd864f4189d4304e7957a7cd5bdb9e84528 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | | blame: Implement blame on the command lineShawn O. Pearce2011-08-136-0/+371
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Command line options match the C implementation of `git blame` as closely as possible, making for a pretty complete tool. Change-Id: Ie1bd172ad9de586c3b60f0ee4a77a8f047364882 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | | Merge "Ignore missing MERGE_MSG when deleting MERGE_MSG"Shawn Pearce2011-08-131-1/+1
|\ \ \ \
| * | | | Ignore missing MERGE_MSG when deleting MERGE_MSGJens Baumgart2011-07-191-1/+1
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Repository.writeMergeCommitMsg(null) no longer fails if the MERGE_MSG file is missing. This was done to avoid CommitCommand to fail in case of a missing MERGE_MSG file. Bug: 352243 Change-Id: Iddf43533d133f8f22199ed6e2393a552670e7d1f Signed-off-by: Jens Baumgart <jens.baumgart@sap.com>
* | | | Merge "Correct comment on CloneCommand.setRemote method."Shawn Pearce2011-08-131-1/+6
|\ \ \ \
| * | | | Correct comment on CloneCommand.setRemote method.Kevin Sawicki2011-08-051-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous comment stated that the value set was used to keep track of the branch in the remote repository which was incorrect. Updated the method comment to match the format used for the PushCommand.setRemote and FetchCommand.setRemote methods. Change-Id: I11b81eb3125958af29247b485da56fd88c3bfdf5 Signed-off-by: Kevin Sawicki <kevin@github.com>
* | | | | Merge "Fix jgit rev-list --objects master"Shawn O. Pearce2011-08-131-3/+5
|\ \ \ \ \ | | |_|/ / | |/| | |
| * | | | Fix jgit rev-list --objects masterShawn O. Pearce2011-08-081-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This flag was not being honored due to a bug in createWalk(). argWalk is always non-null when there are commits passed in on the command line. If --objects was specified, always make a new ObjectWalk for the actual execution. Change-Id: I6e1a1636f2634605d86671a83766cc1c42939821 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | | | Merge "Fix reading of ref names containing characters that sort before /"Robin Rosenberg2011-08-102-2/+39
|\ \ \ \ \
| * | | | | Fix reading of ref names containing characters that sort before /Robin Rosenberg2011-07-222-2/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A set of ref names like ('a/b' and 'a+b') would cause the RefDirectory to think that the set of refs have changed because it traversed the 'a' directory in the subtree before looking at 'a+b', but it then compared with the know refs which are sorted with 'a+b' first. Fix this by traversing the refs tree in another order. Treat a directory as if they ends with a '/' before deciding on the order to traverse the refs tree. Bug: 348834 Change-Id: I23377f8df00c7252bf27dbcfba5da193c5403917 Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
* | | | | | Merge "Fix offset64 creation for objects at 2 GiB"Robin Rosenberg2011-08-101-3/+6
|\ \ \ \ \ \
| * | | | | | Fix offset64 creation for objects at 2 GiBShawn O. Pearce2011-08-081-3/+6
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The offset32 format is used for objects <= 2^31-1, while the offset64 format is used for all other objects. This condition was missing the = needed to ensure an object placed exactly at 2^31 would have its 64 bit offset in the index. Change-Id: I293fac0e829c9baa12cb59411dffde666051d6c5 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* / | | | | Add isSuccessful to MergeStatus, RebaseResult.Status and PullResultRobin Stocker2011-08-093-7/+88
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useful when the result needs to be displayed and it's only of interest if the operation was successful or not (in egit, it could be used in MultiPullResultDialog). Change-Id: Icfc9a9c76763f8a777087a1262c8d6ad251a9068 Signed-off-by: Robin Stocker <robin@nibor.org> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | | Merge changes I58110f17,I440baa64,Ic77dcac5Shawn O. Pearce2011-08-052-11/+32
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | * changes: PackWriter: Skip progress messages on fast operations IndexPack: Defer the "Resolving deltas" progress meter IndexPack: Fix "Resolving deltas" progress meter
| * | | | PackWriter: Skip progress messages on fast operationsShawn O. Pearce2011-07-281-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the "Finding sources" phase will complete in <1 second with no delta compression enabled, don't bother showing the progress meter for this phase. Small repositories on the local filesystem tend to rip through this phase always subsecond and the ProgressMonitor display can actually slow the operation down. If delta compression is enabled, there are two phases that may run very quickly. Set the timer to 500 milliseconds instead, reducing the risk that the user has to wait longer than 1 second before any sort of output from the packer occurs. Change-Id: I58110f17e2a5ffa0134f9768b94804d16bbb8399 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | | IndexPack: Defer the "Resolving deltas" progress meterShawn O. Pearce2011-07-281-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If delta resolution completes in < 1000 milliseconds, don't bother showing the progress meter. This is actually very common for a Gerrit Code Review server, where the client is probably sending 1 commit and only a few trees/blobs modified... and the base objects are hot in the process buffer cache. The 1000 millisecond delay is just a guess at a reasonable time to wait. Change-Id: I440baa64ab0dfa21be61deae8dcd3ca061bed8ce Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | | IndexPack: Fix "Resolving deltas" progress meterShawn O. Pearce2011-07-281-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This progress meter never reached 100% as it did not update while resolving the external bases in thin packs. Instead of updating in batches at the top level, update once per delta that is resolved. The batching progress meter type should smooth out the frequent updates to an update rate that is more reasonable to send to the UI, while also ensuring a successful pack parse always reaches 100% deltas resolved. Change-Id: Ic77dcac542cfa97213a6b0194708f9d3c256d223 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | | | Reuse ObjectReader for all objects touched during checkoutMatthias Sohn2011-08-023-65/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 349361 Change-Id: I61ffcb7694eb8b99ebaf4d0d0acd63e0ee91bcb3 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
* | | | | Don't hard-code section names, use ConfigConstants insteadTomasz Zarna2011-08-021-1/+2
|/ / / / | | | | | | | | | | | | Change-Id: Ie2dde43da491fa27b25a2ad8014866d77d484b24 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | Make PackReverseIndex a public structureShawn O. Pearce2011-07-281-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Repository inspection tools may find building a reverse index on a pack useful, as they can then locate an object by offset. As both C Git and JGit sometimes produce error messages with the offset rather than the SHA-1, it may be useful to expose this type. Change-Id: I487bf32e85a8985cf8ab382d4c82fcbe1fc7da6c
* | | | Make lookup methods on PackIndex publicShawn O. Pearce2011-07-283-25/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There isn't a good reason to hide all of these as package-private. Make them public so applications can inspect pack files. Change-Id: Ia418daf65d63e9e015b8dafdf3d06a1ed91d190b
* | | | PackIndex: Support reading from any InputStreamShawn O. Pearce2011-07-281-12/+36
| | | | | | | | | | | | | | | | | | | | Change-Id: If065a9e33a8f3a03e9758eb7612af2fc460c87e5 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | | Add String form of PackInvalidException constructorShawn O. Pearce2011-07-281-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This way the path can be supplied as a string, without first converting to a java.io.File. Change-Id: I54d9bb9867556cd98b378c0762054b31497459cb
* | | | Add copy constructor to PackConfigShawn O. Pearce2011-07-271-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some embeddings of UploadPack (e.g. Gerrit Code Review) set their own PackConfig from a server-wide configuration, overriding any JGit defaults or settings that may exist at the local repository level. Make a copy constructor form of PackConfig so this server-wide configuration object can be copied and then merged with repository specific configuration data. Change-Id: I4463c95aeaf7d6536c3ab132dec9c50ee528d9e0 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | | Don't close ObjectDatabase after parsing packShawn O. Pearce2011-07-271-1/+0
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The cached object databases should not require a close to release their cached resources. Most object databases just return their own reference for newCachedDatabase(), so a close() here kills the real database's internal caches, and possibly underlying files, resulting in poor performance for the callers of PackParser like ReceivePack or FetchProcess trying to then go look up objects that were just parsed, or that current references point to. Change-Id: Ia4a239093866e5b9faf82744f729fb73f4373f1a Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | Merge doesn't remove empty foldersTomasz Zarna2011-07-132-1/+42
| | | | | | | | | | | | | | | Bug: 349848 Change-Id: I2aa5a1a7259889428e4845046b900538262f3c84
* | | Add support for reseting on directoriesDariusz Luksza2011-07-122-7/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reset command should works recursively and allows reset all changed files in given directory. Bug: 348524 Change-Id: I441db34f226be36548c61cef77958995971498de Signed-off-by: Dariusz Luksza <dariusz@luksza.org> Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* | | Fixed creation of branch from a tagSasa Zivkov2011-07-122-1/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Creation of a branch X from an annotated tag, as the starting point, resulted into .git/refs/heads/X containing the ID of the annotated tag instead of the ID of the tagged commit. This fix peels the tag ref before using it as the starting point for the newly created branch. Bug: 340836 Change-Id: I01c7325770ecb37f5bf8ddb2a22f802466524f24 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* | | Merge "Merge in JGit CLI is missing break statement"Chris Aniszczyk2011-07-121-0/+1
|\ \ \
| * | | Merge in JGit CLI is missing break statementTomasz Zarna2011-07-121-0/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: I2095601b848e66e54d5dac828ef6ed1a4c5ae66c Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
* | | | Cleanup directories leftover by test.Adrian Goerler2011-07-074-49/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the temporary file management from superclass. Change-Id: I3042951dc21860b4b85dd72a6bf41ee7cfe2aba4 Signed-off-by: Adrian Goerler <adrian.goerler@sap.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | Cloning should fail when destination directory exists and is not emptyAdrian Goerler2011-07-065-0/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When trying to clone into a folder that already contains a cloned repository native git will fail with a message "fatal: destination path 'folder' already exists and is not an empty directory.". Now JGit will also fail in this situation throwing a JGitInternalException. The test case was provided by Tomasz Zarna. Bug: 347852 Change-Id: If9e9919a5f92d13cf038dc470c21ee5967322dac Also-by: Tomasz Zarna <Tomasz.Zarna@pl.ibm.com> Signed-off-by: Adrian Goerler <adrian.goerler@sap.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
* | | | Do not catch Exception in test casesStefan Lay2011-07-062-153/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Exception handling is already done by JUnit. Change-Id: Ia25d768c311d384d728f281aced92f598e5e2041 Signed-off-by: Stefan Lay <stefan.lay@sap.com>
* | | | Merge "Cleanup curly braces"Christian Halstrick2011-07-061-16/+9
|\ \ \ \
| * | | | Cleanup curly bracesAdrian Goerler2011-07-061-16/+9
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I2de6439a3ad951a99d89e4aee02006c745d16510 Signed-off-by: Adrian Goerler <adrian.goerler@sap.com>
* | | | | Merge "Add lookup to remote config if the refSpec is not explicitly set"Christian Halstrick2011-07-062-0/+77
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Add lookup to remote config if the refSpec is not explicitly setStefan Lay2011-07-042-0/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If no refSpec is explicitly set, the PushCommand should first check the remote config and then as a fallback use the current behavior. Change-Id: I2bc648abc517b1d01b2de15d383423ace2081e72 Signed-off-by: Stefan Lay <stefan.lay@sap.com>
* | | | | Merge "Enable PlotWalk to show additional refs"Shawn Pearce2011-07-011-0/+23
|\ \ \ \ \