65edd96aec
The first consumer of pattern-matching filenames was the .gitignore feature. In that context, storing a list of patterns as a 'struct exclude_list' makes sense. However, the sparse-checkout feature then adopted these structures and methods, but with the opposite meaning: these patterns match the files that should be included! It would be clearer to rename this entire library as a "pattern matching" library, and the callers apply exclusion/inclusion logic accordingly based on their needs. This commit renames several methods defined in dir.h to make more sense with the renamed 'struct exclude_list' to 'struct pattern_list' and 'struct exclude' to 'struct path_pattern': * last_exclude_matching() -> last_matching_pattern() * parse_exclude() -> parse_path_pattern() In addition, the word 'exclude' was replaced with 'pattern' in the methods below: * add_exclude_list() * add_excludes_from_file_to_list() * add_excludes_from_file() * add_excludes_from_blob_to_list() * add_exclude() * clear_exclude_list() A few methods with the word "exclude" remain. These will be handled seperately. In particular, the method "is_excluded()" is concretely about the .gitignore file relative to a specific directory. This is the important boundary between library and consumer: is_excluded() cares about .gitignore, but is_excluded() calls last_matching_pattern() to make that decision. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
88 lines
3.5 KiB
Plaintext
88 lines
3.5 KiB
Plaintext
Git v2.7.1 Release Notes
|
|
========================
|
|
|
|
Fixes since v2.7
|
|
----------------
|
|
|
|
* An earlier change in 2.5.x-era broke users' hooks and aliases by
|
|
exporting GIT_WORK_TREE to point at the root of the working tree,
|
|
interfering when they tried to use a different working tree without
|
|
setting GIT_WORK_TREE environment themselves.
|
|
|
|
* The "exclude_list" structure has the usual "alloc, nr" pair of
|
|
fields to be used by ALLOC_GROW(), but clear_pattern_list() forgot
|
|
to reset 'alloc' to 0 when it cleared 'nr' to discard the managed
|
|
array.
|
|
|
|
* "git send-email" was confused by escaped quotes stored in the alias
|
|
files saved by "mutt", which has been corrected.
|
|
|
|
* A few unportable C construct have been spotted by clang compiler
|
|
and have been fixed.
|
|
|
|
* The documentation has been updated to hint the connection between
|
|
the '--signoff' option and DCO.
|
|
|
|
* "git reflog" incorrectly assumed that all objects that used to be
|
|
at the tip of a ref must be commits, which caused it to segfault.
|
|
|
|
* The ignore mechanism saw a few regressions around untracked file
|
|
listing and sparse checkout selection areas in 2.7.0; the change
|
|
that is responsible for the regression has been reverted.
|
|
|
|
* Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR
|
|
(e.g. COMMIT_EDITMSG) that is meant to be left after the command is
|
|
done. This however did not work well if the repository is set to
|
|
be shared with core.sharedRepository and the umask of the previous
|
|
user is tighter. They have been made to work better by calling
|
|
unlink(2) and retrying after fopen(3) fails with EPERM.
|
|
|
|
* Asking gitweb for a nonexistent commit left a warning in the server
|
|
log.
|
|
|
|
* "git rebase", unlike all other callers of "gc --auto", did not
|
|
ignore the exit code from "gc --auto".
|
|
|
|
* Many codepaths that run "gc --auto" before exiting kept packfiles
|
|
mapped and left the file descriptors to them open, which was not
|
|
friendly to systems that cannot remove files that are open. They
|
|
now close the packs before doing so.
|
|
|
|
* A recent optimization to filter-branch in v2.7.0 introduced a
|
|
regression when --prune-empty filter is used, which has been
|
|
corrected.
|
|
|
|
* The description for SANITY prerequisite the test suite uses has
|
|
been clarified both in the comment and in the implementation.
|
|
|
|
* "git tag" started listing a tag "foo" as "tags/foo" when a branch
|
|
named "foo" exists in the same repository; remove this unnecessary
|
|
disambiguation, which is a regression introduced in v2.7.0.
|
|
|
|
* The way "git svn" uses auth parameter was broken by Subversion
|
|
1.9.0 and later.
|
|
|
|
* The "split" subcommand of "git subtree" (in contrib/) incorrectly
|
|
skipped merges when it shouldn't, which was corrected.
|
|
|
|
* A few options of "git diff" did not work well when the command was
|
|
run from a subdirectory.
|
|
|
|
* dirname() emulation has been added, as Msys2 lacks it.
|
|
|
|
* The underlying machinery used by "ls-files -o" and other commands
|
|
have been taught not to create empty submodule ref cache for a
|
|
directory that is not a submodule. This removes a ton of wasted
|
|
CPU cycles.
|
|
|
|
* Drop a few old "todo" items by deciding that the change one of them
|
|
suggests is not such a good idea, and doing the change the other
|
|
one suggested to do.
|
|
|
|
* Documentation for "git fetch --depth" has been updated for clarity.
|
|
|
|
* The command line completion learned a handful of additional options
|
|
and command specific syntax.
|
|
|
|
Also includes a handful of documentation and test updates.
|