libgit2/src
Russell Belfer 74ded02457 Add "as_path" parameters to blob and buffer diffs
This adds parameters to the four functions that allow for blob-to-
blob and blob-to-buffer differencing (either via callbacks or by
making a git_diff_patch object).  These parameters let you say
that filename we should pretend the blob has while doing the diff.
If you pass NULL, there should be no change from the existing
behavior, which is to skip using attributes for file type checks
and just look at content.  With the parameters, you can plug into
the new diff driver functionality and get binary or non-binary
behavior, plus function context regular expressions, etc.

This commit also fixes things so that the git_diff_delta that is
generated by these functions will actually be populated with the
data that we know about the blobs (or buffers) so you can use it
appropriately.  It also fixes a bug in generating patches from
the git_diff_patch objects created via these functions.

Lastly, there is one other behavior change that may matter.  If
there is no difference between the two blobs, these functions no
longer generate any diff callbacks / patches unless you have
passed in GIT_DIFF_INCLUDE_UNMODIFIED.  This is pretty natural,
but could potentially change the behavior of existing usage.
2013-06-17 17:03:34 -07:00
..
amiga Added missing curly brackets and fixed compiler warnings. 2013-01-10 09:16:14 +01:00
hash Unify whitespaces to tabs 2013-05-15 20:26:55 +08:00
transports cred: deploy git__memzero to clear memory holding a password 2013-06-17 15:42:34 +02:00
unix Add missing prototype for p_realpath(). 2013-04-22 00:13:35 +02:00
win32 cmake: Add option to specify the name of the binary 2013-06-13 10:12:44 +02:00
xdiff Merge branch 'new-error-handling' into development 2012-05-02 15:59:02 -07:00
array.h Improvements to git_array 2013-06-12 13:46:44 -07:00
attr_file.c allow (ignore) bare slash in gitignore 2013-05-29 16:26:25 -05:00
attr_file.h Unify whitespaces to tabs 2013-05-15 20:26:55 +08:00
attr.c Add ~ expansion to global attributes and excludes 2013-05-24 11:09:04 -07:00
attr.h Implement global/system file search paths 2013-03-15 16:39:00 -07:00
attrcache.h Add ~ expansion to global attributes and excludes 2013-05-24 11:09:04 -07:00
blob.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
blob.h Simplify object table parse functions 2013-04-22 16:52:06 +02:00
branch.c branch: More obvious semantics in foreach 2013-06-17 18:48:02 +02:00
branch.h branch: rename 'tracking' to 'upstream' 2013-03-30 15:45:57 +01:00
bswap.h update copyrights 2013-01-08 17:31:27 -06:00
buf_text.c Move crlf conversion into buf_text 2013-03-25 14:20:07 -07:00
buf_text.h Move crlf conversion into buf_text 2013-03-25 14:20:07 -07:00
buffer.c update copyrights 2013-01-08 17:31:27 -06:00
buffer.h Add const to some buffer functions 2013-03-06 16:44:53 -08:00
cache.c util: It's called memzero 2013-06-12 21:10:33 +02:00
cache.h git_atomic_ssize for 64-bit atomics only on 64-bit platforms 2013-04-25 12:40:33 -05:00
cc-compat.h Fix gen_pktline format specifier for Win32 2013-01-22 09:25:15 -05:00
checkout.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
checkout.h update copyrights 2013-01-08 17:31:27 -06:00
clone.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
commit_list.c Use git_odb_object_data/_size whereever possible 2013-04-22 16:50:51 +02:00
commit_list.h update copyrights 2013-01-08 17:31:27 -06:00
commit.c Add cat-file example and increase const use in API 2013-05-16 10:38:27 -07:00
commit.h Simplify object table parse functions 2013-04-22 16:52:06 +02:00
common.h Add git_has_win32_version helper 2013-03-31 22:22:33 -04:00
compress.c update copyrights 2013-01-08 17:31:27 -06:00
compress.h update copyrights 2013-01-08 17:31:27 -06:00
config_cache.c Add configs to repo config cache 2013-04-23 12:57:30 -07:00
config_file.c Typedef git_config_level_t and use it everywhere 2013-05-24 10:35:58 -07:00
config_file.h Implement config key validation rules 2013-01-29 12:15:18 -08:00
config.c util: It's called memzero 2013-06-12 21:10:33 +02:00
config.h repo: unconditionally create a global config backend 2013-05-07 21:42:56 +02:00
crlf.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
date.c Unify whitespaces to tabs 2013-05-15 20:26:55 +08:00
delta-apply.c update copyrights 2013-01-08 17:31:27 -06:00
delta-apply.h update copyrights 2013-01-08 17:31:27 -06:00
delta.c Fixing unwrapped calloc 2013-05-27 16:45:22 -07:00
delta.h Fix warnings on Win64 build 2012-11-27 13:18:29 -08:00
diff_driver.c Fix Windows warnings 2013-06-12 15:21:21 -07:00
diff_driver.h Fix Windows warnings 2013-06-12 15:21:21 -07:00
diff_file.c Add "as_path" parameters to blob and buffer diffs 2013-06-17 17:03:34 -07:00
diff_file.h Add "as_path" parameters to blob and buffer diffs 2013-06-17 17:03:34 -07:00
diff_patch.c Add "as_path" parameters to blob and buffer diffs 2013-06-17 17:03:34 -07:00
diff_patch.h Fix diff header naming issues 2013-06-12 14:18:09 -07:00
diff_print.c Add "as_path" parameters to blob and buffer diffs 2013-06-17 17:03:34 -07:00
diff_tform.c More tests and bug fixes for status with rename 2013-06-17 10:03:49 -07:00
diff_xdiff.c Fix diff header naming issues 2013-06-12 14:18:09 -07:00
diff_xdiff.h Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
diff.c Always do tree to index diffs case sensitively 2013-06-17 10:03:49 -07:00
diff.h More tests and bug fixes for status with rename 2013-06-17 10:03:49 -07:00
errors.c Fix valgrind issues (and mmap fallback for diff) 2013-03-14 13:50:54 -07:00
fetch.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
fetch.h update copyrights 2013-01-08 17:31:27 -06:00
fetchhead.c immutable references and a pluggable ref database 2013-03-07 11:01:52 -06:00
fetchhead.h update copyrights 2013-01-08 17:31:27 -06:00
filebuf.c update copyrights 2013-01-08 17:31:27 -06:00
filebuf.h update copyrights 2013-01-08 17:31:27 -06:00
fileops.c fileops: fix invalid read 2013-06-14 20:01:35 +02:00
fileops.h Add more diff rename detection tests 2013-05-20 13:41:39 -07:00
filter.c Several warnings detected by static code analyzer fixed 2013-03-18 03:30:26 +04:00
filter.h Move crlf conversion into buf_text 2013-03-25 14:20:07 -07:00
fnmatch.c update copyrights 2013-01-08 17:31:27 -06:00
fnmatch.h update copyrights 2013-01-08 17:31:27 -06:00
global.c Mutex init can fail 2013-05-31 14:13:11 -07:00
global.h Add git__compare_and_swap and use it 2013-04-22 16:52:07 +02:00
graph.c graph: make the ahead-behind docs clearer 2013-03-22 20:27:59 +01:00
hash.c update copyrights 2013-01-08 17:31:27 -06:00
hash.h Revert "hash: remove git_hash_init from internal api" 2013-02-26 01:08:34 +01:00
hashsig.c Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
hashsig.h Refine pluggable similarity API 2013-02-20 15:09:41 -08:00
ignore.c Use config cache where possible 2013-04-23 12:57:30 -07:00
ignore.h Use config cache where possible 2013-04-23 12:57:30 -07:00
index.c Make index_insert keep existing case 2013-06-17 10:03:49 -07:00
index.h introduce git_conflict_iterator 2013-05-17 16:10:48 -05:00
indexer.c calloc() to initialize memory 2013-05-16 21:11:38 +08:00
iterator.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
iterator.h Make iterators use GIT_ITEROVER & smart advance 2013-05-31 12:18:43 -07:00
khash.h Isolate khash inlines from global namespace 2012-07-12 11:49:15 -07:00
map.h update copyrights 2013-01-08 17:31:27 -06:00
merge_file.c Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
merge_file.h Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
merge.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
merge.h merge setup 2013-05-17 08:26:24 -05:00
message.c update copyrights 2013-01-08 17:31:27 -06:00
message.h update copyrights 2013-01-08 17:31:27 -06:00
mwindow.c Further threading fixes 2013-04-22 16:52:07 +02:00
mwindow.h update copyrights 2013-01-08 17:31:27 -06:00
netops.c Merge pull request #1298 from ben/user-at 2013-02-04 14:49:28 -08:00
netops.h Enhance url parsing to include passwords 2013-01-31 14:04:21 -08:00
notes.c Make iterators use GIT_ITEROVER & smart advance 2013-05-31 12:18:43 -07:00
notes.h fixed minor issues with new note iterator 2013-03-06 22:36:19 +01:00
object_api.c object: haha 2013-04-30 13:19:02 +02:00
object.c Fix broken build when MSVC SDL checks is enabled 2013-05-11 20:13:26 +08:00
object.h object: Explicitly define helper API methods for all obj types 2013-04-30 13:13:38 +02:00
odb_loose.c Move odb_backend implementors stuff into git2/sys 2013-04-21 11:50:55 -07:00
odb_pack.c Consolidate packfile allocation further 2013-04-22 16:52:07 +02:00
odb.c util: It's called memzero 2013-06-12 21:10:33 +02:00
odb.h Add callback to git_objects_table 2013-04-22 16:51:40 +02:00
offmap.h pack: introduce a delta base cache 2013-01-11 16:55:37 +01:00
oid.c Merge pull request #1595 from arrbee/even-more-rename-fixes 2013-05-24 01:13:48 -07:00
oid.h Add new src/oid.h 2013-04-29 18:15:43 -07:00
oidmap.h Add callback to git_objects_table 2013-04-22 16:51:40 +02:00
pack-objects.c Mutex init can fail 2013-05-31 14:13:11 -07:00
pack-objects.h update copyrights 2013-01-08 17:31:27 -06:00
pack.c Mutex init can fail 2013-05-31 14:13:11 -07:00
pack.h Consolidate packfile allocation further 2013-04-22 16:52:07 +02:00
path.c Three submodule status bug fixes 2013-03-18 17:24:13 -07:00
path.h Improved tree iterator internals 2013-03-14 13:40:15 -07:00
pathspec.c Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
pathspec.h Notify '*' pathspec correctly when diffing 2013-04-11 09:59:26 +02:00
pool.c allow (ignore) bare slash in gitignore 2013-05-29 16:26:25 -05:00
pool.h Improved tree iterator internals 2013-03-14 13:40:15 -07:00
posix.c Fix memory leak in p_getaddrinfo on Amiga 2013-02-15 16:01:31 -08:00
posix.h Make tree iterator handle icase equivalence 2013-03-08 16:39:57 -08:00
pqueue.c update copyrights 2013-01-08 17:31:27 -06:00
pqueue.h update copyrights 2013-01-08 17:31:27 -06:00
push.c Fix broken build when MSVC SDL checks is enabled 2013-05-11 20:13:26 +08:00
push.h Implemented push on the local transport 2013-03-11 17:32:33 -04:00
refdb_fs.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
refdb_fs.h immutable references and a pluggable ref database 2013-03-07 11:01:52 -06:00
refdb.c util: It's called memzero 2013-06-12 21:10:33 +02:00
refdb.h Refcounting 2013-05-30 17:19:43 +02:00
reflog.c Error messages for a couple other boundary conditions 2013-05-01 15:08:12 -07:00
reflog.h update copyrights 2013-01-08 17:31:27 -06:00
refs.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
refs.h refdb_fs: Traits are always surrounded by spaces 2013-05-02 17:42:09 +02:00
refspec.c refspec: add direction accessor 2013-04-30 10:55:17 +02:00
refspec.h remote: dwim the refspecs according to the remote's advertised refs 2013-04-28 18:49:51 +02:00
remote.c Fix some memory leaks 2013-06-10 14:16:56 -07:00
remote.h Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
repo_template.h Make mode handling during init more like git 2013-02-27 13:44:15 -08:00
repository.c util: It's called memzero 2013-06-12 21:10:33 +02:00
repository.h Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
reset.c Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
revparse.c Fix Windows warnings 2013-06-12 15:21:21 -07:00
revwalk.c refs: remove the OID/SYMBOLIC filtering 2013-05-11 11:20:38 +02:00
revwalk.h update copyrights 2013-01-08 17:31:27 -06:00
sha1_lookup.c update copyrights 2013-01-08 17:31:27 -06:00
sha1_lookup.h update copyrights 2013-01-08 17:31:27 -06:00
signature.c Merge pull request #1642 from arrbee/diff-function-context 2013-06-12 14:52:47 -07:00
signature.h update copyrights 2013-01-08 17:31:27 -06:00
stash.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
status.c More tests and bug fixes for status with rename 2013-06-17 10:03:49 -07:00
status.h status access by index, providing more details to callers 2013-06-17 10:03:14 -07:00
strmap.h update copyrights 2013-01-08 17:31:27 -06:00
submodule.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
submodule.h update copyrights 2013-01-08 17:31:27 -06:00
tag.c What are the chances, really 2013-05-29 22:47:37 +02:00
tag.h Simplify object table parse functions 2013-04-22 16:52:06 +02:00
thread-utils.c update copyrights 2013-01-08 17:31:27 -06:00
thread-utils.h Merge remote-tracking branch 'arrbee/minor-paranoia' into development 2013-06-12 21:05:48 +02:00
trace.c Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
trace.h Fix trailing whitespaces 2013-05-15 22:41:30 +02:00
transport.c Fixed compilation issues when libssh2 is missing 2013-05-07 13:56:34 -04:00
tree-cache.c update copyrights 2013-01-08 17:31:27 -06:00
tree-cache.h update copyrights 2013-01-08 17:31:27 -06:00
tree.c Reorganize diff and add basic diff driver 2013-06-10 10:10:39 -07:00
tree.h Add cat-file example and increase const use in API 2013-05-16 10:38:27 -07:00
tsort.c Sorting function cleanup and MinGW fix 2013-03-11 16:43:58 -07:00
util.c Fix some warnings 2013-06-17 10:03:48 -07:00
util.h git__strcasesort_cmp: strcasecmp sorting rules but requires strict equality 2013-06-17 10:03:15 -07:00
vector.c Update diff handling of untracked directories 2013-04-30 04:25:56 -07:00
vector.h Merge the push report into the refs to avoid a 3rd network call 2013-02-08 15:21:37 -05:00