head 1.9; access; symbols pkgsrc-2018Q1:1.8.0.16 pkgsrc-2018Q1-base:1.8 pkgsrc-2017Q4:1.8.0.14 pkgsrc-2017Q4-base:1.8 pkgsrc-2017Q3:1.8.0.12 pkgsrc-2017Q3-base:1.8 pkgsrc-2017Q2:1.8.0.8 pkgsrc-2017Q2-base:1.8 pkgsrc-2017Q1:1.8.0.6 pkgsrc-2017Q1-base:1.8 pkgsrc-2016Q4:1.8.0.4 pkgsrc-2016Q4-base:1.8 pkgsrc-2016Q3:1.8.0.2 pkgsrc-2016Q3-base:1.8 pkgsrc-2016Q2:1.7.0.2 pkgsrc-2016Q2-base:1.7 pkgsrc-2016Q1:1.5.0.4 pkgsrc-2016Q1-base:1.5 pkgsrc-2015Q4:1.5.0.2 pkgsrc-2015Q4-base:1.5 pkgsrc-2015Q3:1.4.0.8 pkgsrc-2015Q3-base:1.4 pkgsrc-2015Q2:1.4.0.6 pkgsrc-2015Q2-base:1.4 pkgsrc-2015Q1:1.4.0.4 pkgsrc-2015Q1-base:1.4 pkgsrc-2014Q4:1.4.0.2 pkgsrc-2014Q4-base:1.4 pkgsrc-2014Q3:1.3.0.2 pkgsrc-2014Q3-base:1.3 pkgsrc-2014Q2:1.2.0.6 pkgsrc-2014Q2-base:1.2 pkgsrc-2014Q1:1.2.0.4 pkgsrc-2014Q1-base:1.2 pkgsrc-2013Q4:1.2.0.2 pkgsrc-2013Q4-base:1.2 pkgsrc-2013Q3:1.1.0.2 pkgsrc-2013Q3-base:1.1; locks; strict; comment @# @; 1.9 date 2018.04.11.19.39.35; author adam; state dead; branches; next 1.8; commitid ew2PTY7ygeBdL3yA; 1.8 date 2016.09.07.08.56.33; author adam; state Exp; branches; next 1.7; commitid 8XMXZxqgTcUYSklz; 1.7 date 2016.06.14.16.50.04; author adam; state Exp; branches; next 1.6; commitid FgPYP8mq1GKLesaz; 1.6 date 2016.04.07.13.26.37; author adam; state Exp; branches; next 1.5; commitid 4KfHtDerioEEiH1z; 1.5 date 2015.10.17.07.44.56; author adam; state Exp; branches; next 1.4; commitid fi6x4x0j7qH7YqFy; 1.4 date 2014.11.20.21.43.10; author bsiegert; state Exp; branches; next 1.3; commitid VfUiwdGcyuVWeYYx; 1.3 date 2014.08.01.19.18.39; author schmonz; state Exp; branches; next 1.2; commitid Ncy0HkRFI1a61HKx; 1.2 date 2013.12.04.12.51.06; author adam; state Exp; branches; next 1.1; commitid SNMnLkSOvZplAOfx; 1.1 date 2013.09.09.13.54.44; author wiz; state Exp; branches; next ; commitid NIXymrV4eUYEHL4x; desc @@ 1.9 log @git: updated to 2.17.0 Git 2.17: UI, Workflows & Features * "diff" family of commands learned "--find-object=" option to limit the findings to changes that involve the named object. * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * "git rebase" learned to take "--allow-empty-message" option. * "git am" has learned the "--quit" option, in addition to the existing "--abort" option; having the pair mirrors a few other commands like "rebase" and "cherry-pick". * "git worktree add" learned to run the post-checkout hook, just like "git clone" runs it upon the initial checkout. * "git tag" learned an explicit "--edit" option that allows the message given via "-m" and "-F" to be further edited. * "git fetch --prune-tags" may be used as a handy short-hand for getting rid of stale tags that are locally held. * The new "--show-current-patch" option gives an end-user facing way to get the diff being applied when "git rebase" (and "git am") stops with a conflict. * "git add -p" used to offer "/" (look for a matching hunk) as a choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are enabled (e.g. help for '/' won't be shown when there is only one hunk). * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a tag object. This was appropriate default for integrators who pull signed tags from their downstream contributors, but caused an unnecessary merges when used by downstream contributors who habitually "catch up" their topic branches with tagged releases from the upstream. Update "git merge" to default to --no-ff only when merging a tag object that does *not* sit at its usual place in refs/tags/ hierarchy, and allow fast-forwarding otherwise, to mitigate the problem. * "git status" can spend a lot of cycles to compute the relation between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. * "git diff" and friends learned funcname patterns for Go language source files. * "git send-email" learned "--reply-to=
" option. * Funcname pattern used for C# now recognizes "async" keyword. * In a way similar to how "git tag" learned to honor the pager setting only in the list mode, "git config" learned to ignore the pager setting when it is used for setting values (i.e. when the purpose of the operation is not to "show"). Performance, Internal Implementation, Development Support etc. * More perf tests for threaded grep * "perf" test output can be sent to codespeed server. * The build procedure for perl/ part has been greatly simplified by weaning ourselves off of MakeMaker. * Perl 5.8 or greater has been required since Git 1.7.4 released in 2010, but we continued to assume some core modules may not exist and used a conditional "eval { require <> }"; we no longer do this. Some platforms (Fedora/RedHat/CentOS, for example) ship Perl without all core modules by default (e.g. Digest::MD5, File::Temp, File::Spec, Net::Domain, Net::SMTP). Users on such platforms may need to install these additional modules. * As a convenience, we install copies of Perl modules we require which are not part of the core Perl distribution (e.g. Error and Mail::Address). Users and packagers whose operating system provides these modules can set NO_PERL_CPAN_FALLBACKS to avoid installing the bundled modules. * In preparation for implementing narrow/partial clone, the machinery for checking object connectivity used by gc and fsck has been taught that a missing object is OK when it is referenced by a packfile specially marked as coming from trusted repository that promises to make them available on-demand and lazily. * The machinery to clone & fetch, which in turn involves packing and unpacking objects, has been told how to omit certain objects using the filtering mechanism introduced by another topic. It now knows to mark the resulting pack as a promisor pack to tolerate missing objects, laying foundation for "narrow" clones. * The first step to getting rid of mru API and using the doubly-linked list API directly instead. * Retire mru API as it does not give enough abstraction over underlying list API to be worth it. * Rewrite two more "git submodule" subcommands in C. * The tracing machinery learned to report tweaking of environment variables as well. * Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str) * Prevent "clang-format" from breaking line after function return type. * The sequencer infrastructure is shared across "git cherry-pick", "git rebase -i", etc., and has always spawned "git commit" when it needs to create a commit. It has been taught to do so internally, when able, by reusing the codepath "git commit" itself uses, which gives performance boost for a few tens of percents in some sample scenarios. * Push the submodule version of collision-detecting SHA-1 hash implementation a bit harder on builders. * Avoid mmapping small files while using packed refs (especially ones with zero size, which would cause later munmap() to fail). * Conversion from uchar[20] to struct object_id continues. * More tests for wildmatch functions. * The code to binary search starting from a fan-out table (which is how the packfile is indexed with object names) has been refactored into a reusable helper. * We now avoid using identifiers that clash with C++ keywords. Even though it is not a goal to compile Git with C++ compilers, changes like this help use of code analysis tools that targets C++ on our codebase. * The executable is now built in 'script' phase in Travis CI integration, to follow the established practice, rather than during 'before_script' phase. This allows the CI categorize the failures better ('failed' is project's fault, 'errored' is build environment's). * Writing out the index file when the only thing that changed in it is the untracked cache information is often wasteful, and this has been optimized out. * Various pieces of Perl code we have have been cleaned up. * Internal API clean-up to allow write_locked_index() optionally skip writing the in-core index when it is not modified. @ text @$NetBSD: patch-aa,v 1.8 2016/09/07 08:56:33 adam Exp $ --- Makefile.orig 2016-09-03 01:59:09.000000000 +0000 +++ Makefile @@@@ -396,8 +396,6 @@@@ DEVELOPER_CFLAGS = -Werror \ -Wunused \ -Wvla LDFLAGS = -ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS) -ALL_LDFLAGS = $(LDFLAGS) STRIP ?= strip # Create as necessary, replace existing, make ranlib unneeded. @@@@ -441,13 +439,9 @@@@ htmldir_relative = $(patsubst $(prefix)/ export prefix bindir sharedir sysconfdir gitwebdir localedir -CC = cc -AR = ar RM = rm -f DIFF = diff -TAR = tar FIND = find -INSTALL = install TCL_PATH = tclsh TCLTK_PATH = wish XGETTEXT = xgettext @@@@ -1647,8 +1641,8 @@@@ PAGER_ENV_CQ = "$(subst ",\",$(subst \,\ PAGER_ENV_CQ_SQ = $(subst ','\'',$(PAGER_ENV_CQ)) BASIC_CFLAGS += -DPAGER_ENV='$(PAGER_ENV_CQ_SQ)' -ALL_CFLAGS += $(BASIC_CFLAGS) -ALL_LDFLAGS += $(BASIC_LDFLAGS) +ALL_CFLAGS = $(BASIC_CFLAGS) $(CPPFLAGS) $(CFLAGS) +ALL_LDFLAGS = $(BASIC_LDFLAGS) $(LDFLAGS) export DIFF TAR INSTALL DESTDIR SHELL_PATH @@@@ -2341,11 +2335,10 @@@@ install: all ifndef NO_GETTEXT $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(localedir_SQ)' (cd po/build/locale && $(TAR) cf - .) | \ - (cd '$(DESTDIR_SQ)$(localedir_SQ)' && umask 022 && $(TAR) xof -) + (cd '$(DESTDIR_SQ)$(localedir_SQ)' && umask 022 && $(TAR) xf -) endif ifndef NO_PERL $(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install - $(MAKE) -C gitweb install endif ifndef NO_TCLTK $(MAKE) -C gitk-git install @ 1.8 log @Changes 2.10.0: UI, Workflows & Features * "git pull --rebase --verify-signature" learned to warn the user that "--verify-signature" is a no-op when rebasing. * An upstream project can make a recommendation to shallowly clone some submodules in the .gitmodules file it ships. * "git worktree add" learned that '-' can be used as a short-hand for "@@{-1}", the previous branch. * Update the funcname definition to support css files. * The completion script (in contrib/) learned to complete "git status" options. * Messages that are generated by auto gc during "git push" on the receiving end are now passed back to the sending end in such a way that they are shown with "remote: " prefix to avoid confusing the users. * "git add -i/-p" learned to honor diff.compactionHeuristic experimental knob, so that the user can work on the same hunk split as "git diff" output. * "upload-pack" allows a custom "git pack-objects" replacement when responding to "fetch/clone" via the uploadpack.packObjectsHook. (merge b738396 jk/upload-pack-hook later to maint). * Teach format-patch and mailsplit (hence "am") how a line that happens to begin with "From " in the e-mail message is quoted with ">", so that these lines can be restored to their original shape. (merge d9925d1 ew/mboxrd-format-am later to maint). * "git repack" learned the "--keep-unreachable" option, which sends loose unreachable objects to a pack instead of leaving them loose. This helps heuristics based on the number of loose objects (e.g. "gc --auto"). (merge e26a8c4 jk/repack-keep-unreachable later to maint). * "log --graph --format=" learned that "%>|(N)" specifies the width relative to the terminal's left edge, not relative to the area to draw text that is to the right of the ancestry-graph section. It also now accepts negative N that means the column limit is relative to the right border. * A careless invocation of "git send-email directory/" after editing 0001-change.patch with an editor often ends up sending both 0001-change.patch and its backup file, 0001-change.patch~, causing embarrassment and a minor confusion. Detect such an input and offer to skip the backup files when sending the patches out. (merge 531220b jc/send-email-skip-backup later to maint). * "git submodule update" that drives many "git clone" could eventually hit flaky servers/network conditions on one of the submodules; the command learned to retry the attempt. * The output coloring scheme learned two new attributes, italic and strike, in addition to existing bold, reverse, etc. * "git log" learns log.showSignature configuration variable, and a command line option "--no-show-signature" to countermand it. (merge fce04c3 mj/log-show-signature-conf later to maint). * More markings of messages for i18n, with updates to various tests to pass GETTEXT_POISON tests. * "git archive" learned to handle files that are larger than 8GB and commits far in the future than expressible by the traditional US-TAR format. (merge 560b0e8 jk/big-and-future-archive-tar later to maint). * A new configuration variable core.sshCommand has been added to specify what value for GIT_SSH_COMMAND to use per repository. * "git worktree prune" protected worktrees that are marked as "locked" by creating a file in a known location. "git worktree" command learned a dedicated command pair to create and remove such a file, so that the users do not have to do this with editor. * A handful of "git svn" updates. * "git push" learned to accept and pass extra options to the receiving end so that hooks can read and react to them. * "git status" learned to suggest "merge --abort" during a conflicted merge, just like it already suggests "rebase --abort" during a conflicted rebase. * "git jump" script (in contrib/) has been updated a bit. (merge a91e692 jk/git-jump later to maint). * "git push" and "git clone" learned to give better progress meters to the end user who is waiting on the terminal. * An entry "git log --decorate" for the tip of the current branch is shown as "HEAD -> name" (where "name" is the name of the branch); the arrow is now painted in the same color as "HEAD", not in the color for commits. * "git format-patch" learned format.from configuration variable to specify the default settings for its "--from" option. * "git am -3" calls "git merge-recursive" when it needs to fall back to a three-way merge; this call has been turned into an internal subroutine call instead of spawning a separate subprocess. * The command line completion scripts (in contrib/) now knows about "git branch --delete/--move [--remote]". (merge 2703c22 vs/completion-branch-fully-spelled-d-m-r later to maint). * "git rev-parse --git-path hooks/" learned to take core.hooksPath configuration variable (introduced during 2.9 cycle) into account. (merge 9445b49 ab/hooks later to maint). * "git log --show-signature" and other commands that display the verification status of PGP signature now shows the longer key-id, as 32-bit key-id is so last century. @ text @d1 1 a1 1 $NetBSD$ @ 1.7 log @Git 2.9 Release Notes ===================== Backward compatibility notes ---------------------------- The end-user facing Porcelain level commands in the "git diff" and "git log" family by default enable the rename detection; you can still use "diff.renames" configuration variable to disable this. Merging two branches that have no common ancestor with "git merge" is by default forbidden now to prevent creating such an unusual merge by mistake. The output formats of "git log" that indents the commit log message by 4 spaces now expands HT in the log message by default. You can use the "--no-expand-tabs" option to disable this. "git commit-tree" plumbing command required the user to always sign its result when the user sets the commit.gpgsign configuration variable, which was an ancient mistake, which this release corrects. A script that drives commit-tree, if it relies on this mistake, now needs to read commit.gpgsign and pass the -S option as necessary. Updates since v2.8 ------------------ UI, Workflows & Features * Comes with git-multimail 1.3.1 (in contrib/). * The end-user facing commands like "git diff" and "git log" now enable the rename detection by default. * The credential.helper configuration variable is cumulative and there is no good way to override it from the command line. As a special case, giving an empty string as its value now serves as the signal to clear the values specified in various files. * A new "interactive.diffFilter" configuration can be used to customize the diff shown in "git add -i" sessions. * "git p4" now allows P4 author names to be mapped to Git author names. * "git rebase -x" can be used without passing "-i" option. * "git -c credential.= submodule" can now be used to propagate configuration variables related to credential helper down to the submodules. * "git tag" can create an annotated tag without explicitly given an "-a" (or "-s") option (i.e. when a tag message is given). A new configuration variable, tag.forceSignAnnotated, can be used to tell the command to create signed tag in such a situation. * "git merge" used to allow merging two branches that have no common base by default, which led to a brand new history of an existing project created and then get pulled by an unsuspecting maintainer, which allowed an unnecessary parallel history merged into the existing project. The command has been taught not to allow this by default, with an escape hatch "--allow-unrelated-histories" option to be used in a rare event that merges histories of two projects that started their lives independently. * "git pull" has been taught to pass the "--allow-unrelated-histories" option to underlying "git merge". * "git apply -v" learned to report paths in the patch that were skipped via --include/--exclude mechanism or being outside the current working directory. * Shell completion (in contrib/) updates. * The commit object name reported when "rebase -i" stops has been shortened. * "git worktree add" can be given "--no-checkout" option to only create an empty worktree without checking out the files. * "git mergetools" learned to drive ExamDiff. * "git pull --rebase" learned "--[no-]autostash" option, so that the rebase.autostash configuration variable set to true can be overridden from the command line. * When "git log" shows the log message indented by 4-spaces, the remainder of a line after a HT does not align in the way the author originally intended. The command now expands tabs by default to help such a case, and allows the users to override it with a new option, "--no-expand-tabs". * "git send-email" now uses a more readable timestamps when formulating a message ID. * "git rerere" can encounter two or more files with the same conflict signature that have to be resolved in different ways, but there was no way to record these separate resolutions. * "git p4" learned to record P4 jobs in Git commit that imports from the history in Perforce. * "git describe --contains" often made a hard-to-justify choice of tag to name a given commit, because it tried to come up with a name with smallest number of hops from a tag, causing an old commit whose close descendant that is recently tagged were not described with respect to an old tag but with a newer tag. It did not help that its computation of "hop" count was further tweaked to penalize being on a side branch of a merge. The logic has been updated to favor using the tag with the oldest tagger date, which is a lot easier to explain to the end users: "We describe a commit in terms of the (chronologically) oldest tag that contains the commit." * "git clone" learned the "--shallow-submodules" option. * HTTP transport clients learned to throw extra HTTP headers at the server, specified via http.extraHeader configuration variable. * The "--compaction-heuristic" option to "git diff" family of commands enables a heuristic to make the patch output more readable by using a blank line as a strong hint that the contents before and after it belong to logically separate units. It is still experimental. * A new configuration variable core.hooksPath allows customizing where the hook directory is. * An earlier addition of "sanitize_submodule_env" with 14111fc4 (git: submodule honor -c credential.* from command line, 2016-02-29) turned out to be a convoluted no-op; implement what it wanted to do correctly, and stop filtering settings given via "git -c var=val". * "git commit --dry-run" reported "No, no, you cannot commit." in one case where "git commit" would have allowed you to commit, and this improves it a little bit ("git commit --dry-run --short" still does not give you the correct answer, for example). This is a stop-gap measure in that "commit --short --dry-run" still gives an incorrect result. * The experimental "multiple worktree" feature gains more safety to forbid operations on a branch that is checked out or being actively worked on elsewhere, by noticing that e.g. it is being rebased. * "git format-patch" learned a new "--base" option to record what (public, well-known) commit the original series was built on in its output. * "git commit" learned to pay attention to the "commit.verbose" configuration variable and act as if the "--verbose" option was given from the command line. * Updated documentation gives hints to GMail users with two-factor auth enabled that they need app-specific-password when using "git send-email". * The manpage output of our documentation did not render well in terminal; typeset literals in bold by default to make them stand out more. * The mark-up in the top-level README.md file has been updated to typeset CLI command names differently from the body text. Performance, Internal Implementation, Development Support etc. * The embedded args argv-array in the child process is used to build the command line to run pack-objects instead of using a separate array of strings. * A test for tags has been restructured so that more parts of it can easily be run on a platform without a working GnuPG. * The startup_info data, which records if we are working inside a repository (among other things), are now uniformly available to Git subcommand implementations, and Git avoids attempting to touch references when we are not in a repository. * The command line argument parser for "receive-pack" has been rewritten to use parse-options. * A major part of "git submodule update" has been ported to C to take advantage of the recently added framework to run download tasks in parallel. Other updates to "git submodule" that move pieces of logic to C continues. * Rename bunch of tests on "git clone" for better organization. * The tests that involve running httpd leaked the system-wide configuration in /etc/gitconfig to the tested environment. * Build updates for MSVC. * The repository set-up sequence has been streamlined (the biggest change is that there is no longer git_config_early()), so that we do not attempt to look into refs/* when we know we do not have a Git repository. * Code restructuring around the "refs" API to prepare for pluggable refs backends. * Sources to many test helper binaries and the generated helpers have been moved to t/helper/ subdirectory to reduce clutter at the top level of the tree. * Unify internal logic between "git tag -v" and "git verify-tag" commands by making one directly call into the other. * "merge-recursive" strategy incorrectly checked if a path that is involved in its internal merge exists in the working tree. * The test scripts for "git p4" (but not "git p4" implementation itself) has been updated so that they would work even on a system where the installed version of Python is python 3. * As nobody maintains our in-tree git.spec.in and distros use their own spec file, we stopped pretending that we support "make rpm". * Move from "unsigned char[20]" to "struct object_id" continues. * The code for warning_errno/die_errno has been refactored and a new error_errno() reporting helper is introduced. (merge 1da045f nd/error-errno later to maint). * Running tests with '-x' option to trace the individual command executions is a useful way to debug test scripts, but some tests that capture the standard error stream and check what the command said can be broken with the trace output mixed in. When running our tests under "bash", however, we can redirect the trace output to another file descriptor to keep the standard error of programs being tested intact. * t0040 had too many unnecessary repetitions in its test data. Teach test-parse-options program so that a caller can tell what it expects in its output, so that these repetitions can be cleaned up. * Add perf test for "rebase -i". * Common mistakes when writing gitlink: in our documentation are found by "make check-docs". * t9xxx series has been updated primarily for readability, while fixing small bugs in it. A few scripted Porcelain commands have also been updated to fix possible bugs around their use of "test -z" and "test -n". * CI test was taught to run git-svn tests. * "git cat-file --batch-all" has been sped up, by taking advantage of the fact that it does not have to read a list of objects, in two ways. * test updates to make it more readable and maintainable. (merge e6273f4 es/t1500-modernize later to maint). * "make DEVELOPER=1" worked as expected; setting DEVELOPER=1 in config.mak didn't. (merge 51dd3e8 mm/makefile-developer-can-be-in-config-mak later to maint). * The way how "submodule--helper list" signals unmatch error to its callers has been updated. * A bash-ism "local" has been removed from "git submodule" scripted Porcelain. Also contains various documentation updates and code clean-ups. @ text @d3 1 a3 1 --- Makefile.orig 2016-06-13 19:07:49.000000000 +0000 d5 1 a5 1 @@@@ -385,8 +385,6 @@@@ DEVELOPER_CFLAGS = -Werror \ d14 1 a14 1 @@@@ -430,13 +428,9 @@@@ htmldir_relative = $(patsubst $(prefix)/ d28 3 a30 3 @@@@ -1613,8 +1607,8 @@@@ ifdef DEFAULT_HELP_FORMAT BASIC_CFLAGS += -DDEFAULT_HELP_FORMAT='"$(DEFAULT_HELP_FORMAT)"' endif d39 1 a39 1 @@@@ -2309,11 +2303,10 @@@@ install: all @ 1.6 log @Changes 2.8.1: * "make rpmbuild" target was broken as its input, git.spec.in, was not updated to match a file it describes that has been renamed recently. This has been fixed. @ text @d3 1 a3 1 --- Makefile.orig 2016-04-03 19:07:18.000000000 +0000 d5 3 a7 3 @@@@ -379,8 +379,6 @@@@ GIT-VERSION-FILE: FORCE CFLAGS = -g -O2 -Wall d13 2 a14 2 ifdef DEVELOPER @@@@ -436,13 +434,9 @@@@ htmldir_relative = $(patsubst $(prefix)/ a24 1 RPMBUILD = rpmbuild d27 2 a28 1 @@@@ -1619,8 +1613,8 @@@@ ifdef DEFAULT_HELP_FORMAT d39 1 a39 1 @@@@ -2315,11 +2309,10 @@@@ install: all @ 1.5 log @Changes 2.6.2: * There were some classes of errors that "git fsck" diagnosed to its standard error that did not cause it to exit with non-zero status. * A test script for the HTTP service had a timing dependent bug, which was fixed. * Performance-measurement tests did not work without an installed Git. * On a case insensitive filesystems, setting GIT_WORK_TREE variable using a random cases that does not agree with what the filesystem thinks confused Git that it wasn't inside the working tree. * When "git am" was rewritten as a built-in, it stopped paying attention to user.signingkey, which was fixed. * After "git checkout --detach", "git status" reported a fairly useless "HEAD detached at HEAD", instead of saying at which exact commit. * "git rebase -i" had a minor regression recently, which stopped considering a line that begins with an indented '#' in its insn sheet not a comment, which is now fixed. * Description of the "log.follow" configuration variable in "git log" documentation is now also copied to "git config" documentation. * Allocation related functions and stdio are unsafe things to call inside a signal handler, and indeed killing the pager can cause glibc to deadlock waiting on allocation mutex as our signal handler tries to free() some data structures in wait_for_pager(). Reduce these unsafe calls. * The way how --ref/--notes to specify the notes tree reference are DWIMmed was not clearly documented. * Customization to change the behaviour with "make -w" and "make -s" in our Makefile was broken when they were used together. * The Makefile always runs the library archiver with hardcoded "crs" options, which was inconvenient for exotic platforms on which people want to use programs with totally different set of command line options. * The ssh transport, just like any other transport over the network, did not clear GIT_* environment variables, but it is possible to use SendEnv and AcceptEnv to leak them to the remote invocation of Git, which is not a good idea at all. Explicitly clear them just like we do for the local transport. * "git blame --first-parent v1.0..v2.0" was not rejected but did not limit the blame to commits on the first parent chain. * Very small number of options take a parameter that is optional (which is not a great UI element as they can only appear at the end of the command line). Add notice to documentation of each and every one of them. Also contains typofixes, documentation updates and trivial code clean-ups. @ text @d3 1 a3 1 --- Makefile.orig 2015-10-16 21:58:26.000000000 +0000 d5 1 a5 1 @@@@ -371,8 +371,6 @@@@ GIT-VERSION-FILE: FORCE d13 2 a14 2 # Create as necessary, replace existing, make ranlib unneeded. @@@@ -416,13 +414,9 @@@@ htmldir_relative = $(patsubst $(prefix)/ d28 1 a28 1 @@@@ -1586,8 +1580,8 @@@@ ifdef DEFAULT_HELP_FORMAT d39 1 a39 1 @@@@ -2278,11 +2272,10 @@@@ install: all @ 1.4 log @Do not attempt to set ownership of some files, this breaks unprivileged builds on Mac OS X Tiger. Patch provided by Sevan Janiyan in PR pkg/49051. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.3 2014/08/01 19:18:39 schmonz Exp $ d3 1 a3 1 --- Makefile.orig 2014-05-30 21:38:10.000000000 +0000 d5 1 a5 1 @@@@ -354,8 +354,6 @@@@ GIT-VERSION-FILE: FORCE d13 2 a14 2 # Among the variables below, these: @@@@ -396,13 +394,9 @@@@ htmldir_relative = $(patsubst $(prefix)/ d28 1 a28 1 @@@@ -1635,8 +1629,8 @@@@ ifdef DEFAULT_HELP_FORMAT d39 1 a39 1 @@@@ -2349,11 +2343,10 @@@@ install: all d41 2 a42 2 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(localedir_SQ)' (cd po/build/locale && $(TAR) cf - .) | \ @ 1.3 log @Even though we specify OpenSSL, on sufficiently new Mac OS X, Git has been linking with Apple's CommonCrypto instead. Add an "apple-common-crypto" option that explicitly avoids CommonCrypto when it's off. Turn it off by default, and set PKG_FAIL_REASON if it's enabled on an unsuitable system. While here, regenerate fuzzy patches. Addresses pkg/49051. Bump PKGREVISION. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.2 2013/12/04 12:51:06 adam Exp $ d39 6 a44 1 @@@@ -2353,7 +2347,6 @@@@ ifndef NO_GETTEXT @ 1.2 log @Changes 1.8.5.1: * "git submodule init" copied "submodule.$name.update" settings from .gitmodules to .git/config without making sure if the suggested value was sensible. @ text @d1 1 a1 1 $NetBSD$ d3 1 a3 1 --- Makefile.orig 2013-12-03 19:35:24.000000000 +0000 d5 1 a5 1 @@@@ -351,8 +351,6 @@@@ GIT-VERSION-FILE: FORCE d14 1 a14 1 @@@@ -393,13 +391,9 @@@@ htmldir_relative = $(patsubst $(prefix)/ d28 1 a28 1 @@@@ -1630,8 +1624,8 @@@@ ifdef DEFAULT_HELP_FORMAT d39 1 a39 1 @@@@ -2338,7 +2332,6 @@@@ ifndef NO_GETTEXT @ 1.1 log @Reimport scmgit-base as git-base-1.8.4 in devel/git-base. Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows. This package contains only the git program (and subcommands). It does not contain man pages or the tk-based repository browser. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.20 2013/04/08 14:12:25 mef Exp $ d3 1 a3 1 --- Makefile.orig 2012-10-21 21:32:15.000000000 +0000 d5 1 a5 1 @@@@ -343,8 +343,6 @@@@ endif d14 1 a14 1 @@@@ -379,13 +377,9 @@@@ pathsep = : d28 1 a28 1 @@@@ -2038,8 +2031,8 @@@@ ifdef DEFAULT_HELP_FORMAT d39 1 a39 1 @@@@ -2732,7 +2725,6 @@@@ ifndef NO_GETTEXT d45 2 a46 2 ifndef NO_PYTHON $(MAKE) -C git_remote_helpers prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install @