Skip to main content
AgeCommit message (Collapse)AuthorFilesLines
2010-08-08Hide Maven target directories from EclipseRobin Rosenberg11-0/+121
Change-Id: I64f12a35423a90ced9c9bc83f6869d8ed766dd35 Signed-off-by: Robin Rosenberg <>
2010-08-06Merge branch 'rename-bug'Shawn O. Pearce2-6/+9
* rename-bug: Fix ArrayIndexOutOfBounds on non-square exact rename matrix Conflicts: org.eclipse.jgit/src/org/eclipse/jgit/diff/ Change-Id: Ie0b8dd3e1ec174f79ba39dc4706bb0694cc8be29
2010-08-06Fix ArrayIndexOutOfBounds on non-square exact rename matrixShawn O. Pearce2-6/+9
If the exact rename matrix for a particular ObjectId isn't square we crashed with an ArrayIndexOutOfBoundsException because the matrix entries were encoded backwards. The encode function accepts the source (aka deleted) index first, not second. Add a unit test to cover this non-square case to ensure we don't have this regression in the future. Change-Id: I5b005e5093e1f00de2e3ec104e27ab6820203566 Signed-off-by: Shawn O. Pearce <>
2010-08-05Merge changes I39bfefee,I47795987,I70d120fb,I58cc5e01,I96bee7b9Shawn O. Pearce17-516/+974
* changes: Enable configuration of non-standard pack settings Pass PackConfig down to PackWriter when packing Simplify UploadPack use of options during writing Move PackWriter configuration to PackConfig Allow PackWriter callers to manage the thread pool
2010-08-05Merge "Remove static progress task names from PackWriter"Shawn O. Pearce1-30/+6
2010-08-05Merge "Add "all" parameter to the commit Command"Chris Aniszczyk2-0/+63
2010-08-05Merge "Add the parameter "update" to the Add command"Chris Aniszczyk3-84/+214
2010-08-05Merge "add fsTick() to RepositoryTestCase"Chris Aniszczyk2-32/+36
2010-08-05Merge "add more control to indexState() return-value"Chris Aniszczyk2-52/+84
2010-08-05Allow to replace existing Change-IdStefan Lay2-3/+89
It is useful to be able to replace an existing Change-Id in the message, for example if the user decides not to amend the previous commit. Bug: 321188 Change-Id: I594e7f9efd0c57d794d2bd26d55ec45f4e6a47fd Signed-off-by: Stefan Lay <> Signed-off-by: Chris Aniszczyk <>
2010-08-04Rename getOldName,getNewName to getOldPath,getNewPathShawn O. Pearce14-142/+142
TreeWalk calls this value "path", while "name" is the stuff after the last slash. FileHeader should do the same thing to be consistent. Rename getOldName to getOldPath and getNewName to getNewPath. Bug: 318526 Change-Id: Ib2e372ad4426402d37939b48d8f233154cc637da Signed-off-by: Shawn O. Pearce <>
2010-08-04Merge branch 'js/diff'Shawn O. Pearce2-1/+17
* js/diff: Fixed bug in scoring mechanism for rename detection
2010-08-04Fixed bug in scoring mechanism for rename detectionJeff Schumacher2-1/+17
A bug in rename detection would cause file scores to be wrong. The bug was due to the way rename detection would judge the similarity between files. If file A has three lines containing 'foo', and file B has 5 lines containing 'foo', the rename detection phase should record that A and B have three lines in common (the minimum of the number of times that line appears in both files). Instead, it would choose the the number of times the line appeared in the destination file, in this case file B. I fixed the bug by having the SimilarityIndex instead choose the minimum number, as it should. I also added a test case to verify that the bug had been fixed. Change-Id: Ic75272a2d6e512a361f88eec91e1b8a7c2298d6b
2010-08-04Add gitignore support to IndexDiff and use TreeWalkJens Baumgart2-62/+147
IndexDiff was re-implemented and now uses TreeWalk instead of GitIndex. Additionally, gitignore support and retrieval of untracked files was added. Change-Id: Ie6a8e04833c61d44c668c906b161202b200bb509 Signed-off-by: Jens Baumgart <> Signed-off-by: Chris Aniszczyk <>
2010-08-04Add "all" parameter to the commit CommandStefan Lay2-0/+63
When the add parameter is set all modified and deleted files are staged prior to commit. Change-Id: Id23bc25730fcdd151386cd495a7cdc0935cbc00b Signed-off-by: Stefan Lay <>
2010-08-04Add the parameter "update" to the Add commandStefan Lay3-84/+214
This change is mainly done for a subsequent commit which will introduce the "all" parameter to the Commit command. Bug: 318439 Change-Id: I85a8a76097d0197ef689a289288ba82addb92fc9 Signed-off-by: Stefan Lay <>
2010-08-04add fsTick() to RepositoryTestCaseChristian Halstrick2-32/+36
An utility method which was in RacyGitTests has been moved to RepositoryTestCase. Also the javadoc has been improved. This method allows to wait long enough until the filesystem-timer has advanced. This is useful when it has to be guaranteed that two files modifications have different modification timestamps. Change-Id: I2ebd7cd7818feba6acffb3f835101d8fd281bd5a Signed-off-by: Christian Halstrick <>
2010-08-04add more control to indexState() return-valueChristian Halstrick2-52/+84
The indexState() method was enhanced to be more configurable. A bitmask controls which of the optional parts are reported. All data about the worktree is not reported anymore by this method which makes the interface more cleaner for users wanting to test only the state of the index. This was done because the previous version reported always so much additional data that it was hard to write good assertions against it. Change-Id: I9b481e97f8fcf3fcdbb785b801dc07bfa85dcc33 Signed-off-by: Christian Halstrick <> Signed-off-by: Stefan Lay <>
2010-08-03Merge "Fixed FileTreeIteratorWithTimeControl"Christian Halstrick1-2/+4
2010-08-02Allow version builtin to run without git repositoryBenjamin Muskalla1-0/+5
The version builtin should be able to run without a git directory to call it from wherever you want. Change-Id: I1a3bce662e6788b860a275ee50315af8d5cc094a Signed-off-by: Benjamin Muskalla <>
2010-07-30Fixed FileTreeIteratorWithTimeControlStefan Lay1-2/+4
getEntryLastModified returned wrong values for timestamps on boundaries. Change-Id: I0457ff030946fda7ecc70671bc65db02a8c206ee Signed-off-by: Stefan Lay <>
2010-07-29Make use of Repository.writeMerge...()Christian Halstrick1-6/+3
The CommitCommand should not use to delete MERGE_HEAD and MERGE_MSG files since Repository already has utility methods for that. Change-Id: If66a419349b95510e5b5c2237a91f06c1d5ba0d4 Signed-off-by: Christian Halstrick <>
2010-07-28Remove use of SortedSet.floor()Shawn O. Pearce1-3/+4
Its only available in Java 6, and JGit still supports Java 5. Change-Id: I6c8fac06106ffe20ac8b4b595f34e027f2d29cc2 Signed-off-by: Shawn O. Pearce <>
2010-07-28Merge "Fix tag sorting in PlotWalk"Christian Halstrick2-14/+17
2010-07-28Add tests for racy git / Index state encodingChristian Halstrick3-0/+414
In order to test racy git situations we have to be able to control the last-modification timestamps of the filesystem. Since we already access the modification timestamps of files through an abstraction (the WorkingTreeIterator) I add a new implementation of this iterator which allows to map timestamp-ranges to single constant timestamps. For users of this iterator it looks like all files in that range have been modified at exactly the same time. With the help of this iterator a test has been writting which checkes for racy git handling (smudging, unsmudging, dirty-detection). Additionally add a method to RepositoryTestCase which encodes the current index state in one String. This should include info about pathes, file/index modtime, smudgeState, clean-state. Make sure timestamps are presented in a way that it is easy to write assertions against this strings (no concrete milliseconds but t0,t1,...). These two topics depend circulary on each other: thats why they have been squashed in one commit. Change-Id: I115c3f2f20fca9b481830bdc6b9d1ade2c3abdcf Signed-off-by: Christian Halstrick <>
2010-07-28Enable configuration of non-standard pack settingsShawn O. Pearce1-0/+6
For daemons we might want to disable delta compression entirely, or in some strange case an administrator might need to turn of delta reuse. Expose these normally internal pack settings through the pack configuration section. Change-Id: I39bfefee8384c864cc04ffac724f197240c8a11a Signed-off-by: Shawn O. Pearce <>
2010-07-28Pass PackConfig down to PackWriter when packingShawn O. Pearce9-15/+140
When we are creating a pack the higher level application should be able to override the PackConfig used, allowing it to control the number of threads used or how much memory is allocated per writer. Change-Id: I47795987bb0d161d3642082acc2f617d7cb28d8c Signed-off-by: Shawn O. Pearce <>
2010-07-28Simplify UploadPack use of options during writingShawn O. Pearce1-4/+2
We only use these variables once, so just put them at the proper use site and avoid assigning the local variable. The code is a bit shorter and the intent is a little bit more clear. Change-Id: I70d120fb149b612ac93055ea39bc053b8d90a5db Signed-off-by: Shawn O. Pearce <>
2010-07-28Move PackWriter configuration to PackConfigShawn O. Pearce8-500/+668
This refactoring permits applications to configure global per-process settings for all packing and easily pass it through to per-request PackWriters, ensuring that the process configuration overrides the repository specific settings. For example this might help in a daemon environment where the server wants to cap the resources used to serve a dynamic upload pack request, even though the repository's own pack.* settings might be configured to be more aggressive. This allows fast but less bandwidth efficient serving of clients, while still retaining good compression through a cron managed `git gc`. Change-Id: I58cc5e01b48924b1a99f79aa96c8150cdfc50846 Signed-off-by: Shawn O. Pearce <>
2010-07-28Meaningful error message when trying to check-out submodulesMathias Kinzler3-0/+6
Currently, a NullPointerException occurs in this case. We should instead throw a more meaningful Exception with a proper message. This is a very "stupid" implementation which simply checks for the existence of a ".gitmodules" file. Bug: 300731 Bug: 306765 Bug: 308452 Bug: 314853 Change-Id: I155aa340a85cbc5d7d60da31dba199fc30689b67 Signed-off-by: Mathias Kinzler <>
2010-07-28Fix unit tests under windowsChristian Halstrick1-1/+1
the following tests fail under windows because certain inputstreams are not closed and files cannot be deleted because of that. The main problem I found is UnpackedObject.InflaterInputStream.close(). This method may throw exceptions found by checkValidEndOfStream() but doesn't call super.close() before leaving. It is not clear to me which resources a close() method should release before it throws an exception. But those reseources which are not published to the outside and which therefore cannot be closed by other means have to be closed in all cases. I changed the close() method to call super.close() under all circumstances. failing tests: testStandardFormat_LargeObject_TruncatedZLibStream( testStandardFormat_LargeObject_TrailingGarbage( testPackFormat_SmallObject( Change-Id: Id2e609a29e725aad953ff9bd88af6381df38399d Signed-off-by: Christian Halstrick <>
2010-07-28Fix tag sorting in PlotWalkShawn O. Pearce2-14/+17
By deferring tag sorting until the commit is produced by the walker we can avoid an infinite loop that was triggered by trying to sort tags while allocating a commit. This also avoids needing to look at commits which aren't going to be produced in the result. Bug: 321103 Change-Id: I25acc739db2ec0221a50b72c2d2aa618a9a75f37 Reviewed-by: Mathias Kinzler <> Reviewed-by: Christian Halstrick <> Signed-off-by: Shawn O. Pearce <>
2010-07-28Remove static progress task names from PackWriterShawn O. Pearce1-30/+6
These need to be dynamic based on the current thread's environment at time of execution in order to be properly localized for the end user that will be seeing these messages. Change-Id: I4976f462cfe606edd2761c0e36b2f6b20f63d53c Signed-off-by: Shawn O. Pearce <>
2010-07-28Allow PackWriter callers to manage the thread poolShawn O. Pearce2-24/+185
By permitting the caller of PackWriter to select the Executor it uses for task execution, we give the caller the ability to manage the lifecycle of the thread pool, including reusing it across concurrent pack generators. This is the first step to supporting application thread pools within Daemon or another managed service like Gerrit Code Review. Change-Id: I96bee7b9c30ff9885f2bd261d0b6daaac713b5a4 Signed-off-by: Shawn O. Pearce <>
2010-07-28Teach NameConflictTreeWalk to report DF conflictsChristian Halstrick2-0/+90
Add a method isDirectoryFileConflict() to NameConflictTreeWalk which tells whether the current path is part of a directory/file conflict. Change-Id: Iffcc7090aaec743dd6f3fd1a333cac96c587ae5d Signed-off-by: Christian Halstrick <> Signed-off-by: Shawn O. Pearce <>
2010-07-28Stack Overflow in EGit History View Mathias Kinzler1-2/+3
This is caused by a recursion in PlotWalk.getTags(). As a hotfix, the sort was simply removed. The sort must be re-implemented so that parseAny() is not called again (currently, this happens in the PlotRefComparator). Change-Id: I060d26fda8a75ac803acaf89cfb7d3b4317328f3 Signed-off-by: Mathias Kinzler <> Signed-off-by: Christian Halstrick <>
2010-07-27Break dissimilar file pairs during diffJeff Schumacher6-21/+276
File pairs that are very dissimilar during a diff were not being broken apart into their constituent ADD/DELETE pairs. The leads to sub-optimal rename detection. Take, for example, this situation: A file exists at src/a.txt containing "foo". A user renames src/a.txt to src/b.txt, then adds a new src/a.txt containing "bar". Even though the old a.txt and the new b.txt are identical, the rename detection algorithm would not detect it as a rename since it was already paired in a MODIFY. I added code to split all MODIFYs below a certain score into their constituent ADD/DELETE pairs. This allows situations like the one I described above to be more correctly handled. Change-Id: I22c04b70581f206bbc68c4cd1ee87a1f663b418e Signed-off-by: Shawn O. Pearce <>
2010-07-27Add methods which write MERGE_HEAD and MERGE_MSGChristian Halstrick2-3/+168
Add methods to the Repository class which write into MERGE_HEAD and MERGE_MSG files. Since we have the read methods in the same class this seems to be the right place. Change-Id: I5dd65306ceb06e008fcc71b37ca3a649632ba462 Signed-off-by: Christian Halstrick <> Signed-off-by: Shawn O. Pearce <>
2010-07-27Fix concurrent read / write issue in LockFile on WindowsJens Baumgart25-50/+122
LockFile.commit fails if another thread concurrently reads the base file. The problem is fixed by retrying the rename operation if it fails. Change-Id: I6bb76ea7f2e6e90e3ddc45f9dd4d69bd1b6fa1eb Bug: 308506 Signed-off-by: Jens Baumgart <>
2010-07-27Fix Javadoc warningsRobin Stocker5-17/+16
There were some broken links, incorrect uses of @value, an invalid tag and an outdated comment. Change-Id: I22886bcc869a4b62bd606ebed40669f7b4723664 Signed-off-by: Shawn O. Pearce <>
2010-07-27Make forPath(ObjectReader) variant in TreeWalkShawn O. Pearce1-8/+40
This simplifies the logic for those who already have an ObjectReader on hand want to reuse it to lookup a single path. Change-Id: Ief17d6b2a0674ddb34bbc9f43121b756eae960fb Signed-off-by: Shawn O. Pearce <>
2010-07-26Make StoredConfig an abstraction above FileBasedConfigShawn O. Pearce3-2/+94
This exposes a load and save method, allowing a Repository to denote that it has a persistent configuration of some kind which can be accessed by the application, without needing to know exact details of how its stored . Change-Id: I7c414bc0f975b80f083084ea875eca25c75a07b2 Signed-off-by: Shawn O. Pearce <>
2010-07-22Merge branch 'delta'Shawn O. Pearce243-5615/+14011
* delta: (103 commits) Discard the uncompressed delta as soon as its compressed Honor pack.windowlimit to cap memory usage during packing Honor pack.threads and perform delta search in parallel Cache small deltas during packing Implement delta generation during packing debug-show-packdelta: Dump a pack delta to the console Initial pack format delta generator Add debugging toString() method to ObjectToPack Make ObjectToPack clearReuseAsIs signal available to subclasses Correctly classify the compressing objects phase Refactor ObjectToPack's delta depth setting Configure core.bigFileThreshold into PackWriter Add doNotDelta flag to ObjectToPack Add more configuration options to PackWriter Save object path hash codes during packing Add path hash code to ObjectWalk Add getObjectSize to ObjectReader Allow TemporaryBuffer.Heap to allocate smaller than 8 KiB Define a constant for 127 in DeltaEncoder Cap delta copy instructions at 64k ... Conflicts: org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/ org.eclipse.jgit/resources/org/eclipse/jgit/ org.eclipse.jgit/src/org/eclipse/jgit/ org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ Change-Id: I7c7a05e443a48d32c836173a409ee7d340c70796
2010-07-22Allow client of Add command to set a WorkingTreeIteratorStefan Lay1-3/+17
This is e.g. useful when a client of the AddCommand has additional rules to ignore files. In Eclipse a resource can be set to derived or be excluded by preferences. Change-Id: I6c47e54a1ce26315faf5ed0723298ad2c2db197c Signed-off-by: Stefan Lay <>
2010-07-22Allow for filepattern "." in AddCommandStefan Lay2-1/+25
Enable adding on repository root level. Change-Id: I415b10dc74cc9435578424d9f106c972fd703055 Signed-off-by: Stefan Lay <>
2010-07-22Do not add ignored files in Add commandStefan Lay2-2/+34
Signed-off-by: Stefan Lay <>
2010-07-21Move ignore node handling into WorkingTreeIteratorShawn O. Pearce19-860/+405
The working tree iterator has perfect knowledge of the path structure as well as immediate information about whether or not an ignore file even exists at this level. We can exploit that to simplify the logic and running time for testing ignored file status by pushing all of the checks down into the iterator itself. Change-Id: I22ff534853e8c5672cc5c2d9444aeb14e294070e Signed-off-by: Shawn O. Pearce <> CC: Charley Wang <> CC: Chris Aniszczyk <> CC: Stefan Lay <> CC: Matthias Sohn <>
2010-07-21Merge "Fix concurrent read / write issue in GitIndex on Windows"Shawn Pearce5-4/+48
2010-07-21Fix concurrent read / write issue in GitIndex on WindowsJens Baumgart5-4/+48
GitIndex.write fails if another thread concurrently reads the index file. The problem is fixed by retrying the rename operation if it fails. Bug: 311051 Change-Id: Ib243d2a90adae312712d02521de4834d06804944 Signed-off-by: Jens Baumgart <>
2010-07-20Check for racy git in WorkingTreeIteratorChristian Halstrick1-11/+55
The WorkingTreeIterator has a method to check whether the current file differs from the corresponding index entry. This commit improves this check to also handle racy git situations. See;a=blob;f=Documentation/technical/racy-git.txt;hb=HEAD Change-Id: I3ad0897211dcbb2eac9eebcb19d095a5052fb06b Signed-off-by: Christian Halstrick <> Signed-off-by: Matthias Sohn <>

Back to the top