]> source.dussan.org Git - jgit.git/log
jgit.git
14 years agoRemove gitIgnoreTimestamp from abstract iterator API 54/1154/1
Shawn O. Pearce [Tue, 20 Jul 2010 15:58:14 +0000 (08:58 -0700)]
Remove gitIgnoreTimestamp from abstract iterator API

This never should have been exposed on the top of the
AbstractTreeIterator type hierarchy.  There is no concept of a
timestamp in a canonical tree read from the object database, and
the time in the DirCache isn't what we want here either.

Actually all that we need is to find the files whose names are
".gitignore" and are below the root directory.  We can accomplish
that with a suffix filter, and process them immediately.

Change-Id: Ib09cbf81a9e038452ce491385c65498312e2916b
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
CC: Charley Wang <chwang@redhat.com>
CC: Chris Aniszczyk <caniszczyk@gmail.com>
CC: Stefan Lay <stefan.lay@sap.com>
CC: Matthias Sohn <matthias.sohn@sap.com>
14 years agoFix NPE in RenameDetector 51/1151/1
Shawn O. Pearce [Tue, 20 Jul 2010 14:52:35 +0000 (07:52 -0700)]
Fix NPE in RenameDetector

If we have two adds of the same object but no deletes the detector
threw an NPE because the entry that came back from the deleted map
was null (no matching objects).  In this case we need to put the
adds all back onto the list of left over additions since they did
not match a delete.

Change-Id: Ie68fbe7426b4dc0cb571a08911c7adbffff755d5
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
CC: Jeffrey Schumacher" <jeffschu@google.com>
14 years agoIndexPack: Fix spurious pack file corruption errors 50/1150/1
Shawn O. Pearce [Tue, 20 Jul 2010 14:40:48 +0000 (07:40 -0700)]
IndexPack: Fix spurious pack file corruption errors

We didn't correctly handle the zlib trailer for an object.  If the
trailer bytes were outside of the current buffer window but we had
fully inflated the object itself, we broke out of the loop (as we had
our target size) but inflate wasn't finished (as it did not yet get
the trailer) so we failed the test and threw a corruption exception.

Use an infinite loop and only break out when the inflater is done.

Change-Id: I7c9bbbeb577a990d9bc56a50ebd485935460f6c8
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoFully implement Logger interface 89/689/2
Jonathan Gossage [Fri, 16 Jul 2010 23:53:23 +0000 (01:53 +0200)]
Fully implement Logger interface

On April 27, 2010 the Logger interface was upgraded with a number of new methods
to make it consistent with the implementations it was meant to support.

This patch makes RecordingLogger consistent with the Logger interface and allows to
also use Jetty 7.1.5 released with Helios which can be installed from the p2 repository
at http://download.eclipse.org/jetty/7.1.5.v20100705/repository

Change-Id: I5645436bbe7492f82d4069e4d9cbebede0bf764e
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoMerge branch 'js/rename' 40/1140/1
Shawn O. Pearce [Fri, 16 Jul 2010 17:22:15 +0000 (10:22 -0700)]
Merge branch 'js/rename'

* js/rename:
  Implemented file path based tie breaking to exact rename detection
  Added more test cases for RenameDetector
  Added very small optimization to exact rename detection
  Fixed Misleading Javadoc
  Added file path similarity to scoring metric in rename detection
  Fixed potential div by zero bug
  Added file size based rename detection optimization
  Create FileHeader from DiffEntry
  log: Implement --follow
  Cache the diff configuration section
  log: Add whitespace ignore options
  Format submodule links during differences
  Redo DiffFormatter API to be easier to use
  log, diff: Add rename detection support
  Implement similarity based rename detection
  Added a preliminary version of rename detection
  Refactored code out of FileHeader to facilitate rename detection

14 years agoFix infinite loop in IndexPack 49/1049/4
Shawn O. Pearce [Sat, 3 Jul 2010 01:21:55 +0000 (18:21 -0700)]
Fix infinite loop in IndexPack

A programming error using the Inflater API led to an infinite
loop within IndexPack, caused by the Inflater returning 0 from
the inflate() method, but it didn't want more input.  This happens
when it has reached the end of the stream, or has reached a spot
asking for an external dictionary.  Such a case is a failure for us,
and we should abort out.

Thanks to Alex for pointing out that we had 3 implementations of
the inflate rountine, which should be consolidated into one and
use a switch to determine where to load data from.

Bug: 317416
Change-Id: I34120482375b687ea36ed9154002d77047e94b1f
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoImplemented file path based tie breaking to exact rename detection 30/1130/2
Jeff Schumacher [Tue, 13 Jul 2010 19:21:12 +0000 (12:21 -0700)]
Implemented file path based tie breaking to exact rename detection

During the exact rename detection phase in RenameDetector, ties were
resolved on a first-found basis. I added support for file path based
tie breaking during that phase. Basically, there are four situations
that have to be handled:

One add matching one delete:
In this simple case, we pair them as a rename.

One add matching many deletes:
Find the delete whos path matches the add the closest, and
pair them as a rename.

Many adds matching one delete:
Similar to the above case, we find the add that matches the
delete the closest, and pair them as a rename. The other adds
are marked as copies of the delete.

Many adds matching many deletes:
Build a scoring matrix similar to the one used for content-
based matching, scoring instead by file path. Some of the
utility functions in SimilarityRenameDetector are used in
this case, as we use the same encoding scheme. Once the
matrix is built, scan it for the best matches, marking them
as renames. The rest are marked as copies.

I don't particularly like the idea of using utility functions right
out of SimilarityRenameDetector, but it works for the moment. A later
commit will likely refactor this into a common utility class, as well
as bringing exact rename detection out of RenameDetector and into a
separate class, much like SimilarityRenameDetector.

Change-Id: I1fb08390aebdcbf20d049aecf402a36506e55611

14 years agoAdded dirty-detection to WorkingTreeIterator 59/1059/7
Christian Halstrick [Fri, 16 Jul 2010 08:03:49 +0000 (10:03 +0200)]
Added dirty-detection to WorkingTreeIterator

Added possibility to compare the current entry of a WorkingTreeIterator
to a given DirCacheEntry. This is done to detect whether an entry
in the index is dirty or not. 'Dirty' means that the file in the working tree
is different from what's in the index. Merge algorithms will make use of
this to detect conflicts.

