libgit2/include/git2
Russell Belfer d958e37a48 Fix issues with git_diff_find_similar
There are a number of bugs in the rename code that only were
obvious when I started testing it against large old repos with
more complex patterns.  (The code to do that testing is not ready
to merge with libgit2, but I do plan to add more thorough tests.)

This contains a significant number of changes and also tweaks the
public API slightly to make emulating core git easier.

Most notably, this separates the GIT_DIFF_FIND_AND_BREAK_REWRITES
flag into FIND_REWRITES (which adds a self-similarity score to
every modified file) and BREAK_REWRITES (which splits the modified
deltas into add/remove pairs in the diff list).  When you do a raw
output of core git, rewrites show up as M090 or such, not at A and
D output, so I wanted to be able to emulate that.

Publicly, this also changes the flags to be uint16_t since we
don't need values out of that range.

Internally, this contains significant changes from a number of
small bug fixes (like using the wrong side of the diff to decide
if the object could be found in the ODB vs the workdir) to larger
issues about which files can and should be compared and how the
various edge cases of similarity scores should be treated.

Honestly, I don't think this is the last update that will have to
be made to this code, but I think this moves us closer to correct
behavior and I tried to document the code so it would be easier
to follow..
2013-05-17 17:21:45 -07:00
..
sys Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
attr.h Unify whitespaces to tabs 2013-05-15 20:26:55 +08:00
blob.h Standardize cast versions of git_object accessors 2013-04-29 14:22:06 -07:00
branch.h branch.h: fix typo in docs 2013-05-06 15:31:26 +03:00
checkout.h allow checkout to proceed when a dir to be removed is in use (win32) 2013-05-03 18:54:47 -05:00
clone.h clone: fix param comment 2013-03-19 17:42:10 +01:00
commit.h Add cat-file example and increase const use in API 2013-05-16 10:38:27 -07:00
common.h docs: formatting fixes 2013-04-24 20:25:57 +02:00
config.h Unify whitespaces to tabs 2013-05-15 20:26:55 +08:00
cred_helpers.h docs: formatting fixes 2013-04-24 20:25:57 +02:00
diff.h Fix issues with git_diff_find_similar 2013-05-17 17:21:45 -07:00
errors.h errors: Introduce EMERGECONFLICT error code 2013-01-11 19:30:57 +01:00
graph.h graph: make the ahead-behind docs clearer 2013-03-22 20:27:59 +01:00
ignore.h update copyrights 2013-01-08 17:31:27 -06:00
index.h Update index.h docs 2013-05-15 16:25:11 -07:00
indexer.h Move odb_backend implementors stuff into git2/sys 2013-04-21 11:50:55 -07:00
inttypes.h Unify whitespaces to tabs 2013-05-15 20:26:55 +08:00
merge.h Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
message.h update copyrights 2013-01-08 17:31:27 -06:00
net.h No bitfields in public headers b/c packing is compiler-specific 2013-02-07 12:47:29 -05:00
notes.h fixed minor issues with new note iterator 2013-03-06 22:36:19 +01:00
object.h object: Export git_object_dup 2013-04-10 16:56:32 +02:00
odb_backend.h Document the odb backend constructors 2013-04-23 19:09:45 +02:00
odb.h Move odb_backend implementors stuff into git2/sys 2013-04-21 11:50:55 -07:00
oid.h Add git_oid_nfmt - a flexible OID formatter 2013-05-17 16:40:00 -07:00
pack.h Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
push.h push: fix typo in git_push_finish() doc 2013-02-15 13:12:16 +01:00
refdb.h Move git_reference__alloc to include/git2/sys 2013-04-21 12:52:17 -07:00
reflog.h update copyrights 2013-01-08 17:31:27 -06:00
refs.h Merge pull request #1385 from carlosmn/refs-iter 2013-05-11 02:42:49 -07:00
refspec.h remote: add resfpec list accessors 2013-04-30 12:04:59 +02:00
remote.h remote: add resfpec list accessors 2013-04-30 12:04:59 +02:00
repository.h Unify whitespaces to tabs 2013-05-15 20:26:55 +08:00
reset.h Unify whitespaces to tabs 2013-05-15 20:26:55 +08:00
revparse.h Update docs 2013-04-15 23:54:28 +02:00
revwalk.h Clean up minor details 2013-04-15 13:29:40 -07:00
signature.h update copyrights 2013-01-08 17:31:27 -06:00
stash.h update copyrights 2013-01-08 17:31:27 -06:00
status.h Implement GIT_STATUS_OPT_EXCLUDE_SUBMODULES 2013-03-25 22:19:39 -07:00
stdint.h msvc: Properly handle inttypes.h/stdint.h 2011-10-05 16:21:16 -04:00
strarray.h Unify whitespaces to tabs 2013-05-15 20:26:55 +08:00
submodule.h Update diff handling of untracked directories 2013-04-30 04:25:56 -07:00
tag.h Standardize cast versions of git_object accessors 2013-04-29 14:22:06 -07:00
threads.h update copyrights 2013-01-08 17:31:27 -06:00
trace.h Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
transport.h transport: don't try to export nonexistent function 2013-03-30 04:50:53 +01:00
tree.h Add cat-file example and increase const use in API 2013-05-16 10:38:27 -07:00
types.h refs: introduce an iterator 2013-05-11 11:20:37 +02:00
version.h libgit2 0.18.0 "Big Ben" 2013-04-16 17:45:12 +02:00