When doing copy detection, it is often necessary to include
UNMODIFIED records in the git_diff so they are available as source
records for GIT_DIFF_FIND_COPIES_FROM_UNMODIFIED. Yet in the final
diff, often you will not want to have these UNMODIFIED records.
This adds a flag which marks these UNMODIFIED records for deletion
from the diff list so they will be removed after the rename detect
phase is over.
When FIND_COPIES is used in combination with BREAK_REWRITES for
rename detection, there was a bug where the split MODIFIED delta
was only used as a target for RENAME records and not for COPIED
records. This fixes that, converting the split into a pair of
DELETED and COPIED deltas when that circumstance arises.
* add FindIconv helper for CMake iconv detection
* only default using iconv to ON for MacOS
* update pkg-config generation to include iconv dependency better
Apologies for the delay. This release is chunky,
but you're probably used to chunky releases by now.
Full changelog follows:
Internal changes
+ Added support for decomposed Unicode paths in Mac OS X
+ Added support for junctions in win32
+ Fixed issues with HTTP redirects in the network stack
+ Performance improvements (as always)
git2/blame.h
+ added full support for blame operations
git2/blob.h
+ added `git_blob_filtered_content` to load blobs in
memory with their corresponding filters applied
git2/branch.h
+ added branch iterators as an alternative to the
callback-based API
git2/buffer.h
+ exported the git_buf struct to allow binary buffers
to be passed from/to the library. This simplifies
several APIs
git2/checkout.h
+ implemented additional checkout options ('skip unmerged',
'use ours' and 'use theirs')
git2/clone.h
+ simplified the clone API
+ added new `git_clone_into` to clone into an existing
(empty) repository
git2/commit.h
+ added APIs to access the raw (uncleaned) text of a commit
message
git2/common.h
+ added global options to set the default paths to load
templates from
git2/config.h
+ added multivar iterators
+ added globbing iterator
+ added `git_config_foreach_match` to perform operations
on every single var in a config file
git2/diff.h
+ restructured and simplified the diff API
git2/filter.h
+ added external APIs to configure and apply custom filters
to checked out blobs
git2/index.h
+ `git_index_read` can now force a reload of the index file
even if it hasn't changed on-disk
git2/indexer.h
+ improved the streaming indexer APIs
git2/merge.h
+ added support for merge!
git2/object.h
+ added helper API to lookup a generic object by path
git2/pack.h
+ added progress callbacks to the packbuilder
git2/patch.h
+ added support for patch generation as part of the Diff
API revamp
git2/pathspec.h
+ added helper APIs to work with pathspecs and match files
in the workdir or diffs
git2/push.h
+ added progress callbacks to push
git2/reflog.h
+ changed reflog APIs to work on reference names instead of
the references themselves, so they become less racy
git2/remote.h
+ added support for setting refspecs on remotes, either at
creation or on existing ones
+ simplified the remotes API
git2/revwalk.h
+ add API to simplify parents during a walk
git2/signature.h
+ add helper to create a signature with the default values for
a repository (i.e. the set `user.name` and `user.email` values,
and the current time)
git2/submodules.h
+ improve the status detection for submodules
git2/sys/
+ exported many new internal APIs, such as pluggabe transport
APIs
-vmg, out