Change-Id: I3ff847f4bf392553dcbd6ee236c6ca32a13eedeb
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoMerge "Remove an unused File reference in test code"
Shawn Pearce [Thu, 15 Jul 2010 23:01:25 +0000 (19:01 -0400)]
Merge "Remove an unused File reference in test code"

14 years agoRemove an unused File reference in test code 37/1137/1
Robin Rosenberg [Thu, 15 Jul 2010 22:35:47 +0000 (00:35 +0200)]
Remove an unused File reference in test code

Change-Id: Ib0d6c36811df719a53c66e9fa7460b89b2faf98b
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoMerge "Handle the tilde notation (~user) of git url"
Shawn Pearce [Thu, 15 Jul 2010 21:29:21 +0000 (17:29 -0400)]
Merge "Handle the tilde notation (~user) of git url"

14 years agoHandle the tilde notation (~user) of git url 34/1134/1
Robin Rosenberg [Wed, 14 Jul 2010 23:16:09 +0000 (01:16 +0200)]
Handle the tilde notation (~user) of git url

When the path is prefixed with ~ the URI parser thought about this
as /~. Strip the / if the next character is the tilde.

Bug: 307017
Change-Id: I58203e5617956b46d83e8987d1f8042beddffac3
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoGit Porcelain API: Add Command 36/1036/7
Stefan Lay [Thu, 8 Jul 2010 08:32:57 +0000 (10:32 +0200)]
Git Porcelain API: Add Command

The new Add command adds files to the Git Index.
It  uses the DirCache to access the git index. It
works also in case of an existing conflict.

Fileglobs (e.g. *.c) are not yet supported.

The new Add command does add ignored files because
there is no gitignore support in jgit yet.

Bug: 318440
Change-Id: If16fdd4443e46b27361c2a18ed8f51668af5d9ff
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
14 years agoMerge changes I104cd62f,I1d0238b4
Shawn Pearce [Wed, 14 Jul 2010 00:36:25 +0000 (20:36 -0400)]
Merge changes I104cd62f,I1d0238b4

* changes:
  Internationalize RepositoryState descriptions
  Say that commit is allowed during bisect

14 years agoFix ReadTreeTest 25/1125/3
Christian Halstrick [Tue, 13 Jul 2010 12:28:42 +0000 (12:28 +0000)]
Fix ReadTreeTest

After refactoring ReadTreeTest the tests failed for filesystems
with coarse modification time granularity. This is fixed by
explicitly telling the repo to reread the index after we build
a new index.

Additionally the test testDirectoryFileSimple was simplified
by using buildTree() instead of misusing GitIndex to construct
trees.

Change-Id: I20d2f097491e4cc8c657a696beabc7026b485017
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoAdd compatibility with gitignore specifications 83/683/20
Charley Wang [Mon, 12 Jul 2010 22:34:15 +0000 (00:34 +0200)]
Add compatibility with gitignore specifications

This patch adds ignore compatibility to jgit. It encompasses
exclude files as well as .gitignore. Uses TreeWalk and
FileTreeIterator to find nodes and parses .gitignore
files when required. The patch includes a simple cache that
can be used to save results and avoid excessive gitignore
parsing.

CQ: 4302
Bug: 303925
Change-Id: Iebd7e5bb534accca4bf00d25bbc1f561d7cad11b
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoAdded more test cases for RenameDetector 23/1123/3
Jeff Schumacher [Mon, 12 Jul 2010 19:31:18 +0000 (12:31 -0700)]
Added more test cases for RenameDetector

I added test cases to cover the majority of the code. It's not 100%
coverage yet, but the remaining bits are small.

Change-Id: Ib534c8e94b13358b8b22cf54e2ff84132bae6d14

14 years agoAdded very small optimization to exact rename detection 22/1122/2
Jeff Schumacher [Mon, 12 Jul 2010 18:48:56 +0000 (11:48 -0700)]
Added very small optimization to exact rename detection

Optimized a small loop in findExactRenames. The loop would go through
all the items in a list of DiffEntries even after it already found
what it was looking for. I made it break out of the loop as soon as
a good match was found.

Change-Id: I28741e0c49ce52d8008930a87cd1db7037700a61

14 years agoFixed Misleading Javadoc 21/1121/2
Jeff Schumacher [Mon, 12 Jul 2010 17:37:10 +0000 (10:37 -0700)]
Fixed Misleading Javadoc

The javadoc for the setRenameLimit method in RenameDetector said
that you could only have limits in the range (0,100), implying
that 0 and 100 were illegal inputs. The code, however, allowed 0 and
100. I changed the javadoc to say that the range [0,100] was legal.
I also documented the IllegalArgumentException that is thrown if the
limit is outside that range.

Change-Id: I916838f254859f6f0e1516bb55b8e7dc87e57dc2

14 years agoAdded file path similarity to scoring metric in rename detection 93/1093/3
Jeff Schumacher [Fri, 9 Jul 2010 22:11:54 +0000 (15:11 -0700)]
Added file path similarity to scoring metric in rename detection

The scoring method was not taking into account the similarity of
the file paths and file names. I changed the metric so that it is 99%
based on content (which used to be 100% of the old metric), and 1%
based on path similarity. Of that 1%, half (.5% of the total final
score) is based on the actual file names (e.g. "foo.java"), and half
on the directory (e.g. "src/com/foo/bar/").

Change-Id: I94f0c23bf6413c491b10d5625f6ad7d2ecfb4def

14 years agoFixed potential div by zero bug 92/1092/2
Jeff Schumacher [Fri, 9 Jul 2010 19:53:57 +0000 (12:53 -0700)]
Fixed potential div by zero bug

The scoring logic in SimilarityIndex was dividing by the max file
size. If both files are empty, this would cause a div by zero
error. This case cannot currently happen, since two empty files
would have the same SHA1, and would therefore be caught in the
earlier SHA1 based detection pass. Still, if this logic eventually
gets separated from that pass, a div by zero error would occur.

I changed the logic to instead consider two empty files to have a
similarity score of 100.

Change-Id: Ic08e18a066b8fef25bb5e7c62418106a8cee762a

14 years agoAdded file size based rename detection optimization 91/1091/2
Jeff Schumacher [Fri, 9 Jul 2010 18:18:50 +0000 (11:18 -0700)]
Added file size based rename detection optimization

Prior to this change, files that were very different in size (enough
so that they could not have enough in common to be detected as
renames) were still having their scores calculated. I added an
optimization to skip such files. For example, if the rename detection
threshold is 60%, the larger file is 200kb, and the smaller file is
50kb, the pair cannot be counted as a rename since they cannot
possibly share 60% of their content in common. (200*.6=120, 120>50)

Change-Id: Icd8315412d5de6292839778e7cea7fe6f061b0fc

14 years agoInternationalize RepositoryState descriptions 96/1096/2
Robin Rosenberg [Sat, 10 Jul 2010 00:51:23 +0000 (02:51 +0200)]
Internationalize RepositoryState descriptions

Change-Id: I104cd62f3e89acf010b1d40a2b08e7f68f63bb85
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoSay that commit is allowed during bisect 95/1095/1
Robin Rosenberg [Sat, 10 Jul 2010 00:32:46 +0000 (02:32 +0200)]
Say that commit is allowed during bisect

C Git allows this and it is quite handy.

Change-Id: I1d0238b43fca931ad2079649fb7b431e2815c351
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoMerge "Allow ReadTreeTest to test arbitrary Checkouts"
Christian Halstrick [Fri, 9 Jul 2010 13:42:12 +0000 (09:42 -0400)]
Merge "Allow ReadTreeTest to test arbitrary Checkouts"

14 years agoAdd support for updateNeeded flag in DirCacheEntry 78/1078/2
Matthias Sohn [Wed, 7 Jul 2010 23:51:17 +0000 (01:51 +0200)]
Add support for updateNeeded flag in DirCacheEntry

Change-Id: If06ff41d9ccd422afbc79ecbc3cfdf8bb2508dcd
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoCreate FileHeader from DiffEntry 85/1085/5
Jeff Schumacher [Thu, 8 Jul 2010 16:59:36 +0000 (09:59 -0700)]
Create FileHeader from DiffEntry

Added support for converting DiffEntrys to FileHeaders. FileHeaders
are DiffEntrys with a buffer containing the diff output as well as
a list of HunkHeaders. The HunkHeaders contain EditLists. The
createFileHeader(DiffEntry) method in DiffFormatter performs a Myers
Diff on the files refered to by the DiffEntry, then puts the returned
EditList into a single HunkHeader, which is then put into the
FileHeader to be returned. It also generates the appropriate diff
header an puts it into the FileHeader's buffer. The rest of the diff
output, which would normally be parsed to generate the HunkHeaders,
is not generated. In fact, the purpose of this method is to avoid
the costly diff output generation and parsing normally required to
create a FileHeader.

Change-Id: I7d8b18c0f6c85e3d02ad58995d3d231e69af5887

14 years agoAllow ReadTreeTest to test arbitrary Checkouts 56/1056/3
Christian Halstrick [Thu, 1 Jul 2010 16:02:00 +0000 (18:02 +0200)]
Allow ReadTreeTest to test arbitrary Checkouts

ReadTreeTest was hardcoded to test WorkDirCheckout. Since we want
alternative checkout implementations (especially DirCacheCheckout)
this class has been refactored so that the tests can be reused
to test other implementations

The following changes have been done:
- abstract methods for checkout and prescanTwoTrees have been
  introduced. Parameters are only the two trees. As index we
  will implicitly use the current index of the repo.
- whenever tests needed a manipulated index before checkout
  and prescanTwoTrees it was ensured that the correct index was
  persisted (before we could use not-persisted instantiations of GitIndex
  passed as parameters to checkout, prescanTwoTrees
- abstract methods for getting updated, conflicting, removed entries
  resulting from the last checkout, prescanTwoTrees have been introduced
- an implementation for all these abstract methods using WorkDirCheckout
  has been added
- method to assert a certain state of the index and the working tree has
  been added

Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
Change-Id:  Icf177cf8043487169a32ddd72b6f8f9246a433f7

14 years agoFix javadoc typos in JGit API 81/1081/1
Stefan Lay [Thu, 8 Jul 2010 08:42:29 +0000 (10:42 +0200)]
Fix javadoc typos in JGit API

There were some small errors which made it
difficult to read the JavaDoc.

Change-Id: Ib3b34353465162adebaca3514d596d0edf5aea51
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
14 years agoDeprecate all of the older Tree related code 77/1077/3
Shawn O. Pearce [Wed, 7 Jul 2010 16:15:02 +0000 (09:15 -0700)]
Deprecate all of the older Tree related code

We want to get rid of these APIs, because they don't perform as well
as DirCache/TreeWalk, or don't offer nearly as many features.

Bug: 319145
Change-Id: I2b28f9cddc36482e1ad42d53e86e9d6461ba3bfc
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoFix comparison of nanoseconds 67/1067/1
Stefan Lay [Tue, 6 Jul 2010 15:57:17 +0000 (17:57 +0200)]
Fix comparison of nanoseconds

NB.decodeInt32(info, base + 4) already returns nanoseconds.
Therefore it must not be divided by 1000000.

Change-Id: Ie8f5c4a03f984d98935dccedc2b1ba4457094899
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
14 years agolog: Implement --follow 55/1055/1
Shawn O. Pearce [Sun, 4 Jul 2010 01:13:10 +0000 (18:13 -0700)]
log: Implement --follow

The FollowFilter can be installed on a RevWalk to cause the path
to be updated through rename detection when the affected file is
found to be added to the project.

The filter works reasonably well, for example we can follow the
history of the fsck command in git-core:

  $ jgit log --name-status --follow builtin/fsck.c | grep ^R
  R100 builtin-fsck.c builtin/fsck.c
  R099 fsck.c builtin-fsck.c
  R099 fsck-objects.c fsck.c
  R099 fsck-cache.c fsck-objects.c

Change-Id: I4017bcfd150126aa342fdd423a688493ca660a1f
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoCache the diff configuration section 54/1054/1
Shawn O. Pearce [Sun, 4 Jul 2010 01:16:20 +0000 (18:16 -0700)]
Cache the diff configuration section

This way we don't have to reparse for the rename limit every time
we create a new rename detector for a repository.

Change-Id: I669d031690b85ef4da5e39189be7173fb773fc56
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agolog: Add whitespace ignore options 53/1053/1
Shawn O. Pearce [Sun, 4 Jul 2010 00:32:47 +0000 (17:32 -0700)]
log: Add whitespace ignore options

Similar to what we did with diff, implement whitespace ignore options
for log too.  This requires us to define some means of creating any
RawText object type at will inside of DiffFormatter, so we define a
new factory interface to construct RawText instances on demand.

Unfortunately we have to copy the entire block of common options.
args4j only processes the options/arguments on the one command class
and Java doesn't support multiple inheritance.

Change-Id: Ia16cd3a11b850fffae9fbe7b721d7e43f1d0e8a5
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoFormat submodule links during differences 52/1052/1
Shawn O. Pearce [Sat, 3 Jul 2010 23:59:06 +0000 (16:59 -0700)]
Format submodule links during differences

Instead of crashing, output a submodule link with the simple
"Subproject commit $fullid\n" syntax used by C Git.

Change-Id: Iae8646941683fb19b73fb038217d2e3bf5f77fa9
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoRedo DiffFormatter API to be easier to use 51/1051/1
Shawn O. Pearce [Sat, 3 Jul 2010 23:58:37 +0000 (16:58 -0700)]
Redo DiffFormatter API to be easier to use

Passing around the OutputStream and the Repository is crazy.  Instead
put the stream in the constructor, since this formatter exists only to
output to the stream, and put the repository as a member variable that
can be optionally set.

Change-Id: I2bad012fee7f40dc1346700ebd19f1e048982878
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agolog, diff: Add rename detection support 50/1050/1
Shawn O. Pearce [Sat, 3 Jul 2010 22:49:07 +0000 (15:49 -0700)]
log, diff: Add rename detection support

Implement rename detection in the command line diff and log commands.
Also support --name-status, -p and -U flags, as these can be quite
useful to view more detail.

All of the Git patch file formatting code is now moved over to the
DiffFormatter class.  This permits us to reuse it in any context,
including inside of IDEs.

Change-Id: I687ccba34e18105a07e0a439d2181c323209d96c
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoImplement similarity based rename detection 48/1048/2
Shawn O. Pearce [Sat, 3 Jul 2010 00:29:09 +0000 (17:29 -0700)]
Implement similarity based rename detection

Content similarity based rename detection is performed only after
a linear time detection is performed using exact content match on
the ObjectIds.  Any names which were paired up during that exact
match phase are excluded from the inexact similarity based rename,
which reduces the space that must be considered.

During rename detection two entries cannot be marked as a rename
if they are different types of files.  This prevents a symlink from
being renamed to a regular file, even if their blob content appears
to be similar, or is identical.

Efficiently comparing two files is performed by building up two
hash indexes and hashing lines or short blocks from each file,
counting the number of bytes that each line or block represents.

Instead of using a standard java.util.HashMap, we use a custom
open hashing scheme similiar to what we use in ObjecIdSubclassMap.
This permits us to have a very light-weight hash, with very little
memory overhead per cell stored.

As we only need two ints per record in the map (line/block key and
number of bytes), we collapse them into a single long inside of
a long array, making very efficient use of available memory when
we create the index table.  We only need object headers for the
index structure itself, and the index table, but not per-cell.
This offers a massive space savings over using java.util.HashMap.

The score calculation is done by approximating how many bytes are
the same between the two inputs (which for a delta would be how much
is copied from the base into the result).  The score is derived by
dividing the approximate number of bytes in common into the length
of the larger of the two input files.

Right now the SimilarityIndex table should average about 1/2 full,
which means we waste about 50% of our memory on empty entries
after we are done indexing a file and sort the table's contents.
If memory becomes an issue we could discard the table and copy all
records over to a new array that is properly sized.

Building the index requires O(M + N log N) time, where M is the
size of the input file in bytes, and N is the number of unique
lines/blocks in the file.  The N log N time constraint comes
from the sort of the index table that is necessary to perform
linear time matching against another SimilarityIndex created for
a different file.

To actually perform the rename detection, a SxD matrix is created,
placing the sources (aka deletions) along one dimension and the
destinations (aka additions) along the other.  A simple O(S x D)
loop examines every cell in this matrix.

A SimilarityIndex is built along the row and reused for each
column compare along that row, avoiding the costly index rebuild
at the row level.  A future improvement would be to load a smaller
square matrix into SimilarityIndexes and process everything in that
sub-matrix before discarding the column dimension and moving down
to the next sub-matrix block along that same grid of rows.

An optional ProgressMonitor is permitted to be passed in, allowing
applications to see the progress of the detector as it works through
the matrix cells.  This provides some indication of current status
for very long running renames.

The default line/block hash function used by the SimilarityIndex
may not be optimal, and may produce too many collisions.  It is
borrowed from RawText's hash, which is used to quickly skip out of
a longer equality test if two lines have different hash functions.
We may need to refine this hash in the future, in order to minimize
the number of collisions we get on common source files.

Based on a handful of test commits in JGit (especially my own
recent rename repository refactoring series), this rename detector
produces output that is very close to C Git.  The content similarity
scores are sometimes off by 1%, which is most probably caused by
our SimilarityIndex type using a different hash function than C
Git uses when it computes the delta size between any two objects
in the rename matrix.

Bug: 318504
Change-Id: I11dff969e8a2e4cf252636d857d2113053bdd9dc
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoClean up LICENSE file 40/1040/3
Shawn O. Pearce [Fri, 2 Jul 2010 21:52:49 +0000 (14:52 -0700)]
Clean up LICENSE file

We used our LICENSE file to describe both the license of the package,
and also the header template that should appear at the start of
all Java files we create.  This creates a confusing situation for
readers who just want to consume the package, because our file
header template starts off in the middle of a sentence.

Move our template header to a separate file, and reformat the text
of the license to be something more readable by a person reviewing
the project's terms of use.

Change-Id: If318e64c06683ea14e0240914c2d057c9199ce98
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoAdded a preliminary version of rename detection 29/1029/5
Jeff Schumacher [Thu, 1 Jul 2010 22:30:46 +0000 (15:30 -0700)]
Added a preliminary version of rename detection

JGit does not currently do rename detection during diffs. I added
a class that, given a TreeWalk to iterate over, can output a list
of DiffEntry's for that TreeWalk, taking into account renames. This
class only detects renames by SHA1's. More complex rename detection,
along the lines of what C Git does will be added later.

Change-Id: I93606ce15da70df6660651ec322ea50718dd7c04

14 years agoRefactored code out of FileHeader to facilitate rename detection 15/1015/3
Jeff Schumacher [Wed, 30 Jun 2010 23:21:49 +0000 (16:21 -0700)]
Refactored code out of FileHeader to facilitate rename detection

Refactored a superclass out of FileHeader called DiffEntry that holds
the more general data from FileHeader that is useful in rename
detection (old/new Ids, modes, names, as well as changeType and
score). FileHeader is now a DiffEntry that adds Hunks, parsing
abilities, etc.

Change-Id: I8398728cd218f8c6e98f7a4a7f2f342391d865e4

14 years agoFix missing flush in StreamCopyThread
Dmitry Neverov [Wed, 30 Jun 2010 17:46:53 +0000 (10:46 -0700)]
Fix missing flush in StreamCopyThread

It is possible that StreamCopyThread will not flush everything
from it's src to it's dst.  In most cases StreamCopyThread works
like this:

  in loop:
    n = src.read(buf);
    dst.write(buf, 0, n);

and when we want to flush, we interrupt() StreamCopyThread and it
flushes everything it wrote to dst.

The problem is that our interrupt() could interrupt reading. In this
case we will flush everything we wrote to dst, but not everything
we wrote to src.

Change-Id: Ifaf4d8be87535c7364dd59b217dfc631460018ff
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoAdded check for binary files while diffing 01/1001/2
Jeff Schumacher [Tue, 29 Jun 2010 23:04:08 +0000 (16:04 -0700)]
Added check for binary files while diffing

Added a check in Diff to ensure that files that are most likely
not text are not line-by-line diffed. Files are determined to be
binary by checking the first 8000 bytes for a null character. This
is a similar heuristic to what C Git uses.

Change-Id: I2b6f05674c88d89b3f549a5db483f850f7f46c26

14 years agoMerge "Update build to use Tycho 0.9.0"
Matthias Sohn [Tue, 29 Jun 2010 13:02:46 +0000 (09:02 -0400)]
Merge "Update build to use Tycho 0.9.0"

14 years agoMerge changes Ie56301aa,Ic2f79e85
Shawn Pearce [Tue, 29 Jun 2010 00:27:04 +0000 (20:27 -0400)]
Merge changes Ie56301aa,Ic2f79e85

* changes:
  Added further support for whitespace ignoring during diff
  Added support for whitespace ignoring

14 years agoAdded further support for whitespace ignoring during diff 79/979/2
Jeff Schumacher [Mon, 28 Jun 2010 20:03:44 +0000 (13:03 -0700)]
Added further support for whitespace ignoring during diff

Added code to support ignoring leading, trailing, and changed
whitespace when performing a diff operation. I also added command
line options to Diff to enable the various whitespace ignoring
methods. These match the flags for git diff.

Change-Id: Ie56301aafad59ee3f0fe5de62719f5023cd702c8

14 years agoUpdate build to use Tycho 0.9.0 80/980/1
Matthias Sohn [Mon, 28 Jun 2010 22:08:36 +0000 (00:08 +0200)]
Update build to use Tycho 0.9.0

Change-Id: I589267e6cfd0514383c2a3da51c9b7a659f77844
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoAdded support for whitespace ignoring 37/937/6
Jeff Schumacher [Thu, 24 Jun 2010 20:39:50 +0000 (13:39 -0700)]
Added support for whitespace ignoring

JGit did not have support for skipping whitespace when comparing
lines in RawText objects. I added a subclass of RawText that skips
whitespace in its equals and hashCode methods. I used a subclass
rather than adding functionality into RawText so that performance
would not be impacted by extra logic.

This class only supports ignoring all whitespace. Others will follow
that allow other forms of whitespace ignoring.

Change-Id: Ic2f79e85215e48d3fd53ec1b4ad13373dd183a4a

14 years agoUploadPack: Avoid unnecessary flush in smart HTTP 57/857/4
Shawn O. Pearce [Mon, 14 Jun 2010 19:37:17 +0000 (12:37 -0700)]
UploadPack: Avoid unnecessary flush in smart HTTP

Under smart HTTP the biDirectionalPipe flag is false, and we return
back immediately at this point in the negotiation process.  There is
no need to flush the stream to the client, the request is over and
it will be automatically flushed out by the higher level servlet
that invoked us.  Avoiding flush here allows us to only use flush
after a progress message is sent during pack generation.

Change-Id: Id0c8b7e95e3be6ca4c1b479e096bed6b0283b828
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoAdd MutableObjectId.copyFrom(AnyObjectId) 22/922/2
Shawn O. Pearce [Tue, 22 Jun 2010 23:42:29 +0000 (16:42 -0700)]
Add MutableObjectId.copyFrom(AnyObjectId)

This simplifies the PackIndex code, which is trying to quickly copy
an existing ObjectId into a MutableObjectId.  Rather than having
the PackIndex violate the ObjectId's internals, expose a copy from
function similar to the other ones for copying from raw byte arrays
or hex formatted strings.

Change-Id: I142635cbece54af2ab83c58477961ce925dc8255
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoExpose AnyObjectId compareTo(byte[]) and compareTo(int[]) 17/917/4
Shawn O. Pearce [Sat, 19 Jun 2010 00:38:22 +0000 (17:38 -0700)]
Expose AnyObjectId compareTo(byte[]) and compareTo(int[])

Storage systems can use these implementations to compare a passed
AnyObjectId with a stored representation of an ObjectId in the
canonical network byte order format.  This can be useful to do a
binary search, or just linear scan, over an encoded storage file.

Change-Id: I8c72993c4f4c6e98d599ac2c9867453752f25fd2
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoExpose RefWriter constructor taking RefList 25/925/2
Shawn O. Pearce [Wed, 23 Jun 2010 00:07:09 +0000 (17:07 -0700)]
Expose RefWriter constructor taking RefList

An implementation might prefer to use the RefList type here, and
RefList is part of our public API.  Expose the constructor so callers
who have a RefList can take advantage of the existing sorting.

Change-Id: I545867f85aa2c479d2d610024ebbe318144709c8
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoExpose RefUpdate constructor to any subclass 24/924/2
Shawn O. Pearce [Tue, 22 Jun 2010 23:48:37 +0000 (16:48 -0700)]
Expose RefUpdate constructor to any subclass

When we finally move RefDirectory to the new storage.file package,
its associated RefDirectoryUpdate will need visiblity to this
constructor in order to initialize itself.  This is true of any
other repository implementation, so make it protected rather than
package level visible.

Change-Id: If838aec9baeb80ee2f12dcbca717657c725a9242
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoExpose repository change event constructors 23/923/2
Shawn O. Pearce [Tue, 22 Jun 2010 23:45:26 +0000 (16:45 -0700)]
Expose repository change event constructors

Repository implementations outside of .lib need to be able to
create these events and deliver them to listening application code.

Expose and document the constructors so that they are visible when
we move FileRepository into storage.file.FileRepository.

Change-Id: I7fb6e8f4f5fdab683c5ebb5267673aa6d5b560bb
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoisValidRefName: Inline the forbidden ref suffix of ".lock" 20/920/2
Shawn O. Pearce [Tue, 22 Jun 2010 23:37:38 +0000 (16:37 -0700)]
isValidRefName: Inline the forbidden ref suffix of ".lock"

A Git reference name must never end with ".lock", as it would
confuse any existing C client that tries to obtain a clone of the
repository over the network.  Even if the repository isn't on a
local filesystem, it still should ban that suffix.

Because I plan to move LockFile to storage.file and make it a private
implementation detail of the local file system storage model,
we can't rely on its package level SUFFIX field here.  Making it
public probably won't work long-term either, as I also plan to
pull storage.file into its own separate project that depends on
the core library.

So, just inline the constant here.  Its as foribidden as ":" is.

Change-Id: If85076861baeacc183b82696375a13e935ba8836
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoRemove pack stream from PackWriterTest 19/919/2
Shawn O. Pearce [Tue, 22 Jun 2010 23:54:23 +0000 (16:54 -0700)]
Remove pack stream from PackWriterTest

This stream was used only to determine how many bytes had been
written thus far.  Except we're always dumping it into a simple
ByteArrayOutputStream, which also knows that.  Drop the dependency
on the pack stream and use ByteArrayOutputStream directly.

This lets us later move this test into the new storage.file
package without dragging along the pack stream that is an internal
implementation detail of PackWriter, which is more general than
just the file storage layer.

Change-Id: I291689c0b1ed799270c213ee73b710b2637fb238
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoRemove pointless setOldObjectId in test 18/918/2
Shawn O. Pearce [Tue, 22 Jun 2010 23:18:22 +0000 (16:18 -0700)]
Remove pointless setOldObjectId in test

Setting this value is pointless, because its automatically set
by the refs.newUpdate call that created the update operation.
The API is protected by default, because application level code,
including this test, should not be calling it.

Change-Id: I8867a4e8007892e2bd44a05d7dec619081081943
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoRemove speed tests based on mapCommit 12/912/2
Shawn O. Pearce [Sat, 19 Jun 2010 01:10:32 +0000 (18:10 -0700)]
Remove speed tests based on mapCommit

The mapCommit API is being deprecated because it doesn't run very
fast.  Leaving tests around to test how fast it is relative to C Git
isn't instructive.  Remove them, which should help aid the transition
away from the mapCommit API.

Change-Id: I27e1c844610d7da5b2c44b33a00602706973c9cc
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoChange default target platform for maven build to galileo 03/903/1
Matthias Sohn [Fri, 18 Jun 2010 23:06:14 +0000 (01:06 +0200)]
Change default target platform for maven build to galileo

Starting with 0.9 we do no longer support ganymede.
http://dev.eclipse.org/mhonarc/lists/egit-dev/msg01277.html

Change-Id: Ibf40342f67d9706e86336748f15d10ea47278096
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoMerge "Fix line endings"
Shawn Pearce [Fri, 18 Jun 2010 22:15:53 +0000 (18:15 -0400)]
Merge "Fix line endings"

14 years agoFix line endings 99/899/1
Matthias Sohn [Fri, 18 Jun 2010 21:24:56 +0000 (23:24 +0200)]
Fix line endings

Some sources had dos line endings. Also configure all projects to use
unix line endings and UTF-8 text encoding.

Change-Id: I8fc9a1dbb219ffa91d1b3011b3b11b7e48e74ca7
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoMerge ""Bare" Repository should not return working directory."
Shawn Pearce [Thu, 17 Jun 2010 02:34:46 +0000 (22:34 -0400)]
Merge ""Bare" Repository should not return working directory."

14 years agoMake ObjectId, RefSpec, RemoteConfig, URIish serializable 80/880/2
Andrew Bayer [Wed, 16 Jun 2010 22:49:49 +0000 (15:49 -0700)]
Make ObjectId, RefSpec, RemoteConfig, URIish serializable

Modifications to various classes in order to allow serialization
for use of JGit in Hudson's git plugin.

Change-Id: If088717d3da7483538c00a927e433a74085ae9e6

14 years ago"Bare" Repository should not return working directory. 36/836/10
Mathias Kinzler [Wed, 16 Jun 2010 06:50:26 +0000 (08:50 +0200)]
"Bare" Repository should not return working directory.

If a repository is "bare", it currently still returns a working directory.
This conflicts with the specification of "bare"-ness.

Bug: 311902

Change-Id: Ib54b31ddc80b9032e6e7bf013948bb83e12cfd88
Signed-off-by: Mathias Kinzler <mathias.kinzler@sap.com>
14 years agoMerge "tools/version.sh: Use backup files on Win32"
Matthias Sohn [Tue, 15 Jun 2010 23:34:52 +0000 (19:34 -0400)]
Merge "tools/version.sh: Use backup files on Win32"

14 years agoMerge "Add missing @Override tags in AlternateRepositoryDatabase"
Chris Aniszczyk [Tue, 15 Jun 2010 15:40:04 +0000 (11:40 -0400)]
Merge "Add missing @Override tags in AlternateRepositoryDatabase"

14 years agoAllow to read configured keys 35/835/3
Mathias Kinzler [Mon, 14 Jun 2010 16:03:30 +0000 (18:03 +0200)]
Allow to read configured keys

Currently, there is no way to read the content
of the Git Configuration in a  way that would
allow to list all configured values generically.
This change extends the Config class in such a
way as to being able to get a list of sections and
to get a list of names for any given section or
subsection.
This is required in able to implement proper
configuration handling in EGit (show all the
content of a given configuration similar to
"git config -l").

Change-Id: Idd4bc47be18ed0e36b11be8c23c9c707159dc830
Signed-off-by: Mathias Kinzler <mathias.kinzler@sap.com>
14 years agoMerge changes I53f71dc0,I3a899a3a,I3e8bd245,Ie7c9db83,If396326e,I6f4cf8da,I3bf96dd0...
Shawn Pearce [Mon, 14 Jun 2010 23:59:48 +0000 (19:59 -0400)]
Merge changes I53f71dc0,I3a899a3a,I3e8bd245,Ie7c9db83,If396326e,I6f4cf8da,I3bf96dd0,I3a2a43a1,I292fe88c,Ia1cf40cf

* changes:
  git-servlet: Fix comparing uploadFactory with the wrong DISABLED instance
  Prefer static inner classes
  Override equals for SwingLane since super class PlotLane defines it
  Make sure a Stream is closed upon errors in IpLogGenerator
  Make constant static in RebuildCommitGraph
  Make inner classes static in http code
  Cache filemode in GitIndex
  Remove unused parent field in PlotLane
  Removed unused repo field in WorkDirCheckout
  Extend DiffFormatter API to simplify styling

14 years agogit-servlet: Fix comparing uploadFactory with the wrong DISABLED instance 54/854/3
Robin Rosenberg [Mon, 14 Jun 2010 21:33:02 +0000 (23:33 +0200)]
git-servlet: Fix comparing uploadFactory with the wrong DISABLED instance

Change-Id: I53f71dc0e3c68839da5ff5a2e0f3eeb8340e4793
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoAdd missing @Override tags in AlternateRepositoryDatabase 56/856/1
Shawn O. Pearce [Sun, 26 Jul 2009 00:33:30 +0000 (17:33 -0700)]
Add missing @Override tags in AlternateRepositoryDatabase

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agotools/version.sh: Use backup files on Win32 42/842/1
Shawn O. Pearce [Mon, 14 Jun 2010 15:18:47 +0000 (08:18 -0700)]
tools/version.sh: Use backup files on Win32

Windows doesn't permit us to edit a file in-place with Perl.
So create backup files when we perform the edit, and remove them
when we are done.  This is a tad slower on POSIX systems, but is
much more portable.

Change-Id: I429c7d698924cb32e709363f5da82f7232bbdab2
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoMerge branch 'stable-0.8' 41/841/1
Shawn O. Pearce [Mon, 14 Jun 2010 15:12:48 +0000 (08:12 -0700)]
Merge branch 'stable-0.8'

* stable-0.8:
  Qualify post-0.8.4 builds
  JGit 0.8.4
  JGit 0.8.3
  Include about.html in org.eclipse.jgit artifact
  Fix build.properties of the JGit feature
  Added the standard SULA for JGit
  Add "resources/" as a source folder

Change-Id: I4ecb0af41184ef84d104345fd1adcc4a240a38f6

14 years agoStart 0.9 development 40/840/1
Shawn O. Pearce [Mon, 14 Jun 2010 15:11:27 +0000 (08:11 -0700)]
Start 0.9 development

Change-Id: I84173ece5100f1fcb78168e2e102b649d9466c08
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoQualify post-0.8.4 builds 39/839/1 stable-0.8
Shawn O. Pearce [Mon, 14 Jun 2010 15:09:54 +0000 (08:09 -0700)]
Qualify post-0.8.4 builds

Change-Id: I21efed66921eb7e1e4010fccc9fa9af6c4150fc1
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoJGit 0.8.4 37/837/1 v0.8.4
Matthias Sohn [Mon, 14 Jun 2010 13:34:28 +0000 (15:34 +0200)]
JGit 0.8.4

Created wrong tags for 0.8.3 hence creating another version.

Change-Id: I4e00bbcffe1cf872e2d7e3f3d88d068701fb5330
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoJGit 0.8.3 30/830/1
Matthias Sohn [Sun, 13 Jun 2010 23:34:34 +0000 (01:34 +0200)]
JGit 0.8.3

Change-Id: I845da83c74475d74ec25d68f53c0a4738a898550
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoPrefer static inner classes 53/853/1
Robin Rosenberg [Sun, 13 Jun 2010 01:31:52 +0000 (03:31 +0200)]
Prefer static inner classes

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoOverride equals for SwingLane since super class PlotLane defines it 52/852/1
Robin Rosenberg [Sun, 13 Jun 2010 01:30:10 +0000 (03:30 +0200)]
Override equals for SwingLane since super class PlotLane defines it

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoMake sure a Stream is closed upon errors in IpLogGenerator 51/851/1
Robin Rosenberg [Sun, 13 Jun 2010 01:28:04 +0000 (03:28 +0200)]
Make sure a Stream is closed upon errors in IpLogGenerator

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoMake constant static in RebuildCommitGraph 50/850/1
Robin Rosenberg [Sun, 13 Jun 2010 01:27:06 +0000 (03:27 +0200)]
Make constant static in RebuildCommitGraph

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoMake inner classes static in http code 49/849/1
Robin Rosenberg [Sun, 13 Jun 2010 01:19:47 +0000 (03:19 +0200)]
Make inner classes static in http code

Static classes are preferrable to keep unwanted dependencies away,
and they have one less member field.

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoCache filemode in GitIndex 48/848/1
Robin Rosenberg [Sun, 13 Jun 2010 01:16:32 +0000 (03:16 +0200)]
Cache filemode in GitIndex

Apparently this was the intention, but never happened

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoRemove unused parent field in PlotLane 47/847/1
Robin Rosenberg [Sun, 13 Jun 2010 01:13:57 +0000 (03:13 +0200)]
Remove unused parent field in PlotLane

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoRemoved unused repo field in WorkDirCheckout 46/846/1
Robin Rosenberg [Sun, 13 Jun 2010 01:12:41 +0000 (03:12 +0200)]
Removed unused repo field in WorkDirCheckout

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoExtend DiffFormatter API to simplify styling 28/828/2
Robin Rosenberg [Sat, 12 Jun 2010 13:31:04 +0000 (15:31 +0200)]
Extend DiffFormatter API to simplify styling

Refactor and extend the internals so users can override and
intervene during formatting, e.g. to colorize output.

Change-Id: Ia1cf40cfd4a5ed7dfb6503f8dfc617237bee0659
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoInclude about.html in org.eclipse.jgit artifact 20/820/1
Matthias Sohn [Tue, 8 Jun 2010 00:36:43 +0000 (02:36 +0200)]
Include about.html in org.eclipse.jgit artifact

This is required to enable accessing legal info for
org.eclipse.jgit from
Help > About > Installation Details > Plugins

Change-Id: I73f40dd2018112cd23102954d7647ecdbbbf0d89
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoFix build.properties of the JGit feature 18/818/1
Chris Aniszczyk [Mon, 7 Jun 2010 21:55:48 +0000 (16:55 -0500)]
Fix build.properties of the JGit feature

The JGit feature's build.properties was referring
to a notice.html instead of license.html

Change-Id: I642e2a05d1be58b1d47fd9701edf1a0f2bfa3660
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
14 years agoAdded the standard SULA for JGit 17/817/1
Chris Aniszczyk [Mon, 7 Jun 2010 21:26:57 +0000 (16:26 -0500)]
Added the standard SULA for JGit

The Eclipse Foundation requires the standard SULA be present
in every feature. We had the license present via edl-v10.html
but we were missing the SULA via the license.html file. The
fix is to simply add the SULA.

Change-Id: I75b43ce098f544b95181755b5cc81a9b1dee6391
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
14 years agoAdd "resources/" as a source folder 10/810/1
Matthias Sohn [Sat, 5 Jun 2010 12:39:27 +0000 (14:39 +0200)]
Add "resources/" as a source folder

Building jgit with pde.build was broken without resources.

Bug:315823
Change-Id: I45be510ada068b3ffab0feb30ec60f2c96a5ca32
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoRepository can be configured with FS 88/588/3
Marc Strapetz [Tue, 20 Apr 2010 19:01:19 +0000 (21:01 +0200)]
Repository can be configured with FS

On Windows, FS_Win32_Cygwin has been used if a Cygwin Git installation
is present in the PATH. Assuming that the user works with the Cygwin
Git installation may result in unnecessary overhead if he actually
does not.

Applications built on top of jgit may have more knowledge on the
actually used Git client (Cygwin or not) and hence should be able to
configure which FS to use accordingly.

Change-Id: Ifc4278078b298781d55cf5421e9647a21fa5db24

14 years agoMerge "Refactor ReadTreeTest to allow testing other checkout classes"
Shawn Pearce [Sat, 5 Jun 2010 01:48:54 +0000 (21:48 -0400)]
Merge "Refactor ReadTreeTest to allow testing other checkout classes"

14 years agoAdd support for computing a Change-Id à la Gerrit 23/523/7
Robin Rosenberg [Mon, 24 May 2010 19:19:59 +0000 (21:19 +0200)]
Add support for computing a Change-Id à la Gerrit

A Change-Id helps tools like Gerrit Code Review to keeps different
versions of a patch together. The Change-Id is computed as a SHA-1
hash of some of the same basic information as a commit id on the first
commit intended to solve a particular problem and then reused for
updated solutions.

Change-Id: I04334f84e76e83a4185283cb72ea0308b1cb4182
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
14 years agoRefactor ReadTreeTest to allow testing other checkout classes 92/792/3
Christian Halstrick [Fri, 4 Jun 2010 22:18:17 +0000 (00:18 +0200)]
Refactor ReadTreeTest to allow testing other checkout classes

ReadTreeTest contains a lot of useful tests for "checkout"
implementations. But ReadTreeTest was hardcoded to test only
WorkDirCheckout. This change doesn't add/modify any tests semantically
but refactors ReadTreeTest so that a different implementations of
checkout can be tested. This was done to allow DirCacheCheckout to be
tested without rewriting all these tests.

Change-Id: I36e34264482b855ed22c9dde98824f573cf8ae22
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoProvide a public entry method to determine whether a URI protocol is supported 03/803/1
Alex Blewitt [Thu, 3 Jun 2010 23:38:50 +0000 (00:38 +0100)]
Provide a public entry method to determine whether a URI protocol is supported

14 years agoQualify post-0.8.1 builds 94/794/3
Shawn O. Pearce [Wed, 2 Jun 2010 22:20:42 +0000 (15:20 -0700)]
Qualify post-0.8.1 builds

Change-Id: Id86e5876b2f684b2a272c07061a276b054ba410d
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoJGit 0.8.1 97/797/1 v0.8.1
Shawn O. Pearce [Wed, 2 Jun 2010 21:47:31 +0000 (14:47 -0700)]
JGit 0.8.1

Change-Id: I3d4ac7d0617a3575019e2ed748ed2a298a988340
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoBump all features during release 96/796/2
Shawn O. Pearce [Wed, 2 Jun 2010 21:30:11 +0000 (14:30 -0700)]
Bump all features during release

Change-Id: I3103c54a2a525f5f190cf35b63394dad6d02cc5e
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoMerge "Describe how to generate iplog."
Shawn Pearce [Tue, 1 Jun 2010 15:10:38 +0000 (11:10 -0400)]
Merge "Describe how to generate iplog."

14 years agoDescribe how to generate iplog. 73/773/3
Matthias Sohn [Fri, 28 May 2010 23:03:04 +0000 (01:03 +0200)]
Describe how to generate iplog.

Change-Id: I91f249422efbb6aea0491e276ccfe00f5ae7d212
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
14 years agoeclipse-iplog: Use contribution rather than bug element 72/772/1
Shawn O. Pearce [Fri, 28 May 2010 22:06:29 +0000 (15:06 -0700)]
eclipse-iplog: Use contribution rather than bug element

Wayne changed the schema to no longer be dependent upon the Bugzilla
notion of a contribution, but instead be more generic and better
support systems like Gerrit Code Review.  Update our output to
use the <contribution> element and include a link to the change
in Gerrit.

Change-Id: Ibc8a436918bd8e7597dc17743824201a74bce09b
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>