Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
ac33201285 | |||
531788af95 | |||
4000b40209 | |||
5a4ffdf587 | |||
3ec804490a |
3
.gitignore
vendored
3
.gitignore
vendored
@ -155,7 +155,6 @@
|
||||
/git-status
|
||||
/git-stripspace
|
||||
/git-submodule
|
||||
/git-submodule--helper
|
||||
/git-svn
|
||||
/git-symbolic-ref
|
||||
/git-tag
|
||||
@ -187,7 +186,6 @@
|
||||
/test-dump-cache-tree
|
||||
/test-dump-split-index
|
||||
/test-dump-untracked-cache
|
||||
/test-fake-ssh
|
||||
/test-scrap-cache-tree
|
||||
/test-genrandom
|
||||
/test-hashmap
|
||||
@ -207,7 +205,6 @@
|
||||
/test-sha1-array
|
||||
/test-sigchain
|
||||
/test-string-list
|
||||
/test-submodule-config
|
||||
/test-subprocess
|
||||
/test-svn-fe
|
||||
/test-urlmatch-normalization
|
||||
|
3
.mailmap
3
.mailmap
@ -51,7 +51,6 @@ Dirk Süsserott <newsletter@dirk.my1.cc>
|
||||
Eric Blake <eblake@redhat.com> <ebb9@byu.net>
|
||||
Eric Hanchrow <eric.hanchrow@gmail.com> <offby1@blarg.net>
|
||||
Eric S. Raymond <esr@thyrsus.com>
|
||||
Eric Wong <e@80x24.org> <normalperson@yhbt.net>
|
||||
Erik Faye-Lund <kusmabite@gmail.com> <kusmabite@googlemail.com>
|
||||
Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com> <eyvind-git@orakel.ntnu.no>
|
||||
Florian Achleitner <florian.achleitner.2.6.31@gmail.com> <florian.achleitner2.6.31@gmail.com>
|
||||
@ -187,7 +186,7 @@ Philip Jägenstedt <philip@foolip.org> <philip.jagenstedt@gmail.com>
|
||||
Philipp A. Hartmann <pah@qo.cx> <ph@sorgh.de>
|
||||
Philippe Bruhat <book@cpan.org>
|
||||
Ralf Thielow <ralf.thielow@gmail.com> <ralf.thielow@googlemail.com>
|
||||
Ramsay Jones <ramsay@ramsayjones.plus.com> <ramsay@ramsay1.demon.co.uk>
|
||||
Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk>
|
||||
René Scharfe <l.s.r@web.de> <rene.scharfe@lsrfire.ath.cx>
|
||||
Robert Fitzsimons <robfitz@273k.net>
|
||||
Robert Shearman <robertshearman@gmail.com> <rob@codeweavers.com>
|
||||
|
117
.travis.yml
117
.travis.yml
@ -1,117 +0,0 @@
|
||||
language: c
|
||||
|
||||
sudo: false
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/travis-cache
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- language-pack-is
|
||||
|
||||
env:
|
||||
global:
|
||||
- DEVELOPER=1
|
||||
# The Linux build installs the defined dependency versions below.
|
||||
# The OS X build installs the latest available versions. Keep that
|
||||
# in mind when you encounter a broken OS X build!
|
||||
- LINUX_P4_VERSION="16.1"
|
||||
- LINUX_GIT_LFS_VERSION="1.2.0"
|
||||
- DEFAULT_TEST_TARGET=prove
|
||||
- GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
|
||||
- GIT_TEST_OPTS="--verbose --tee"
|
||||
- GIT_TEST_CLONE_2GB=YesPlease
|
||||
# t9810 occasionally fails on Travis CI OS X
|
||||
# t9816 occasionally fails with "TAP out of sequence errors" on Travis CI OS X
|
||||
- GIT_SKIP_TESTS="t9810 t9816"
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- env: Documentation
|
||||
os: linux
|
||||
compiler: clang
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- asciidoc
|
||||
- xmlto
|
||||
before_install:
|
||||
before_script:
|
||||
script: ci/test-documentation.sh
|
||||
after_failure:
|
||||
|
||||
before_install:
|
||||
- >
|
||||
case "${TRAVIS_OS_NAME:-linux}" in
|
||||
linux)
|
||||
mkdir --parents custom/p4
|
||||
pushd custom/p4
|
||||
wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4d
|
||||
wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4
|
||||
chmod u+x p4d
|
||||
chmod u+x p4
|
||||
export PATH="$(pwd):$PATH"
|
||||
popd
|
||||
mkdir --parents custom/git-lfs
|
||||
pushd custom/git-lfs
|
||||
wget --quiet https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VERSION/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz
|
||||
tar --extract --gunzip --file "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
|
||||
cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .
|
||||
export PATH="$(pwd):$PATH"
|
||||
popd
|
||||
;;
|
||||
osx)
|
||||
brew_force_set_latest_binary_hash () {
|
||||
FORMULA=$1
|
||||
SHA=$(brew fetch --force $FORMULA 2>&1 | grep ^SHA256: | cut -d ' ' -f 2)
|
||||
sed -E -i.bak "s/sha256 \"[0-9a-f]{64}\"/sha256 \"$SHA\"/g" \
|
||||
/usr/local/Library/Taps/homebrew/homebrew-binary/$FORMULA.rb
|
||||
}
|
||||
brew update --quiet
|
||||
brew tap homebrew/binary --quiet
|
||||
brew_force_set_latest_binary_hash perforce
|
||||
brew_force_set_latest_binary_hash perforce-server
|
||||
brew install git-lfs perforce-server perforce gettext
|
||||
brew link --force gettext
|
||||
;;
|
||||
esac;
|
||||
echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)";
|
||||
p4d -V | grep Rev.;
|
||||
echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)";
|
||||
p4 -V | grep Rev.;
|
||||
echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)";
|
||||
git-lfs version;
|
||||
mkdir -p $HOME/travis-cache;
|
||||
ln -s $HOME/travis-cache/.prove t/.prove;
|
||||
|
||||
before_script: make --jobs=2
|
||||
|
||||
script: make --quiet test
|
||||
|
||||
after_failure:
|
||||
- >
|
||||
: '<-- Click here to see detailed test output! ';
|
||||
for TEST_EXIT in t/test-results/*.exit;
|
||||
do
|
||||
if [ "$(cat "$TEST_EXIT")" != "0" ];
|
||||
then
|
||||
TEST_OUT="${TEST_EXIT%exit}out";
|
||||
echo "------------------------------------------------------------------------";
|
||||
echo "$(tput setaf 1)${TEST_OUT}...$(tput sgr0)";
|
||||
echo "------------------------------------------------------------------------";
|
||||
cat "${TEST_OUT}";
|
||||
fi;
|
||||
done;
|
||||
|
||||
notifications:
|
||||
email: false
|
@ -171,11 +171,6 @@ For C programs:
|
||||
|
||||
- We try to keep to at most 80 characters per line.
|
||||
|
||||
- As a Git developer we assume you have a reasonably modern compiler
|
||||
and we recommend you to enable the DEVELOPER makefile knob to
|
||||
ensure your patch is clear of all compiler warnings we care about,
|
||||
by e.g. "echo DEVELOPER=1 >>config.mak".
|
||||
|
||||
- We try to support a wide range of C compilers to compile Git with,
|
||||
including old ones. That means that you should not use C99
|
||||
initializers, even if a lot of compilers grok it.
|
||||
|
@ -84,7 +84,7 @@ Updates since v1.7.6
|
||||
logic used by "git diff" to determine the hunk header.
|
||||
|
||||
* Invoking the low-level "git http-fetch" without "-a" option (which
|
||||
git itself never did--normal users should not have to worry about
|
||||
git itself never did---normal users should not have to worry about
|
||||
this) is now deprecated.
|
||||
|
||||
* The "--decorate" option to "git log" and its family learned to
|
||||
|
@ -1,5 +1,5 @@
|
||||
Git v1.8.3.1 Release Notes
|
||||
==========================
|
||||
========================
|
||||
|
||||
Fixes since v1.8.3
|
||||
------------------
|
||||
|
@ -1,5 +1,5 @@
|
||||
Git v1.8.4.1 Release Notes
|
||||
==========================
|
||||
========================
|
||||
|
||||
Fixes since v1.8.4
|
||||
------------------
|
||||
|
@ -1,5 +1,5 @@
|
||||
Git v1.8.4.2 Release Notes
|
||||
==========================
|
||||
========================
|
||||
|
||||
Fixes since v1.8.4.1
|
||||
--------------------
|
||||
|
@ -1,5 +1,5 @@
|
||||
Git v1.8.4.3 Release Notes
|
||||
==========================
|
||||
========================
|
||||
|
||||
Fixes since v1.8.4.2
|
||||
--------------------
|
||||
|
@ -1,5 +1,5 @@
|
||||
Git v1.8.4.4 Release Notes
|
||||
==========================
|
||||
========================
|
||||
|
||||
Fixes since v1.8.4.3
|
||||
--------------------
|
||||
|
@ -177,7 +177,7 @@ Performance, Internal Implementation, etc.
|
||||
* The naming convention of the packfiles has been updated; it used to
|
||||
be based on the enumeration of names of the objects that are
|
||||
contained in the pack, but now it also depends on how the packed
|
||||
result is represented--packing the same set of objects using
|
||||
result is represented---packing the same set of objects using
|
||||
different settings (or delta order) would produce a pack with
|
||||
different name.
|
||||
|
||||
|
12
Documentation/RelNotes/2.4.12.txt
Normal file
12
Documentation/RelNotes/2.4.12.txt
Normal file
@ -0,0 +1,12 @@
|
||||
Git v2.4.12 Release Notes
|
||||
=========================
|
||||
|
||||
Fixes since v2.4.11
|
||||
-------------------
|
||||
|
||||
* "git-shell" rejects a request to serve a repository whose name
|
||||
begins with a dash, which makes it no longer possible to get it
|
||||
confused into spawning service programs like "git-upload-pack" with
|
||||
an option like "--help", which in turn would spawn an interactive
|
||||
pager, instead of working with the repository user asked to access
|
||||
(i.e. the one whose name is "--help").
|
12
Documentation/RelNotes/2.5.6.txt
Normal file
12
Documentation/RelNotes/2.5.6.txt
Normal file
@ -0,0 +1,12 @@
|
||||
Git v2.5.6 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.5.5
|
||||
------------------
|
||||
|
||||
* "git-shell" rejects a request to serve a repository whose name
|
||||
begins with a dash, which makes it no longer possible to get it
|
||||
confused into spawning service programs like "git-upload-pack" with
|
||||
an option like "--help", which in turn would spawn an interactive
|
||||
pager, instead of working with the repository user asked to access
|
||||
(i.e. the one whose name is "--help").
|
@ -1,370 +0,0 @@
|
||||
Git 2.6 Release Notes
|
||||
=====================
|
||||
|
||||
Updates since v2.5
|
||||
------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* An asterisk as a substring (as opposed to the entirety) of a path
|
||||
component for both side of a refspec, e.g.
|
||||
"refs/heads/o*:refs/remotes/heads/i*", is now allowed.
|
||||
|
||||
* New userdiff pattern definition for fountain screenwriting markup
|
||||
format has been added.
|
||||
|
||||
* "git log" and friends learned a new "--date=format:..." option to
|
||||
format timestamps using system's strftime(3).
|
||||
|
||||
* "git fast-import" learned to respond to the get-mark command via
|
||||
its cat-blob-fd interface.
|
||||
|
||||
* "git rebase -i" learned "drop commit-object-name subject" command
|
||||
as another way to skip replaying of a commit.
|
||||
|
||||
* A new configuration variable can enable "--follow" automatically
|
||||
when "git log" is run with one pathspec argument.
|
||||
|
||||
* "git status" learned to show a more detailed information regarding
|
||||
the "rebase -i" session in progress.
|
||||
|
||||
* "git cat-file" learned "--batch-all-objects" option to enumerate all
|
||||
available objects in the repository more quickly than "rev-list
|
||||
--all --objects" (the output includes unreachable objects, though).
|
||||
|
||||
* "git fsck" learned to ignore errors on a set of known-to-be-bad
|
||||
objects, and also allows the warning levels of various kinds of
|
||||
non-critical breakages to be tweaked.
|
||||
|
||||
* "git rebase -i"'s list of todo is made configurable.
|
||||
|
||||
* "git send-email" now performs alias-expansion on names that are
|
||||
given via --cccmd, etc.
|
||||
|
||||
* An environment variable GIT_REPLACE_REF_BASE tells Git to look into
|
||||
refs hierarchy other than refs/replace/ for the object replacement
|
||||
data.
|
||||
|
||||
* Allow untracked cache (experimental) to be used when sparse
|
||||
checkout (experimental) is also in use.
|
||||
|
||||
* "git pull --rebase" has been taught to pay attention to
|
||||
rebase.autostash configuration.
|
||||
|
||||
* The command-line completion script (in contrib/) has been updated.
|
||||
|
||||
* A negative !ref entry in multi-value transfer.hideRefs
|
||||
configuration can be used to say "don't hide this one".
|
||||
|
||||
* After "git am" without "-3" stops, running "git am -3" pays attention
|
||||
to "-3" only for the patch that caused the original invocation
|
||||
to stop.
|
||||
|
||||
* When linked worktree is used, simultaneous "notes merge" instances
|
||||
for the same ref in refs/notes/* are prevented from stomping on
|
||||
each other.
|
||||
|
||||
* "git send-email" learned a new option --smtp-auth to limit the SMTP
|
||||
AUTH mechanisms to be used to a subset of what the system library
|
||||
supports.
|
||||
|
||||
* A new configuration variable http.sslVersion can be used to specify
|
||||
what specific version of SSL/TLS to use to make a connection.
|
||||
|
||||
* "git notes merge" can be told with "--strategy=<how>" option how to
|
||||
automatically handle conflicts; this can now be configured by
|
||||
setting notes.mergeStrategy configuration variable.
|
||||
|
||||
* "git log --cc" did not show any patch, even though most of the time
|
||||
the user meant "git log --cc -p -m" to see patch output for commits
|
||||
with a single parent, and combined diff for merge commits. The
|
||||
command is taught to DWIM "--cc" (without "--raw" and other forms
|
||||
of output specification) to "--cc -p -m".
|
||||
|
||||
* "git config --list" output was hard to parse when values consist of
|
||||
multiple lines. "--name-only" option is added to help this.
|
||||
|
||||
* A handful of usability & cosmetic fixes to gitk and l10n updates.
|
||||
|
||||
* A completely empty e-mail address <> is now allowed in the authors
|
||||
file used by git-svn, to match the way it accepts the output from
|
||||
authors-prog.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* In preparation for allowing different "backends" to store the refs
|
||||
in a way different from the traditional "one ref per file in
|
||||
$GIT_DIR or in a $GIT_DIR/packed-refs file" filesystem storage,
|
||||
direct filesystem access to ref-like things like CHERRY_PICK_HEAD
|
||||
from scripts and programs has been reduced.
|
||||
|
||||
* Computation of untracked status indicator by bash prompt
|
||||
script (in contrib/) has been optimized.
|
||||
|
||||
* Memory use reduction when commit-slab facility is used to annotate
|
||||
sparsely (which is not recommended in the first place).
|
||||
|
||||
* Clean up refs API and make "git clone" less intimate with the
|
||||
implementation detail.
|
||||
|
||||
* "git pull" was reimplemented in C.
|
||||
|
||||
* The packet tracing machinery allows to capture an incoming pack
|
||||
data to a file for debugging.
|
||||
|
||||
* Move machinery to parse human-readable scaled numbers like 1k, 4M,
|
||||
and 2G as an option parameter's value from pack-objects to
|
||||
parse-options API, to make it available to other codepaths.
|
||||
|
||||
* "git verify-tag" and "git verify-commit" have been taught to share
|
||||
more code, and then learned to optionally show the verification
|
||||
message from the underlying GPG implementation.
|
||||
|
||||
* Various enhancements around "git am" reading patches generated by
|
||||
foreign SCM have been made.
|
||||
|
||||
* Ref listing by "git branch -l" and "git tag -l" commands has
|
||||
started to be rebuilt, based on the for-each-ref machinery.
|
||||
|
||||
* The code to perform multi-tree merges has been taught to repopulate
|
||||
the cache-tree upon a successful merge into the index, so that
|
||||
subsequent "diff-index --cached" (hence "status") and "write-tree"
|
||||
(hence "commit") will go faster.
|
||||
|
||||
The same logic in "git checkout" may now be removed, but that is a
|
||||
separate issue.
|
||||
|
||||
* Tests that assume how reflogs are represented on the filesystem too
|
||||
much have been corrected.
|
||||
|
||||
* "git am" has been rewritten in "C".
|
||||
|
||||
* git_path() and mkpath() are handy helper functions but it is easy
|
||||
to misuse, as the callers need to be careful to keep the number of
|
||||
active results below 4. Their uses have been reduced.
|
||||
|
||||
* The "lockfile" API has been rebuilt on top of a new "tempfile" API.
|
||||
|
||||
* To prepare for allowing a different "ref" backend to be plugged in
|
||||
to the system, update_ref()/delete_ref() have been taught about
|
||||
ref-like things like MERGE_HEAD that are per-worktree (they will
|
||||
always be written to the filesystem inside $GIT_DIR).
|
||||
|
||||
* The gitmodules API that is accessed from the C code learned to
|
||||
cache stuff lazily.
|
||||
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
||||
|
||||
|
||||
Fixes since v2.5
|
||||
----------------
|
||||
|
||||
Unless otherwise noted, all the fixes since v2.5 in the maintenance
|
||||
track are contained in this release (see the maintenance releases'
|
||||
notes for details).
|
||||
|
||||
* "git subtree" (in contrib/) depended on "git log" output to be
|
||||
stable, which was a no-no. Apply a workaround to force a
|
||||
particular date format.
|
||||
(merge e7aac44 da/subtree-date-confusion later to maint).
|
||||
|
||||
* An attempt to delete a ref by pushing into a repository whose HEAD
|
||||
symbolic reference points at an unborn branch that cannot be
|
||||
created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD
|
||||
points at refs/heads/a) failed.
|
||||
(merge b112b14 jx/do-not-crash-receive-pack-wo-head later to maint).
|
||||
|
||||
* The low-level "git send-pack" did not honor 'user.signingkey'
|
||||
configuration variable when sending a signed-push.
|
||||
(merge d830d39 db/send-pack-user-signingkey later to maint).
|
||||
|
||||
* "sparse checkout" misbehaved for a path that is excluded from the
|
||||
checkout when switching between branches that differ at the path.
|
||||
(merge 7d78241 as/sparse-checkout-removal later to maint).
|
||||
|
||||
* An experimental "untracked cache" feature used uname(2) in a
|
||||
slightly unportable way.
|
||||
(merge 100e433 cb/uname-in-untracked later to maint).
|
||||
|
||||
* A "rebase" replays changes of the local branch on top of something
|
||||
else, as such they are placed in stage #3 and referred to as
|
||||
"theirs", while the changes in the new base, typically a foreign
|
||||
work, are placed in stage #2 and referred to as "ours". Clarify
|
||||
the "checkout --ours/--theirs".
|
||||
(merge f303016 se/doc-checkout-ours-theirs later to maint).
|
||||
|
||||
* The "rev-parse --parseopt" mode parsed the option specification
|
||||
and the argument hint in a strange way to allow '=' and other
|
||||
special characters in the option name while forbidding them from
|
||||
the argument hint. This made it impossible to define an option
|
||||
like "--pair <key>=<value>" with "pair=key=value" specification,
|
||||
which instead would have defined a "--pair=key <value>" option.
|
||||
(merge 2d893df ib/scripted-parse-opt-better-hint-string later to maint).
|
||||
|
||||
* Often a fast-import stream builds a new commit on top of the
|
||||
previous commit it built, and it often unconditionally emits a
|
||||
"from" command to specify the first parent, which can be omitted in
|
||||
such a case. This caused fast-import to forget the tree of the
|
||||
previous commit and then re-read it from scratch, which was
|
||||
inefficient. Optimize for this common case.
|
||||
(merge 0df3245 mh/fast-import-optimize-current-from later to maint).
|
||||
|
||||
* Running an aliased command from a subdirectory when the .git thing
|
||||
in the working tree is a gitfile pointing elsewhere did not work.
|
||||
(merge d95138e nd/export-worktree later to maint).
|
||||
|
||||
* "Is this subdirectory a separate repository that should not be
|
||||
touched?" check "git clean" was inefficient. This was replaced
|
||||
with a more optimized check.
|
||||
(merge fbf2fec ee/clean-remove-dirs later to maint).
|
||||
|
||||
* The "new-worktree-mode" hack in "checkout" that was added in
|
||||
nd/multiple-work-trees topic has been removed by updating the
|
||||
implementation of new "worktree add".
|
||||
(merge 65f9b75 es/worktree-add-cleanup later to maint).
|
||||
|
||||
* Remove remaining cruft from "git checkout --to", which
|
||||
transitioned to "git worktree add".
|
||||
(merge 114ff88 es/worktree-add later to maint).
|
||||
|
||||
* An off-by-one error made "git remote" to mishandle a remote with a
|
||||
single letter nickname.
|
||||
(merge bc598c3 mh/get-remote-group-fix later to maint).
|
||||
|
||||
* "git clone $URL", when cloning from a site whose sole purpose is to
|
||||
host a single repository (hence, no path after <scheme>://<site>/),
|
||||
tried to use the site name as the new repository name, but did not
|
||||
remove username or password when <site> part was of the form
|
||||
<user>@<pass>:<host>. The code is taught to redact these.
|
||||
(merge adef956 ps/guess-repo-name-at-root later to maint).
|
||||
|
||||
* Running tests with the "-x" option to make them verbose had some
|
||||
unpleasant interactions with other features of the test suite.
|
||||
(merge 9b5fe78 jk/test-with-x later to maint).
|
||||
|
||||
* t1509 test that requires a dedicated VM environment had some
|
||||
bitrot, which has been corrected.
|
||||
(merge faacc5a ps/t1509-chroot-test-fixup later to maint).
|
||||
|
||||
* "git pull" in recent releases of Git has a regression in the code
|
||||
that allows custom path to the --upload-pack=<program>. This has
|
||||
been corrected.
|
||||
|
||||
Note that this is irrelevant for 'master' with "git pull" rewritten
|
||||
in C.
|
||||
(merge 13e0e28 mm/pull-upload-pack later to maint).
|
||||
|
||||
* When trying to see that an object does not exist, a state errno
|
||||
leaked from our "first try to open a packfile with O_NOATIME and
|
||||
then if it fails retry without it" logic on a system that refuses
|
||||
O_NOATIME. This confused us and caused us to die, saying that the
|
||||
packfile is unreadable, when we should have just reported that the
|
||||
object does not exist in that packfile to the caller.
|
||||
(merge dff6f28 cb/open-noatime-clear-errno later to maint).
|
||||
|
||||
* The codepath to produce error messages had a hard-coded limit to
|
||||
the size of the message, primarily to avoid memory allocation while
|
||||
calling die().
|
||||
(merge f4c3edc jk/long-error-messages later to maint).
|
||||
|
||||
* strbuf_read() used to have one extra iteration (and an unnecessary
|
||||
strbuf_grow() of 8kB), which was eliminated.
|
||||
(merge 3ebbd00 jh/strbuf-read-use-read-in-full later to maint).
|
||||
|
||||
* We rewrote one of the build scripts in Perl but this reimplements
|
||||
in Bourne shell.
|
||||
(merge 57cee8a sg/help-group later to maint).
|
||||
|
||||
* The experimental untracked-cache feature were buggy when paths with
|
||||
a few levels of subdirectories are involved.
|
||||
(merge 73f9145 dt/untracked-subdir later to maint).
|
||||
|
||||
* "interpret-trailers" helper mistook a single-liner log message that
|
||||
has a colon as the end of existing trailer.
|
||||
|
||||
* The "interpret-trailers" helper mistook a multi-paragraph title of
|
||||
a commit log message with a colon in it as the end of the trailer
|
||||
block.
|
||||
(merge 5c99995 cc/trailers-corner-case-fix later to maint).
|
||||
|
||||
* "git describe" without argument defaulted to describe the HEAD
|
||||
commit, but "git describe --contains" didn't. Arguably, in a
|
||||
repository used for active development, such defaulting would not
|
||||
be very useful as the tip of branch is typically not tagged, but it
|
||||
is better to be consistent.
|
||||
(merge 2bd0706 sg/describe-contains later to maint).
|
||||
|
||||
* The client side codepaths in "git push" have been cleaned up
|
||||
and the user can request to perform an optional "signed push",
|
||||
i.e. sign only when the other end accepts signed push.
|
||||
(merge 68c757f db/push-sign-if-asked later to maint).
|
||||
|
||||
* Because the configuration system does not allow "alias.0foo" and
|
||||
"pager.0foo" as the configuration key, the user cannot use '0foo'
|
||||
as a custom command name anyway, but "git 0foo" tried to look these
|
||||
keys up and emitted useless warnings before saying '0foo is not a
|
||||
git command'. These warning messages have been squelched.
|
||||
(merge 9e9de18 jk/fix-alias-pager-config-key-warnings later to maint).
|
||||
|
||||
* "git rev-list" does not take "--notes" option, but did not complain
|
||||
when one is given.
|
||||
(merge 2aea7a5 jk/rev-list-has-no-notes later to maint).
|
||||
|
||||
* When re-priming the cache-tree opportunistically while committing
|
||||
the in-core index as-is, we mistakenly invalidated the in-core
|
||||
index too aggressively, causing the experimental split-index code
|
||||
to unnecessarily rewrite the on-disk index file(s).
|
||||
(merge 475a344 dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update later to maint).
|
||||
|
||||
* "git archive" did not use zip64 extension when creating an archive
|
||||
with more than 64k entries, which nobody should need, right ;-)?
|
||||
(merge 88329ca rs/archive-zip-many later to maint).
|
||||
|
||||
* The code in "multiple-worktree" support that attempted to recover
|
||||
from an inconsistent state updated an incorrect file.
|
||||
(merge 82fde87 nd/fixup-linked-gitdir later to maint).
|
||||
|
||||
* On case insensitive systems, "git p4" did not work well with client
|
||||
specs.
|
||||
|
||||
* "git init empty && git -C empty log" said "bad default revision 'HEAD'",
|
||||
which was found to be a bit confusing to new users.
|
||||
(merge ce11360 jk/log-missing-default-HEAD later to maint).
|
||||
|
||||
* Recent versions of scripted "git am" has a performance regression in
|
||||
"git am --skip" codepath, which no longer exists in the built-in
|
||||
version on the 'master' front. Fix the regression in the last
|
||||
scripted version that appear in 2.5.x maintenance track and older.
|
||||
(merge b9d6689 js/maint-am-skip-performance-regression later to maint).
|
||||
|
||||
* The branch descriptions that are set with "git branch --edit-description"
|
||||
option were used in many places but they weren't clearly documented.
|
||||
(merge 561d2b7 po/doc-branch-desc later to maint).
|
||||
|
||||
* Code cleanups and documentation updates.
|
||||
(merge 1c601af es/doc-clean-outdated-tools later to maint).
|
||||
(merge 3581304 kn/tag-doc-fix later to maint).
|
||||
(merge 3a59e59 kb/i18n-doc later to maint).
|
||||
(merge 45abdee sb/remove-unused-var-from-builtin-add later to maint).
|
||||
(merge 14691e3 sb/parse-options-codeformat later to maint).
|
||||
(merge 4a6ada3 ad/bisect-cleanup later to maint).
|
||||
(merge da4c5ad ta/docfix-index-format-tech later to maint).
|
||||
(merge ae25fd3 sb/check-return-from-read-ref later to maint).
|
||||
(merge b3325df nd/dwim-wildcards-as-pathspecs later to maint).
|
||||
(merge 7aa9b9b sg/wt-status-header-inclusion later to maint).
|
||||
(merge f04c690 as/docfix-reflog-expire-unreachable later to maint).
|
||||
(merge 1269847 sg/t3020-typofix later to maint).
|
||||
(merge 8b54c23 jc/calloc-pathspec later to maint).
|
||||
(merge a6926b8 po/po-readme later to maint).
|
||||
(merge 54d160e ss/fix-config-fd-leak later to maint).
|
||||
(merge b80fa84 ah/submodule-typofix-in-error later to maint).
|
||||
(merge 99885bc ah/reflog-typofix-in-error later to maint).
|
||||
(merge 9476c2c ah/read-tree-usage-string later to maint).
|
||||
(merge b8c1d27 ah/pack-objects-usage-strings later to maint).
|
||||
(merge 486e1e1 br/svn-doc-include-paths-config later to maint).
|
||||
(merge 1733ed3 ee/clean-test-fixes later to maint).
|
||||
(merge 5fcadc3 gb/apply-comment-typofix later to maint).
|
||||
(merge b894d3e mp/t7060-diff-index-test later to maint).
|
||||
(merge d238710 as/config-doc-markup-fix later to maint).
|
@ -1,18 +0,0 @@
|
||||
Git v2.6.1 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.6
|
||||
----------------
|
||||
|
||||
* xdiff code we use to generate diffs is not prepared to handle
|
||||
extremely large files. It uses "int" in many places, which can
|
||||
overflow if we have a very large number of lines or even bytes in
|
||||
our input files, for example. Cap the input size to soemwhere
|
||||
around 1GB for now.
|
||||
|
||||
* Some protocols (like git-remote-ext) can execute arbitrary code
|
||||
found in the URL. The URLs that submodules use may come from
|
||||
arbitrary sources (e.g., .gitmodules files in a remote
|
||||
repository), and can hurt those who blindly enable recursive
|
||||
fetch. Restrict the allowed protocols to well known and safe
|
||||
ones.
|
@ -1,65 +0,0 @@
|
||||
Git v2.6.2 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.6.1
|
||||
------------------
|
||||
|
||||
* 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.
|
@ -1,111 +0,0 @@
|
||||
Git v2.6.3 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.6.2
|
||||
------------------
|
||||
|
||||
* The error message from "git blame --contents --reverse" incorrectly
|
||||
talked about "--contents --children".
|
||||
|
||||
* "git merge-file" tried to signal how many conflicts it found, which
|
||||
obviously would not work well when there are too many of them.
|
||||
|
||||
* The name-hash subsystem that is used to cope with case insensitive
|
||||
filesystems keeps track of directories and their on-filesystem
|
||||
cases for all the paths in the index by holding a pointer to a
|
||||
randomly chosen cache entry that is inside the directory (for its
|
||||
ce->ce_name component). This pointer was not updated even when the
|
||||
cache entry was removed from the index, leading to use after free.
|
||||
This was fixed by recording the path for each directory instead of
|
||||
borrowing cache entries and restructuring the API somewhat.
|
||||
|
||||
* When the "git am" command was reimplemented in C, "git am -3" had a
|
||||
small regression where it is aborted in its error handling codepath
|
||||
when underlying merge-recursive failed in some ways.
|
||||
|
||||
* The synopsis text and the usage string of subcommands that read
|
||||
list of things from the standard input are often shown as if they
|
||||
only take input from a file on a filesystem, which was misleading.
|
||||
|
||||
* A couple of commands still showed "[options]" in their usage string
|
||||
to note where options should come on their command line, but we
|
||||
spell that "[<options>]" in most places these days.
|
||||
|
||||
* The submodule code has been taught to work better with separate
|
||||
work trees created via "git worktree add".
|
||||
|
||||
* When "git gc --auto" is backgrounded, its diagnosis message is
|
||||
lost. It now is saved to a file in $GIT_DIR and is shown next time
|
||||
the "gc --auto" is run.
|
||||
|
||||
* Work around "git p4" failing when the P4 depot records the contents
|
||||
in UTF-16 without UTF-16 BOM.
|
||||
|
||||
* Recent update to "rebase -i" that tries to sanity check the edited
|
||||
insn sheet before it uses it has become too picky on Windows where
|
||||
CRLF left by the editor is turned into a trailing CR on the line
|
||||
read via the "read" built-in command.
|
||||
|
||||
* "git clone --dissociate" runs a big "git repack" process at the
|
||||
end, and it helps to close file descriptors that are open on the
|
||||
packs and their idx files before doing so on filesystems that
|
||||
cannot remove a file that is still open.
|
||||
|
||||
* Correct "git p4 --detect-labels" so that it does not fail to create
|
||||
a tag that points at a commit that is also being imported.
|
||||
|
||||
* The internal stripspace() function has been moved to where it
|
||||
logically belongs to, i.e. strbuf API, and the command line parser
|
||||
of "git stripspace" has been updated to use the parse_options API.
|
||||
|
||||
* Prepare for Git on-disk repository representation to undergo
|
||||
backward incompatible changes by introducing a new repository
|
||||
format version "1", with an extension mechanism.
|
||||
|
||||
* "git gc" used to barf when a symbolic ref has gone dangling
|
||||
(e.g. the branch that used to be your upstream's default when you
|
||||
cloned from it is now gone, and you did "fetch --prune").
|
||||
|
||||
* The normalize_ceiling_entry() function does not muck with the end
|
||||
of the path it accepts, and the real world callers do rely on that,
|
||||
but a test insisted that the function drops a trailing slash.
|
||||
|
||||
* "git gc" is safe to run anytime only because it has the built-in
|
||||
grace period to protect young objects. In order to run with no
|
||||
grace period, the user must make sure that the repository is
|
||||
quiescent.
|
||||
|
||||
* A recent "filter-branch --msg-filter" broke skipping of the commit
|
||||
object header, which is fixed.
|
||||
|
||||
* "git --literal-pathspecs add -u/-A" without any command line
|
||||
argument misbehaved ever since Git 2.0.
|
||||
|
||||
* Merging a branch that removes a path and another that changes the
|
||||
mode bits on the same path should have conflicted at the path, but
|
||||
it didn't and silently favoured the removal.
|
||||
|
||||
* "git imap-send" did not compile well with older version of cURL library.
|
||||
|
||||
* The linkage order of libraries was wrong in places around libcurl.
|
||||
|
||||
* It was not possible to use a repository-lookalike created by "git
|
||||
worktree add" as a local source of "git clone".
|
||||
|
||||
* When "git send-email" wanted to talk over Net::SMTP::SSL,
|
||||
Net::Cmd::datasend() did not like to be fed too many bytes at the
|
||||
same time and failed to send messages. Send the payload one line
|
||||
at a time to work around the problem.
|
||||
|
||||
* We peek objects from submodule's object store by linking it to the
|
||||
list of alternate object databases, but the code to do so forgot to
|
||||
correctly initialize the list.
|
||||
|
||||
* "git status --branch --short" accessed beyond the constant string
|
||||
"HEAD", which has been corrected.
|
||||
|
||||
* "git daemon" uses "run_command()" without "finish_command()", so it
|
||||
needs to release resources itself, which it forgot to do.
|
||||
|
||||
Also contains typofixes, documentation updates and trivial code
|
||||
clean-ups.
|
@ -1,63 +0,0 @@
|
||||
Git v2.6.4 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.6.3
|
||||
------------------
|
||||
|
||||
* The "configure" script did not test for -lpthread correctly, which
|
||||
upset some linkers.
|
||||
|
||||
* Add support for talking http/https over socks proxy.
|
||||
|
||||
* Portability fix for Windows, which may rewrite $SHELL variable using
|
||||
non-POSIX paths.
|
||||
|
||||
* We now consistently allow all hooks to ignore their standard input,
|
||||
rather than having git complain of SIGPIPE.
|
||||
|
||||
* Fix shell quoting in contrib script.
|
||||
|
||||
* Test portability fix for a topic in v2.6.1.
|
||||
|
||||
* Allow tilde-expansion in some http config variables.
|
||||
|
||||
* Give a useful special case "diff/show --word-diff-regex=." as an
|
||||
example in the documentation.
|
||||
|
||||
* Fix for a corner case in filter-branch.
|
||||
|
||||
* Make git-p4 work on a detached head.
|
||||
|
||||
* Documentation clarification for "check-ignore" without "--verbose".
|
||||
|
||||
* Just like the working tree is cleaned up when the user cancelled
|
||||
submission in P4Submit.applyCommit(), clean up the mess if "p4
|
||||
submit" fails.
|
||||
|
||||
* Having a leftover .idx file without corresponding .pack file in
|
||||
the repository hurts performance; "git gc" learned to prune them.
|
||||
|
||||
* The code to prepare the working tree side of temporary directory
|
||||
for the "dir-diff" feature forgot that symbolic links need not be
|
||||
copied (or symlinked) to the temporary area, as the code already
|
||||
special cases and overwrites them. Besides, it was wrong to try
|
||||
computing the object name of the target of symbolic link, which may
|
||||
not even exist or may be a directory.
|
||||
|
||||
* There was no way to defeat a configured rebase.autostash variable
|
||||
from the command line, as "git rebase --no-autostash" was missing.
|
||||
|
||||
* Allow "git interpret-trailers" to run outside of a Git repository.
|
||||
|
||||
* Produce correct "dirty" marker for shell prompts, even when we
|
||||
are on an orphan or an unborn branch.
|
||||
|
||||
* Some corner cases have been fixed in string-matching done in "git
|
||||
status".
|
||||
|
||||
* Apple's common crypto implementation of SHA1_Update() does not take
|
||||
more than 4GB at a time, and we now have a compile-time workaround
|
||||
for it.
|
||||
|
||||
Also contains typofixes, documentation updates and trivial code
|
||||
clean-ups.
|
@ -1,58 +0,0 @@
|
||||
Git v2.6.5 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.6.4
|
||||
------------------
|
||||
|
||||
* Because "test_when_finished" in our test framework queues the
|
||||
clean-up tasks to be done in a shell variable, it should not be
|
||||
used inside a subshell. Add a mechanism to allow 'bash' to catch
|
||||
such uses, and fix the ones that were found.
|
||||
|
||||
* Update "git subtree" (in contrib/) so that it can take whitespaces
|
||||
in the pathnames, not only in the in-tree pathname but the name of
|
||||
the directory that the repository is in.
|
||||
|
||||
* Cosmetic improvement to lock-file error messages.
|
||||
|
||||
* mark_tree_uninteresting() has code to handle the case where it gets
|
||||
passed a NULL pointer in its 'tree' parameter, but the function had
|
||||
'object = &tree->object' assignment before checking if tree is
|
||||
NULL. This gives a compiler an excuse to declare that tree will
|
||||
never be NULL and apply a wrong optimization. Avoid it.
|
||||
|
||||
* The helper used to iterate over loose object directories to prune
|
||||
stale objects did not closedir() immediately when it is done with a
|
||||
directory--a callback such as the one used for "git prune" may want
|
||||
to do rmdir(), but it would fail on open directory on platforms
|
||||
such as WinXP.
|
||||
|
||||
* "git p4" used to import Perforce CLs that touch only paths outside
|
||||
the client spec as empty commits. It has been corrected to ignore
|
||||
them instead, with a new configuration git-p4.keepEmptyCommits as a
|
||||
backward compatibility knob.
|
||||
|
||||
* The exit code of git-fsck did not reflect some types of errors
|
||||
found in packed objects, which has been corrected.
|
||||
|
||||
* The completion script (in contrib/) used to list "git column"
|
||||
(which is not an end-user facing command) as one of the choices
|
||||
|
||||
* Improve error reporting when SMTP TLS fails.
|
||||
|
||||
* When getpwuid() on the system returned NULL (e.g. the user is not
|
||||
in the /etc/passwd file or other uid-to-name mappings), the
|
||||
codepath to find who the user is to record it in the reflog barfed
|
||||
and died. Loosen the check in this codepath, which already accepts
|
||||
questionable ident string (e.g. host part of the e-mail address is
|
||||
obviously bogus), and in general when we operate fmt_ident() function
|
||||
in non-strict mode.
|
||||
|
||||
* "git symbolic-ref" forgot to report a failure with its exit status.
|
||||
|
||||
* History traversal with "git log --source" that starts with an
|
||||
annotated tag failed to report the tag as "source", due to an
|
||||
old regression in the command line parser back in v2.2 days.
|
||||
|
||||
Also contains typofixes, documentation updates and trivial code
|
||||
clean-ups.
|
@ -1,11 +0,0 @@
|
||||
Git v2.6.6 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.6.5
|
||||
------------------
|
||||
|
||||
* Bugfix patches were backported from the 'master' front to plug heap
|
||||
corruption holes, to catch integer overflow in the computation of
|
||||
pathname lengths, and to get rid of the name_path API. Both of
|
||||
these would have resulted in writing over an under-allocated buffer
|
||||
when formulating pathnames while tree traversal.
|
@ -1,414 +0,0 @@
|
||||
Git 2.7 Release Notes
|
||||
=====================
|
||||
|
||||
Updates since v2.6
|
||||
------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* The appearance of "gitk", particularly on high DPI monitors, have
|
||||
been improved. "gitk" also comes with an undated translation for
|
||||
Swedish and Japanese.
|
||||
|
||||
* "git remote" learned "get-url" subcommand to show the URL for a
|
||||
given remote name used for fetching and pushing.
|
||||
|
||||
* There was no way to defeat a configured rebase.autostash variable
|
||||
from the command line, as "git rebase --no-autostash" was missing.
|
||||
|
||||
* "git log --date=local" used to only show the normal (default)
|
||||
format in the local timezone. The command learned to take 'local'
|
||||
as an instruction to use the local timezone with other formats,
|
||||
|
||||
* The refs used during a "git bisect" session is now per-worktree so
|
||||
that independent bisect sessions can be done in different worktrees
|
||||
created with "git worktree add".
|
||||
|
||||
* Users who are too busy to type three extra keystrokes to ask for
|
||||
"git stash show -p" can now set stash.showPatch configuration
|
||||
variable to true to always see the actual patch, not just the list
|
||||
of paths affected with feel for the extent of damage via diffstat.
|
||||
|
||||
* "quiltimport" allows to specify the series file by honoring the
|
||||
$QUILT_SERIES environment and also --series command line option.
|
||||
|
||||
* The use of 'good/bad' in "git bisect" made it confusing to use when
|
||||
hunting for a state change that is not a regression (e.g. bugfix).
|
||||
The command learned 'old/new' and then allows the end user to
|
||||
say e.g. "bisect start --term-old=fast --term-new=slow" to find a
|
||||
performance regression.
|
||||
|
||||
* "git interpret-trailers" can now run outside of a Git repository.
|
||||
|
||||
* "git p4" learned to reencode the pathname it uses to communicate
|
||||
with the p4 depot with a new option.
|
||||
|
||||
* Give progress meter to "git filter-branch".
|
||||
|
||||
* Allow a later "!/abc/def" to override an earlier "/abc" that
|
||||
appears in the same .gitignore file to make it easier to express
|
||||
"everything in /abc directory is ignored, except for ...".
|
||||
|
||||
* Teach "git p4" to send large blobs outside the repository by
|
||||
talking to Git LFS.
|
||||
|
||||
* Prepare for Git on-disk repository representation to undergo
|
||||
backward incompatible changes by introducing a new repository
|
||||
format version "1", with an extension mechanism.
|
||||
|
||||
* "git worktree" learned a "list" subcommand.
|
||||
|
||||
* "git clone --dissociate" learned that it can be used even when
|
||||
"--reference" was not used at the same time.
|
||||
|
||||
* "git blame" learnt to take "--first-parent" and "--reverse" at the
|
||||
same time when it makes sense.
|
||||
|
||||
* "git checkout" did not follow the usual "--[no-]progress"
|
||||
convention and implemented only "--quiet" that is essentially
|
||||
a superset of "--no-progress". Extend the command to support the
|
||||
usual "--[no-]progress".
|
||||
|
||||
* The semantics of transfer.hideRefs configuration variable have been
|
||||
extended to work better with the ref "namespace" feature that lets
|
||||
you throw unrelated bunches of repositories in a single physical
|
||||
repository and virtually serve them as separate ones.
|
||||
|
||||
* send-email config variables whose values are pathnames now go
|
||||
through the ~username/ expansion.
|
||||
|
||||
* bash completion learnt to TAB-complete recipient addresses given
|
||||
to send-email.
|
||||
|
||||
* The credential-cache daemon can be told to ignore SIGHUP to work
|
||||
around issue when running Git from inside emacs.
|
||||
|
||||
* "git push" learned new configuration for doing "--recurse-submodules"
|
||||
on each push.
|
||||
|
||||
* "format-patch" has learned a new option to zero-out the commit
|
||||
object name on the mbox "From " line.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* The infrastructure to rewrite "git submodule" in C is being built
|
||||
incrementally. Let's polish these early parts well enough and make
|
||||
them graduate to 'next' and 'master', so that the more involved
|
||||
follow-up can start cooking on a solid ground.
|
||||
|
||||
* Some features from "git tag -l" and "git branch -l" have been made
|
||||
available to "git for-each-ref" so that eventually the unified
|
||||
implementation can be shared across all three. The version merged
|
||||
to the 'master' branch earlier had a performance regression in "tag
|
||||
--contains", which has since been corrected.
|
||||
|
||||
* Because "test_when_finished" in our test framework queues the
|
||||
clean-up tasks to be done in a shell variable, it should not be
|
||||
used inside a subshell. Add a mechanism to allow 'bash' to catch
|
||||
such uses, and fix the ones that were found.
|
||||
|
||||
* The debugging infrastructure for pkt-line based communication has
|
||||
been improved to mark the side-band communication specifically.
|
||||
|
||||
* Update "git branch" that list existing branches, using the
|
||||
ref-filter API that is shared with "git tag" and "git
|
||||
for-each-ref".
|
||||
|
||||
* The test for various line-ending conversions has been enhanced.
|
||||
|
||||
* A few test scripts around "git p4" have been improved for
|
||||
portability.
|
||||
|
||||
* Many allocations that is manually counted (correctly) that are
|
||||
followed by strcpy/sprintf have been replaced with a less error
|
||||
prone constructs such as xstrfmt.
|
||||
|
||||
* The internal stripspace() function has been moved to where it
|
||||
logically belongs to, i.e. strbuf API, and the command line parser
|
||||
of "git stripspace" has been updated to use the parse_options API.
|
||||
|
||||
* "git am" used to spawn "git mailinfo" via run_command() API once
|
||||
per each patch, but learned to make a direct call to mailinfo()
|
||||
instead.
|
||||
|
||||
* The implementation of "git mailinfo" was refactored so that a
|
||||
mailinfo() function can be directly called from inside a process.
|
||||
|
||||
* With a "debug" helper, debugging of a single "git" invocation in
|
||||
our test scripts has become a lot easier.
|
||||
|
||||
* The "configure" script did not test for -lpthread correctly, which
|
||||
upset some linkers.
|
||||
|
||||
* Cross completed task off of subtree project's todo list.
|
||||
|
||||
* Test cleanups for the subtree project.
|
||||
|
||||
* Clean up style in an ancient test t9300.
|
||||
|
||||
* Work around some test flakiness with p4d.
|
||||
|
||||
* Fsck did not correctly detect a NUL-truncated header in a tag.
|
||||
|
||||
* Use a safer behavior when we hit errors verifying remote certificates.
|
||||
|
||||
* Speed up filter-branch for cases where we only care about rewriting
|
||||
commits, not tree data.
|
||||
|
||||
* The parse-options API has been updated to make "-h" command line
|
||||
option work more consistently in all commands.
|
||||
|
||||
* "git svn rebase/mkdirs" got optimized by keeping track of empty
|
||||
directories better.
|
||||
|
||||
* Fix some racy client/server tests by treating SIGPIPE the same as a
|
||||
normal non-zero exit.
|
||||
|
||||
* The necessary infrastructure to build topics using the free Travis
|
||||
CI has been added. Developers forking from this topic (and enabling
|
||||
Travis) can do their own builds, and we can turn on auto-builds for
|
||||
git/git (including build-status for pull requests that people
|
||||
open).
|
||||
|
||||
* The write(2) emulation for Windows learned to set errno to EPIPE
|
||||
when necessary.
|
||||
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
||||
|
||||
|
||||
Fixes since v2.6
|
||||
----------------
|
||||
|
||||
Unless otherwise noted, all the fixes since v2.6 in the maintenance
|
||||
track are contained in this release (see the maintenance releases'
|
||||
notes for details).
|
||||
|
||||
* 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.
|
||||
|
||||
* "git blame --first-parent v1.0..v2.0" was not rejected but did not
|
||||
limit the blame to commits on the first parent chain.
|
||||
|
||||
* "git subtree" (in contrib/) now can take whitespaces in the
|
||||
pathnames, not only in the in-tree pathname but the name of the
|
||||
directory that the repository is in.
|
||||
|
||||
* 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.
|
||||
|
||||
* Correct "git p4 --detect-labels" so that it does not fail to create
|
||||
a tag that points at a commit that is also being imported.
|
||||
|
||||
* 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.
|
||||
|
||||
* Customization to change the behaviour with "make -w" and "make -s"
|
||||
in our Makefile was broken when they were used together.
|
||||
|
||||
* 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.
|
||||
|
||||
* "git gc" used to barf when a symbolic ref has gone dangling
|
||||
(e.g. the branch that used to be your upstream's default when you
|
||||
cloned from it is now gone, and you did "fetch --prune").
|
||||
|
||||
* "git clone --dissociate" runs a big "git repack" process at the
|
||||
end, and it helps to close file descriptors that are open on the
|
||||
packs and their idx files before doing so on filesystems that
|
||||
cannot remove a file that is still open.
|
||||
|
||||
* Description of the "log.follow" configuration variable in "git log"
|
||||
documentation is now also copied to "git config" documentation.
|
||||
|
||||
* "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. Further, the code was still too picky on
|
||||
Windows where CRLF left by the editor is turned into a trailing CR
|
||||
on the line read via the "read" built-in command of bash. Both of
|
||||
these issues are now fixed.
|
||||
|
||||
* After "git checkout --detach", "git status" reported a fairly
|
||||
useless "HEAD detached at HEAD", instead of saying at which exact
|
||||
commit.
|
||||
|
||||
* When "git send-email" wanted to talk over Net::SMTP::SSL,
|
||||
Net::Cmd::datasend() did not like to be fed too many bytes at the
|
||||
same time and failed to send messages. Send the payload one line
|
||||
at a time to work around the problem.
|
||||
|
||||
* When "git am" was rewritten as a built-in, it stopped paying
|
||||
attention to user.signingkey, which was fixed.
|
||||
|
||||
* It was not possible to use a repository-lookalike created by "git
|
||||
worktree add" as a local source of "git clone".
|
||||
|
||||
* 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.
|
||||
|
||||
* Performance-measurement tests did not work without an installed Git.
|
||||
|
||||
* A test script for the HTTP service had a timing dependent bug,
|
||||
which was fixed.
|
||||
|
||||
* 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.
|
||||
|
||||
* Work around "git p4" failing when the P4 depot records the contents
|
||||
in UTF-16 without UTF-16 BOM.
|
||||
|
||||
* When "git gc --auto" is backgrounded, its diagnosis message is
|
||||
lost. Save it to a file in $GIT_DIR and show it next time the "gc
|
||||
--auto" is run.
|
||||
|
||||
* The submodule code has been taught to work better with separate
|
||||
work trees created via "git worktree add".
|
||||
|
||||
* "git gc" is safe to run anytime only because it has the built-in
|
||||
grace period to protect young objects. In order to run with no
|
||||
grace period, the user must make sure that the repository is
|
||||
quiescent.
|
||||
|
||||
* A recent "filter-branch --msg-filter" broke skipping of the commit
|
||||
object header, which is fixed.
|
||||
|
||||
* The normalize_ceiling_entry() function does not muck with the end
|
||||
of the path it accepts, and the real world callers do rely on that,
|
||||
but a test insisted that the function drops a trailing slash.
|
||||
|
||||
* A test for interaction between untracked cache and sparse checkout
|
||||
added in Git 2.5 days were flaky.
|
||||
|
||||
* A couple of commands still showed "[options]" in their usage string
|
||||
to note where options should come on their command line, but we
|
||||
spell that "[<options>]" in most places these days.
|
||||
|
||||
* The synopsis text and the usage string of subcommands that read
|
||||
list of things from the standard input are often shown as if they
|
||||
only take input from a file on a filesystem, which was misleading.
|
||||
|
||||
* "git am -3" had a small regression where it is aborted in its error
|
||||
handling codepath when underlying merge-recursive failed in certain
|
||||
ways, as it assumed that the internal call to merge-recursive will
|
||||
never die, which is not the case (yet).
|
||||
|
||||
* The linkage order of libraries was wrong in places around libcurl.
|
||||
|
||||
* The name-hash subsystem that is used to cope with case insensitive
|
||||
filesystems keeps track of directories and their on-filesystem
|
||||
cases for all the paths in the index by holding a pointer to a
|
||||
randomly chosen cache entry that is inside the directory (for its
|
||||
ce->ce_name component). This pointer was not updated even when the
|
||||
cache entry was removed from the index, leading to use after free.
|
||||
This was fixed by recording the path for each directory instead of
|
||||
borrowing cache entries and restructuring the API somewhat.
|
||||
|
||||
* "git merge-file" tried to signal how many conflicts it found, which
|
||||
obviously would not work well when there are too many of them.
|
||||
|
||||
* The error message from "git blame --contents --reverse" incorrectly
|
||||
talked about "--contents --children".
|
||||
|
||||
* "git imap-send" did not compile well with older version of cURL library.
|
||||
|
||||
* Merging a branch that removes a path and another that changes the
|
||||
mode bits on the same path should have conflicted at the path, but
|
||||
it didn't and silently favoured the removal.
|
||||
|
||||
* "git --literal-pathspecs add -u/-A" without any command line
|
||||
argument misbehaved ever since Git 2.0.
|
||||
|
||||
* "git daemon" uses "run_command()" without "finish_command()", so it
|
||||
needs to release resources itself, which it forgot to do.
|
||||
|
||||
* "git status --branch --short" accessed beyond the constant string
|
||||
"HEAD", which has been corrected.
|
||||
|
||||
* We peek objects from submodule's object store by linking it to the
|
||||
list of alternate object databases, but the code to do so forgot to
|
||||
correctly initialize the list.
|
||||
|
||||
* The code to prepare the working tree side of temporary directory
|
||||
for the "dir-diff" feature forgot that symbolic links need not be
|
||||
copied (or symlinked) to the temporary area, as the code already
|
||||
special cases and overwrites them. Besides, it was wrong to try
|
||||
computing the object name of the target of symbolic link, which may
|
||||
not even exist or may be a directory.
|
||||
|
||||
* A Range: request can be responded with a full response and when
|
||||
asked properly libcurl knows how to strip the result down to the
|
||||
requested range. However, we were hand-crafting a range request
|
||||
and it did not kick in.
|
||||
|
||||
* Having a leftover .idx file without corresponding .pack file in
|
||||
the repository hurts performance; "git gc" learned to prune them.
|
||||
|
||||
* Apple's common crypto implementation of SHA1_Update() does not take
|
||||
more than 4GB at a time, and we now have a compile-time workaround
|
||||
for it.
|
||||
|
||||
* Produce correct "dirty" marker for shell prompts, even when we
|
||||
are on an orphan or an unborn branch.
|
||||
|
||||
* A build without NO_IPv6 used to use gethostbyname() when guessing
|
||||
user's hostname, instead of getaddrinfo() that is used in other
|
||||
codepaths in such a build.
|
||||
|
||||
* The exit code of git-fsck did not reflect some types of errors
|
||||
found in packed objects, which has been corrected.
|
||||
|
||||
* The helper used to iterate over loose object directories to prune
|
||||
stale objects did not closedir() immediately when it is done with a
|
||||
directory--a callback such as the one used for "git prune" may want
|
||||
to do rmdir(), but it would fail on open directory on platforms
|
||||
such as WinXP.
|
||||
|
||||
* "git p4" used to import Perforce CLs that touch only paths outside
|
||||
the client spec as empty commits. It has been corrected to ignore
|
||||
them instead, with a new configuration git-p4.keepEmptyCommits as a
|
||||
backward compatibility knob.
|
||||
|
||||
* The completion script (in contrib/) used to list "git column"
|
||||
(which is not an end-user facing command) as one of the choices
|
||||
(merge 160fcdb sg/completion-no-column later to maint).
|
||||
|
||||
* The error reporting from "git send-email", when SMTP TLS fails, has
|
||||
been improved.
|
||||
(merge 9d60524 jk/send-email-ssl-errors later to maint).
|
||||
|
||||
* When getpwuid() on the system returned NULL (e.g. the user is not
|
||||
in the /etc/passwd file or other uid-to-name mappings), the
|
||||
codepath to find who the user is to record it in the reflog barfed
|
||||
and died. Loosen the check in this codepath, which already accepts
|
||||
questionable ident string (e.g. host part of the e-mail address is
|
||||
obviously bogus), and in general when we operate fmt_ident() function
|
||||
in non-strict mode.
|
||||
(merge 92bcbb9 jk/ident-loosen-getpwuid later to maint).
|
||||
|
||||
* "git symbolic-ref" forgot to report a failure with its exit status.
|
||||
(merge f91b273 jk/symbolic-ref-maint later to maint).
|
||||
|
||||
* History traversal with "git log --source" that starts with an
|
||||
annotated tag failed to report the tag as "source", due to an
|
||||
old regression in the command line parser back in v2.2 days.
|
||||
(merge 728350b jk/pending-keep-tag-name later to maint).
|
||||
|
||||
* "git p4" when interacting with multiple depots at the same time
|
||||
used to incorrectly drop changes.
|
||||
|
||||
* Code clean-up, minor fixes etc.
|
@ -1,87 +0,0 @@
|
||||
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_exclude_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.
|
@ -1,41 +0,0 @@
|
||||
Git v2.7.2 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.7.1
|
||||
------------------
|
||||
|
||||
* The low-level merge machinery has been taught to use CRLF line
|
||||
termination when inserting conflict markers to merged contents that
|
||||
are themselves CRLF line-terminated.
|
||||
|
||||
* "git worktree" had a broken code that attempted to auto-fix
|
||||
possible inconsistency that results from end-users moving a
|
||||
worktree to different places without telling Git (the original
|
||||
repository needs to maintain backpointers to its worktrees, but
|
||||
"mv" run by end-users who are not familiar with that fact will
|
||||
obviously not adjust them), which actually made things worse
|
||||
when triggered.
|
||||
|
||||
* "git push --force-with-lease" has been taught to report if the push
|
||||
needed to force (or fast-forwarded).
|
||||
|
||||
* The emulated "yes" command used in our test scripts has been
|
||||
tweaked not to spend too much time generating unnecessary output
|
||||
that is not used, to help those who test on Windows where it would
|
||||
not stop until it fills the pipe buffer due to lack of SIGPIPE.
|
||||
|
||||
* The vimdiff backend for "git mergetool" has been tweaked to arrange
|
||||
and number buffers in the order that would match the expectation of
|
||||
majority of people who read left to right, then top down and assign
|
||||
buffers 1 2 3 4 "mentally" to local base remote merge windows based
|
||||
on that order.
|
||||
|
||||
* The documentation for "git clean" has been corrected; it mentioned
|
||||
that .git/modules/* are removed by giving two "-f", which has never
|
||||
been the case.
|
||||
|
||||
* Paths that have been told the index about with "add -N" are not
|
||||
quite yet in the index, but a few commands behaved as if they
|
||||
already are in a harmful way.
|
||||
|
||||
Also includes tiny documentation and test updates.
|
@ -1,62 +0,0 @@
|
||||
Git v2.7.3 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.7.2
|
||||
------------------
|
||||
|
||||
* Traditionally, the tests that try commands that work on the
|
||||
contents in the working tree were named with "worktree" in their
|
||||
filenames, but with the recent addition of "git worktree"
|
||||
subcommand, whose tests are also named similarly, it has become
|
||||
harder to tell them apart. The traditional tests have been renamed
|
||||
to use "work-tree" instead in an attempt to differentiate them.
|
||||
|
||||
* Many codepaths forget to check return value from git_config_set();
|
||||
the function is made to die() to make sure we do not proceed when
|
||||
setting a configuration variable failed.
|
||||
|
||||
* Handling of errors while writing into our internal asynchronous
|
||||
process has been made more robust, which reduces flakiness in our
|
||||
tests.
|
||||
|
||||
* "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
|
||||
rev, i.e. the object named by the the pathname with wildcard
|
||||
characters in a tree object.
|
||||
|
||||
* "git rev-parse --git-common-dir" used in the worktree feature
|
||||
misbehaved when run from a subdirectory.
|
||||
|
||||
* The "v(iew)" subcommand of the interactive "git am -i" command was
|
||||
broken in 2.6.0 timeframe when the command was rewritten in C.
|
||||
|
||||
* "git merge-tree" used to mishandle "both sides added" conflict with
|
||||
its own "create a fake ancestor file that has the common parts of
|
||||
what both sides have added and do a 3-way merge" logic; this has
|
||||
been updated to use the usual "3-way merge with an empty blob as
|
||||
the fake common ancestor file" approach used in the rest of the
|
||||
system.
|
||||
|
||||
* The memory ownership rule of fill_textconv() API, which was a bit
|
||||
tricky, has been documented a bit better.
|
||||
|
||||
* The documentation did not clearly state that the 'simple' mode is
|
||||
now the default for "git push" when push.default configuration is
|
||||
not set.
|
||||
|
||||
* Recent versions of GNU grep are pickier when their input contains
|
||||
arbitrary binary data, which some of our tests uses. Rewrite the
|
||||
tests to sidestep the problem.
|
||||
|
||||
* A helper function "git submodule" uses since v2.7.0 to list the
|
||||
modules that match the pathspec argument given to its subcommands
|
||||
(e.g. "submodule add <repo> <path>") has been fixed.
|
||||
|
||||
* "git config section.var value" to set a value in per-repository
|
||||
configuration file failed when it was run outside any repository,
|
||||
but didn't say the reason correctly.
|
||||
|
||||
* The code to read the pack data using the offsets stored in the pack
|
||||
idx file has been made more carefully check the validity of the
|
||||
data in the idx.
|
||||
|
||||
Also includes documentation and test updates.
|
@ -1,11 +0,0 @@
|
||||
Git v2.7.4 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.7.3
|
||||
------------------
|
||||
|
||||
* Bugfix patches were backported from the 'master' front to plug heap
|
||||
corruption holes, to catch integer overflow in the computation of
|
||||
pathname lengths, and to get rid of the name_path API. Both of
|
||||
these would have resulted in writing over an under-allocated buffer
|
||||
when formulating pathnames while tree traversal.
|
@ -1,439 +0,0 @@
|
||||
Git 2.8 Release Notes
|
||||
=====================
|
||||
|
||||
Backward compatibility note
|
||||
---------------------------
|
||||
|
||||
The rsync:// transport has been removed.
|
||||
|
||||
|
||||
Updates since v2.7
|
||||
------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* It turns out "git clone" over rsync transport has been broken when
|
||||
the source repository has packed references for a long time, and
|
||||
nobody noticed nor complained about it.
|
||||
|
||||
* "push" learned that its "--delete" option can be shortened to
|
||||
"-d", just like "branch --delete" and "branch -d" are the same
|
||||
thing.
|
||||
|
||||
* "git blame" learned to produce the progress eye-candy when it takes
|
||||
too much time before emitting the first line of the result.
|
||||
|
||||
* "git grep" can now be configured (or told from the command line)
|
||||
how many threads to use when searching in the working tree files.
|
||||
|
||||
* Some "git notes" operations, e.g. "git log --notes=<note>", should
|
||||
be able to read notes from any tree-ish that is shaped like a notes
|
||||
tree, but the notes infrastructure required that the argument must
|
||||
be a ref under refs/notes/. Loosen it to require a valid ref only
|
||||
when the operation would update the notes (in which case we must
|
||||
have a place to store the updated notes tree, iow, a ref).
|
||||
|
||||
* "git grep" by default does not fall back to its "--no-index"
|
||||
behavior outside a directory under Git's control (otherwise the
|
||||
user may by mistake end up running a huge recursive search); with a
|
||||
new configuration (set in $HOME/.gitconfig--by definition this
|
||||
cannot be set in the config file per project), this safety can be
|
||||
disabled.
|
||||
|
||||
* "git pull --rebase" has been extended to allow invoking
|
||||
"rebase -i".
|
||||
|
||||
* "git p4" learned to cope with the type of a file getting changed.
|
||||
|
||||
* "git format-patch" learned to notice format.outputDirectory
|
||||
configuration variable. This allows "-o <dir>" option to be
|
||||
omitted on the command line if you always use the same directory in
|
||||
your workflow.
|
||||
|
||||
* "interpret-trailers" has been taught to optionally update a file in
|
||||
place, instead of always writing the result to the standard output.
|
||||
|
||||
* Many commands that read files that are expected to contain text
|
||||
that is generated (or can be edited) by the end user to control
|
||||
their behavior (e.g. "git grep -f <filename>") have been updated
|
||||
to be more tolerant to lines that are terminated with CRLF (they
|
||||
used to treat such a line to contain payload that ends with CR,
|
||||
which is usually not what the users expect).
|
||||
|
||||
* "git notes merge" used to limit the source of the merged notes tree
|
||||
to somewhere under refs/notes/ hierarchy, which was too limiting
|
||||
when inventing a workflow to exchange notes with remote
|
||||
repositories using remote-tracking notes trees (located in e.g.
|
||||
refs/remote-notes/ or somesuch).
|
||||
|
||||
* "git ls-files" learned a new "--eol" option to help diagnose
|
||||
end-of-line problems.
|
||||
|
||||
* "ls-remote" learned an option to show which branch the remote
|
||||
repository advertises as its primary by pointing its HEAD at.
|
||||
|
||||
* New http.proxyAuthMethod configuration variable can be used to
|
||||
specify what authentication method to use, as a way to work around
|
||||
proxies that do not give error response expected by libcurl when
|
||||
CURLAUTH_ANY is used. Also, the codepath for proxy authentication
|
||||
has been taught to use credential API to store the authentication
|
||||
material in user's keyrings.
|
||||
|
||||
* Update the untracked cache subsystem and change its primary UI from
|
||||
"git update-index" to "git config".
|
||||
|
||||
* There were a few "now I am doing this thing" progress messages in
|
||||
the TCP connection code that can be triggered by setting a verbose
|
||||
option internally in the code, but "git fetch -v" and friends never
|
||||
passed the verbose option down to that codepath.
|
||||
|
||||
* Clean/smudge filters defined in a configuration file of lower
|
||||
precedence can now be overridden to be a pass-through no-op by
|
||||
setting the variable to an empty string.
|
||||
|
||||
* A new "<branch>^{/!-<pattern>}" notation can be used to name a
|
||||
commit that is reachable from <branch> that does not match the
|
||||
given <pattern>.
|
||||
|
||||
* The "user.useConfigOnly" configuration variable can be used to
|
||||
force the user to always set user.email & user.name configuration
|
||||
variables, serving as a reminder for those who work on multiple
|
||||
projects and do not want to put these in their $HOME/.gitconfig.
|
||||
|
||||
* "git fetch" and friends that make network connections can now be
|
||||
told to only use ipv4 (or ipv6).
|
||||
|
||||
* Some authentication methods do not need username or password, but
|
||||
libcurl needs some hint that it needs to perform authentication.
|
||||
Supplying an empty username and password string is a valid way to
|
||||
do so, but you can set the http.[<url>.]emptyAuth configuration
|
||||
variable to achieve the same, if you find it cleaner.
|
||||
|
||||
* You can now set http.[<url>.]pinnedpubkey to specify the pinned
|
||||
public key when building with recent enough versions of libcURL.
|
||||
|
||||
* The configuration system has been taught to phrase where it found a
|
||||
bad configuration variable in a better way in its error messages.
|
||||
"git config" learnt a new "--show-origin" option to indicate where
|
||||
the values come from.
|
||||
|
||||
* The "credential-cache" daemon process used to run in whatever
|
||||
directory it happened to start in, but this made umount(2)ing the
|
||||
filesystem that houses the repository harder; now the process
|
||||
chdir()s to the directory that house its own socket on startup.
|
||||
|
||||
* When "git submodule update" did not result in fetching the commit
|
||||
object in the submodule that is referenced by the superproject, the
|
||||
command learned to retry another fetch, specifically asking for
|
||||
that commit that may not be connected to the refs it usually
|
||||
fetches.
|
||||
|
||||
* "git merge-recursive" learned "--no-renames" option to disable its
|
||||
rename detection logic.
|
||||
|
||||
* Across the transition at around Git version 2.0, the user used to
|
||||
get a pretty loud warning when running "git push" without setting
|
||||
push.default configuration variable. We no longer warn because the
|
||||
transition was completed a long time ago.
|
||||
|
||||
* README has been renamed to README.md and its contents got tweaked
|
||||
slightly to make it easier on the eyes.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* Add a framework to spawn a group of processes in parallel, and use
|
||||
it to run "git fetch --recurse-submodules" in parallel.
|
||||
|
||||
* A slight update to the Makefile to mark ".PHONY" targets as such
|
||||
correctly.
|
||||
|
||||
* In-core storage of the reverse index for .pack files (which lets
|
||||
you go from a pack offset to an object name) has been streamlined.
|
||||
|
||||
* d95138e6 (setup: set env $GIT_WORK_TREE when work tree is set, like
|
||||
$GIT_DIR, 2015-06-26) attempted to work around a glitch in alias
|
||||
handling by overwriting GIT_WORK_TREE environment variable to
|
||||
affect subprocesses when set_git_work_tree() gets called, which
|
||||
resulted in a rather unpleasant regression to "clone" and "init".
|
||||
Try to address the same issue by always restoring the environment
|
||||
and respawning the real underlying command when handling alias.
|
||||
|
||||
* The low-level code that is used to create symbolic references has
|
||||
been updated to share more code with the code that deals with
|
||||
normal references.
|
||||
|
||||
* strbuf_getline() and friends have been redefined to make it easier
|
||||
to identify which callsite of (new) strbuf_getline_lf() should
|
||||
allow and silently ignore carriage-return at the end of the line to
|
||||
help users on DOSsy systems.
|
||||
|
||||
* "git shortlog" used to accumulate various pieces of information
|
||||
regardless of what was asked to be shown in the final output. It
|
||||
has been optimized by noticing what need not to be collected
|
||||
(e.g. there is no need to collect the log messages when showing
|
||||
only the number of changes).
|
||||
|
||||
* "git checkout $branch" (and other operations that share the same
|
||||
underlying machinery) has been optimized.
|
||||
|
||||
* Automated tests in Travis CI environment has been optimized by
|
||||
persisting runtime statistics of previous "prove" run, executing
|
||||
tests that take longer before other ones; this reduces the total
|
||||
wallclock time.
|
||||
|
||||
* Test scripts have been updated to remove assumptions that are not
|
||||
portable between Git for POSIX and Git for Windows, or to skip ones
|
||||
with expectations that are not satisfiable on Git for Windows.
|
||||
|
||||
* Some calls to strcpy(3) triggers a false warning from static
|
||||
analyzers that are less intelligent than humans, and reducing the
|
||||
number of these false hits helps us notice real issues. A few
|
||||
calls to strcpy(3) in a couple of protrams that are already safe
|
||||
has been rewritten to avoid false warnings.
|
||||
|
||||
* The "name_path" API was an attempt to reduce the need to construct
|
||||
the full path out of a series of path components while walking a
|
||||
tree hierarchy, but over time made less efficient because the path
|
||||
needs to be flattened, e.g. to be compared with another path that
|
||||
is already flat. The API has been removed and its users have been
|
||||
rewritten to simplify the overall code complexity.
|
||||
|
||||
* Help those who debug http(s) part of the system.
|
||||
(merge 0054045 sp/remote-curl-ssl-strerror later to maint).
|
||||
|
||||
* The internal API to interact with "remote.*" configuration
|
||||
variables has been streamlined.
|
||||
|
||||
* The ref-filter's format-parsing code has been refactored, in
|
||||
preparation for "branch --format" and friends.
|
||||
|
||||
* Traditionally, the tests that try commands that work on the
|
||||
contents in the working tree were named with "worktree" in their
|
||||
filenames, but with the recent addition of "git worktree"
|
||||
subcommand, whose tests are also named similarly, it has become
|
||||
harder to tell them apart. The traditional tests have been renamed
|
||||
to use "work-tree" instead in an attempt to differentiate them.
|
||||
(merge 5549029 mg/work-tree-tests later to maint).
|
||||
|
||||
* Many codepaths forget to check return value from git_config_set();
|
||||
the function is made to die() to make sure we do not proceed when
|
||||
setting a configuration variable failed.
|
||||
(merge 3d18064 ps/config-error later to maint).
|
||||
|
||||
* Handling of errors while writing into our internal asynchronous
|
||||
process has been made more robust, which reduces flakiness in our
|
||||
tests.
|
||||
(merge 43f3afc jk/epipe-in-async later to maint).
|
||||
|
||||
* There is a new DEVELOPER knob that enables many compiler warning
|
||||
options in the Makefile.
|
||||
|
||||
* The way the test scripts configure the Apache web server has been
|
||||
updated to work also for Apache 2.4 running on RedHat derived
|
||||
distros.
|
||||
|
||||
* Out of maintenance gcc on OSX 10.6 fails to compile the code in
|
||||
'master'; work it around by using clang by default on the platform.
|
||||
|
||||
* The "name_path" API was an attempt to reduce the need to construct
|
||||
the full path out of a series of path components while walking a
|
||||
tree hierarchy, but over time made less efficient because the path
|
||||
needs to be flattened, e.g. to be compared with another path that
|
||||
is already flat, in many cases. The API has been removed and its
|
||||
users have been rewritten to simplify the overall code complexity.
|
||||
This incidentally also closes some heap-corruption holes.
|
||||
|
||||
* Recent versions of GNU grep is pickier than before to decide if a
|
||||
file is "binary" and refuse to give line-oriented hits when we
|
||||
expect it to, unless explicitly told with "-a" option. As our
|
||||
scripted Porcelains use sane_grep wrapper for line-oriented data,
|
||||
even when the line may contain non-ASCII payload we took from
|
||||
end-user data, use "grep -a" to implement sane_grep wrapper when
|
||||
using an implementation of "grep" that takes the "-a" option.
|
||||
|
||||
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
||||
|
||||
|
||||
Fixes since v2.7
|
||||
----------------
|
||||
|
||||
Unless otherwise noted, all the fixes since v2.7 in the maintenance
|
||||
track are contained in this release (see the maintenance releases'
|
||||
notes for details).
|
||||
|
||||
* 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_exclude_list() forgot
|
||||
to reset 'alloc' to 0 when it cleared 'nr' to discard the managed
|
||||
array.
|
||||
|
||||
* Paths that have been told the index about with "add -N" are not
|
||||
quite yet in the index, but a few commands behaved as if they
|
||||
already are in a harmful way.
|
||||
|
||||
* "git send-email" was confused by escaped quotes stored in the alias
|
||||
files saved by "mutt", which has been corrected.
|
||||
|
||||
* A few non-portable 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.
|
||||
|
||||
Somebody may want to follow this up with an additional test, perhaps?
|
||||
IIRC, we do test that no Perl warnings are given to the server log,
|
||||
so this should have been caught if our test coverage were good.
|
||||
|
||||
* "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.
|
||||
|
||||
* The command line completion learned a handful of additional options
|
||||
and command specific syntax.
|
||||
|
||||
* dirname() emulation has been added, as Msys2 lacks it.
|
||||
|
||||
* The underlying machinery used by "ls-files -o" and other commands
|
||||
has 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.
|
||||
|
||||
* "git worktree" had a broken code that attempted to auto-fix
|
||||
possible inconsistency that results from end-users moving a
|
||||
worktree to different places without telling Git (the original
|
||||
repository needs to maintain back-pointers to its worktrees,
|
||||
but "mv" run by end-users who are not familiar with that fact
|
||||
will obviously not adjust them), which actually made things
|
||||
worse when triggered.
|
||||
|
||||
* The low-level merge machinery has been taught to use CRLF line
|
||||
termination when inserting conflict markers to merged contents that
|
||||
are themselves CRLF line-terminated.
|
||||
|
||||
* "git push --force-with-lease" has been taught to report if the push
|
||||
needed to force (or fast-forwarded).
|
||||
|
||||
* The emulated "yes" command used in our test scripts has been
|
||||
tweaked not to spend too much time generating unnecessary output
|
||||
that is not used, to help those who test on Windows where it would
|
||||
not stop until it fills the pipe buffer due to lack of SIGPIPE.
|
||||
|
||||
* The documentation for "git clean" has been corrected; it mentioned
|
||||
that .git/modules/* are removed by giving two "-f", which has never
|
||||
been the case.
|
||||
|
||||
* The vimdiff backend for "git mergetool" has been tweaked to arrange
|
||||
and number buffers in the order that would match the expectation of
|
||||
majority of people who read left to right, then top down and assign
|
||||
buffers 1 2 3 4 "mentally" to local base remote merge windows based
|
||||
on that order.
|
||||
|
||||
* "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
|
||||
rev, i.e. the object named by the the pathname with wildcard
|
||||
characters in a tree object.
|
||||
(merge aac4fac nd/dwim-wildcards-as-pathspecs later to maint).
|
||||
|
||||
* "git rev-parse --git-common-dir" used in the worktree feature
|
||||
misbehaved when run from a subdirectory.
|
||||
(merge 17f1365 nd/git-common-dir-fix later to maint).
|
||||
|
||||
* "git worktree add -B <branchname>" did not work.
|
||||
|
||||
* The "v(iew)" subcommand of the interactive "git am -i" command was
|
||||
broken in 2.6.0 timeframe when the command was rewritten in C.
|
||||
(merge 708b8cc jc/am-i-v-fix later to maint).
|
||||
|
||||
* "git merge-tree" used to mishandle "both sides added" conflict with
|
||||
its own "create a fake ancestor file that has the common parts of
|
||||
what both sides have added and do a 3-way merge" logic; this has
|
||||
been updated to use the usual "3-way merge with an empty blob as
|
||||
the fake common ancestor file" approach used in the rest of the
|
||||
system.
|
||||
(merge 907681e jk/no-diff-emit-common later to maint).
|
||||
|
||||
* The memory ownership rule of fill_textconv() API, which was a bit
|
||||
tricky, has been documented a bit better.
|
||||
(merge a64e6a4 jk/more-comments-on-textconv later to maint).
|
||||
|
||||
* Update various codepaths to avoid manually-counted malloc().
|
||||
(merge 08c95df jk/tighten-alloc later to maint).
|
||||
|
||||
* The documentation did not clearly state that the 'simple' mode is
|
||||
now the default for "git push" when push.default configuration is
|
||||
not set.
|
||||
(merge f6b1fb3 mm/push-simple-doc later to maint).
|
||||
|
||||
* Recent versions of GNU grep are pickier when their input contains
|
||||
arbitrary binary data, which some of our tests uses. Rewrite the
|
||||
tests to sidestep the problem.
|
||||
(merge 3b1442d jk/grep-binary-workaround-in-test later to maint).
|
||||
|
||||
* A helper function "git submodule" uses since v2.7.0 to list the
|
||||
modules that match the pathspec argument given to its subcommands
|
||||
(e.g. "submodule add <repo> <path>") has been fixed.
|
||||
(merge 2b56bb7 sb/submodule-module-list-fix later to maint).
|
||||
|
||||
* "git config section.var value" to set a value in per-repository
|
||||
configuration file failed when it was run outside any repository,
|
||||
but didn't say the reason correctly.
|
||||
(merge 638fa62 js/config-set-in-non-repository later to maint).
|
||||
|
||||
* The code to read the pack data using the offsets stored in the pack
|
||||
idx file has been made more carefully check the validity of the
|
||||
data in the idx.
|
||||
(merge 7465feb jk/pack-idx-corruption-safety later to maint).
|
||||
|
||||
* Other minor clean-ups and documentation updates
|
||||
(merge f459823 ak/extract-argv0-last-dir-sep later to maint).
|
||||
(merge 63ca1c0 ak/git-strip-extension-from-dashed-command later to maint).
|
||||
(merge 4867f11 ps/plug-xdl-merge-leak later to maint).
|
||||
(merge 4938686 dt/initial-ref-xn-commit-doc later to maint).
|
||||
(merge 9537f21 ma/update-hooks-sample-typofix later to maint).
|
@ -1,9 +0,0 @@
|
||||
Git v2.8.1 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.8
|
||||
----------------
|
||||
|
||||
* "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.
|
@ -1,70 +0,0 @@
|
||||
Git v2.8.2 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.8.1
|
||||
------------------
|
||||
|
||||
* 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.
|
||||
|
||||
* Bunch of tests on "git clone" has been renumbered for better
|
||||
organization.
|
||||
|
||||
* The tests that involve running httpd leaked the system-wide
|
||||
configuration in /etc/gitconfig to the tested environment.
|
||||
|
||||
* "index-pack --keep=<msg>" was broken since v2.1.0 timeframe.
|
||||
|
||||
* "git config --get-urlmatch", unlike other variants of the "git
|
||||
config --get" family, did not signal error with its exit status
|
||||
when there was no matching configuration.
|
||||
|
||||
* The "--local-env-vars" and "--resolve-git-dir" options of "git
|
||||
rev-parse" failed to work outside a repository when the command's
|
||||
option parsing was rewritten in 1.8.5 era.
|
||||
|
||||
* Fetching of history by naming a commit object name directly didn't
|
||||
work across remote-curl transport.
|
||||
|
||||
* A small memory leak in an error codepath has been plugged in xdiff
|
||||
code.
|
||||
|
||||
* strbuf_getwholeline() did not NUL-terminate the buffer on certain
|
||||
corner cases in its error codepath.
|
||||
|
||||
* 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.
|
||||
|
||||
* "git mergetool" did not work well with conflicts that both sides
|
||||
deleted.
|
||||
|
||||
* "git send-email" had trouble parsing alias file in mailrc format
|
||||
when lines in it had trailing whitespaces on them.
|
||||
|
||||
* When "git merge --squash" stopped due to conflict, the concluding
|
||||
"git commit" failed to read in the SQUASH_MSG that shows the log
|
||||
messages from all the squashed commits.
|
||||
|
||||
* "git merge FETCH_HEAD" dereferenced NULL pointer when merging
|
||||
nothing into an unborn history (which is arguably unusual usage,
|
||||
which perhaps was the reason why nobody noticed it).
|
||||
|
||||
* Build updates for MSVC.
|
||||
|
||||
* "git diff -M" used to work better when two originally identical
|
||||
files A and B got renamed to X/A and X/B by pairing A to X/A and B
|
||||
to X/B, but this was broken in the 2.0 timeframe.
|
||||
|
||||
* "git send-pack --all <there>" was broken when its command line
|
||||
option parsing was written in the 2.6 timeframe.
|
||||
|
||||
* When running "git blame $path" with unnormalized data in the index
|
||||
for the path, the data in the working tree was blamed, even though
|
||||
"git add" would not have changed what is already in the index, due
|
||||
to "safe crlf" that disables the line-end conversion. It has been
|
||||
corrected.
|
||||
|
||||
Also contains minor documentation updates and code clean-ups.
|
@ -1,101 +0,0 @@
|
||||
Git v2.8.3 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.8.2
|
||||
------------------
|
||||
|
||||
* "git send-email" now uses a more readable timestamps when
|
||||
formulating a message ID.
|
||||
|
||||
* 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.
|
||||
|
||||
* When "git worktree" feature is in use, "git branch -d" allowed
|
||||
deletion of a branch that is checked out in another worktree
|
||||
|
||||
* When "git worktree" feature is in use, "git branch -m" renamed a
|
||||
branch that is checked out in another worktree without adjusting
|
||||
the HEAD symbolic ref for the worktree.
|
||||
|
||||
* "git format-patch --help" showed `-s` and `--no-patch` as if these
|
||||
are valid options to the command. We already hide `--patch` option
|
||||
from the documentation, because format-patch is about showing the
|
||||
diff, and the documentation now hides these options as well.
|
||||
|
||||
* A change back in version 2.7 to "git branch" broke display of a
|
||||
symbolic ref in a non-standard place in the refs/ hierarchy (we
|
||||
expect symbolic refs to appear in refs/remotes/*/HEAD to point at
|
||||
the primary branch the remote has, and as .git/HEAD to point at the
|
||||
branch we locally checked out).
|
||||
|
||||
* A partial rewrite of "git submodule" in the 2.7 timeframe changed
|
||||
the way the gitdir: pointer in the submodules point at the real
|
||||
repository location to use absolute paths by accident. This has
|
||||
been corrected.
|
||||
|
||||
* "git commit" misbehaved in a few minor ways when an empty message
|
||||
is given via -m '', all of which has been corrected.
|
||||
|
||||
* Support for CRAM-MD5 authentication method in "git imap-send" did
|
||||
not work well.
|
||||
|
||||
* The socks5:// proxy support added back in 2.6.4 days was not aware
|
||||
that socks5h:// proxies behave differently.
|
||||
|
||||
* "git config" had a codepath that tried to pass a NULL to
|
||||
printf("%s"), which nobody seems to have noticed.
|
||||
|
||||
* On Cygwin, object creation uses the "create a temporary and then
|
||||
rename it to the final name" pattern, not "create a temporary,
|
||||
hardlink it to the final name and then unlink the temporary"
|
||||
pattern.
|
||||
|
||||
This is necessary to use Git on Windows shared directories, and is
|
||||
already enabled for the MinGW and plain Windows builds. It also
|
||||
has been used in Cygwin packaged versions of Git for quite a while.
|
||||
See http://thread.gmane.org/gmane.comp.version-control.git/291853
|
||||
and http://thread.gmane.org/gmane.comp.version-control.git/275680.
|
||||
|
||||
* "git replace -e" did not honour "core.editor" configuration.
|
||||
|
||||
* Upcoming OpenSSL 1.1.0 will break compilation b updating a few APIs
|
||||
we use in imap-send, which has been adjusted for the change.
|
||||
|
||||
* "git submodule" reports the paths of submodules the command
|
||||
recurses into, but this was incorrect when the command was not run
|
||||
from the root level of the superproject.
|
||||
|
||||
* 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.
|
||||
|
||||
* The "user.useConfigOnly" configuration variable makes it an error
|
||||
if users do not explicitly set user.name and user.email. However,
|
||||
its check was not done early enough and allowed another error to
|
||||
trigger, reporting that the default value we guessed from the
|
||||
system setting was unusable. This was a suboptimal end-user
|
||||
experience as we want the users to set user.name/user.email without
|
||||
relying on the auto-detection at all.
|
||||
|
||||
* "git mv old new" did not adjust the path for a submodule that lives
|
||||
as a subdirectory inside old/ directory correctly.
|
||||
|
||||
* "git push" from a corrupt repository that attempts to push a large
|
||||
number of refs deadlocked; the thread to relay rejection notices
|
||||
for these ref updates blocked on writing them to the main thread,
|
||||
after the main thread at the receiving end notices that the push
|
||||
failed and decides not to read these notices and return a failure.
|
||||
|
||||
* A question by "git send-email" to ask the identity of the sender
|
||||
has been updated.
|
||||
|
||||
* Recent update to Git LFS broke "git p4" by changing the output from
|
||||
its "lfs pointer" subcommand.
|
||||
|
||||
* Some multi-byte encoding can have a backslash byte as a later part
|
||||
of one letter, which would confuse "highlight" filter used in
|
||||
gitweb.
|
||||
|
||||
Also contains minor documentation updates and code clean-ups.
|
@ -1,69 +0,0 @@
|
||||
Git v2.8.4 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.8.3
|
||||
------------------
|
||||
|
||||
* Documentation for "git merge --verify-signatures" has been updated
|
||||
to clarify that the signature of only the commit at the tip is
|
||||
verified. Also the phrasing used for signature and key validity is
|
||||
adjusted to align with that used by OpenPGP.
|
||||
|
||||
* On Windows, .git and optionally any files whose name starts with a
|
||||
dot are now marked as hidden, with a core.hideDotFiles knob to
|
||||
customize this behaviour.
|
||||
|
||||
* Portability enhancement for "rebase -i" to help platforms whose
|
||||
shell does not like "for i in <empty>" (which is not POSIX-kosher).
|
||||
|
||||
* "git fsck" learned to catch NUL byte in a commit object as
|
||||
potential error and warn.
|
||||
|
||||
* CI test was taught to build documentation pages.
|
||||
|
||||
* Many 'linkgit:<git documentation page>' references were broken,
|
||||
which are all fixed with this.
|
||||
|
||||
* "git describe --contains" often made a hard-to-justify choice of
|
||||
tag to give name to 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."
|
||||
|
||||
* 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.
|
||||
|
||||
* "http.cookieFile" configuration variable clearly wants a pathname,
|
||||
but we forgot to treat it as such by e.g. applying tilde expansion.
|
||||
|
||||
* When de-initialising all submodules, "git submodule deinit" gave a
|
||||
faulty recommendation to use "git submodule deinit .", which would
|
||||
result in a strange error message in a pathological corner case.
|
||||
This has been corrected to suggest "submodule deinit --all" instead.
|
||||
|
||||
* Many commands normalize command line arguments from NFD to NFC
|
||||
variant of UTF-8 on OSX, but commands in the "diff" family did
|
||||
not, causing "git diff $path" to complain that no such path is
|
||||
known to Git. They have been taught to do the normalization.
|
||||
|
||||
* A couple of bugs around core.autocrlf have been fixed.
|
||||
|
||||
* "git difftool" learned to handle unmerged paths correctly in
|
||||
dir-diff mode.
|
||||
|
||||
* The "are we talking with TTY, doing an interactive session?"
|
||||
detection has been updated to work better for "Git for Windows".
|
||||
|
||||
|
||||
Also contains other minor documentation updates and code clean-ups.
|
@ -61,28 +61,23 @@ Make sure that you have tests for the bug you are fixing. See
|
||||
t/README for guidance.
|
||||
|
||||
When adding a new feature, make sure that you have new tests to show
|
||||
the feature triggers the new behavior when it should, and to show the
|
||||
feature does not trigger when it shouldn't. After any code change, make
|
||||
sure that the entire test suite passes.
|
||||
the feature triggers the new behaviour when it should, and to show the
|
||||
feature does not trigger when it shouldn't. Also make sure that the
|
||||
test suite passes after your commit. Do not forget to update the
|
||||
documentation to describe the updated behaviour.
|
||||
|
||||
If you have an account at GitHub (and you can get one for free to work
|
||||
on open source projects), you can use their Travis CI integration to
|
||||
test your changes on Linux, Mac (and hopefully soon Windows). See
|
||||
GitHub-Travis CI hints section for details.
|
||||
|
||||
Do not forget to update the documentation to describe the updated
|
||||
behavior and make sure that the resulting documentation set formats
|
||||
well. It is currently a liberal mixture of US and UK English norms for
|
||||
spelling and grammar, which is somewhat unfortunate. A huge patch that
|
||||
touches the files all over the place only to correct the inconsistency
|
||||
is not welcome, though. Potential clashes with other changes that can
|
||||
result from such a patch are not worth it. We prefer to gradually
|
||||
reconcile the inconsistencies in favor of US English, with small and
|
||||
easily digestible patches, as a side effect of doing some other real
|
||||
work in the vicinity (e.g. rewriting a paragraph for clarity, while
|
||||
turning en_UK spelling to en_US). Obvious typographical fixes are much
|
||||
more welcomed ("teh -> "the"), preferably submitted as independent
|
||||
patches separate from other documentation changes.
|
||||
Speaking of the documentation, it is currently a liberal mixture of US
|
||||
and UK English norms for spelling and grammar, which is somewhat
|
||||
unfortunate. A huge patch that touches the files all over the place
|
||||
only to correct the inconsistency is not welcome, though. Potential
|
||||
clashes with other changes that can result from such a patch are not
|
||||
worth it. We prefer to gradually reconcile the inconsistencies in
|
||||
favor of US English, with small and easily digestible patches, as a
|
||||
side effect of doing some other real work in the vicinity (e.g.
|
||||
rewriting a paragraph for clarity, while turning en_UK spelling to
|
||||
en_US). Obvious typographical fixes are much more welcomed ("teh ->
|
||||
"the"), preferably submitted as independent patches separate from
|
||||
other documentation changes.
|
||||
|
||||
Oh, another thing. We are picky about whitespaces. Make sure your
|
||||
changes do not trigger errors with the sample pre-commit hook shipped
|
||||
@ -375,47 +370,6 @@ Know the status of your patch after submission
|
||||
entitled "What's cooking in git.git" and "What's in git.git" giving
|
||||
the status of various proposed changes.
|
||||
|
||||
--------------------------------------------------
|
||||
GitHub-Travis CI hints
|
||||
|
||||
With an account at GitHub (you can get one for free to work on open
|
||||
source projects), you can use Travis CI to test your changes on Linux,
|
||||
Mac (and hopefully soon Windows). You can find a successful example
|
||||
test build here: https://travis-ci.org/git/git/builds/120473209
|
||||
|
||||
Follow these steps for the initial setup:
|
||||
|
||||
(1) Fork https://github.com/git/git to your GitHub account.
|
||||
You can find detailed instructions how to fork here:
|
||||
https://help.github.com/articles/fork-a-repo/
|
||||
|
||||
(2) Open the Travis CI website: https://travis-ci.org
|
||||
|
||||
(3) Press the "Sign in with GitHub" button.
|
||||
|
||||
(4) Grant Travis CI permissions to access your GitHub account.
|
||||
You can find more information about the required permissions here:
|
||||
https://docs.travis-ci.com/user/github-oauth-scopes
|
||||
|
||||
(5) Open your Travis CI profile page: https://travis-ci.org/profile
|
||||
|
||||
(6) Enable Travis CI builds for your Git fork.
|
||||
|
||||
After the initial setup, Travis CI will run whenever you push new changes
|
||||
to your fork of Git on GitHub. You can monitor the test state of all your
|
||||
branches here: https://travis-ci.org/<Your GitHub handle>/git/branches
|
||||
|
||||
If a branch did not pass all test cases then it is marked with a red
|
||||
cross. In that case you can click on the failing Travis CI job and
|
||||
scroll all the way down in the log. Find the line "<-- Click here to see
|
||||
detailed test output!" and click on the triangle next to the log line
|
||||
number to expand the detailed test output. Here is such a failing
|
||||
example: https://travis-ci.org/git/git/jobs/122676187
|
||||
|
||||
Fix the problem and push your fix to your Git fork. This will trigger
|
||||
a new Travis CI build to ensure all tests pass.
|
||||
|
||||
|
||||
------------------------------------------------
|
||||
MUA specific hints
|
||||
|
||||
|
@ -63,19 +63,13 @@ include::line-range-format.txt[]
|
||||
`-` to make the command read from the standard input).
|
||||
|
||||
--date <format>::
|
||||
Specifies the format used to output dates. If --date is not
|
||||
The value is one of the following alternatives:
|
||||
{relative,local,default,iso,rfc,short}. If --date is not
|
||||
provided, the value of the blame.date config variable is
|
||||
used. If the blame.date config variable is also not set, the
|
||||
iso format is used. For supported values, see the discussion
|
||||
iso format is used. For more information, See the discussion
|
||||
of the --date option at linkgit:git-log[1].
|
||||
|
||||
--[no-]progress::
|
||||
Progress status is reported on the standard error stream
|
||||
by default when it is attached to a terminal. This flag
|
||||
enables progress reporting even if not attached to a
|
||||
terminal. Can't use `--progress` together with `--porcelain`
|
||||
or `--incremental`.
|
||||
|
||||
-M|<num>|::
|
||||
Detect moved or copied lines within a file. When a commit
|
||||
moves or copies a block of lines (e.g. the original file
|
||||
|
@ -81,16 +81,13 @@ Includes
|
||||
|
||||
You can include one config file from another by setting the special
|
||||
`include.path` variable to the name of the file to be included. The
|
||||
variable takes a pathname as its value, and is subject to tilde
|
||||
expansion.
|
||||
|
||||
The
|
||||
included file is expanded immediately, as if its contents had been
|
||||
found at the location of the include directive. If the value of the
|
||||
`include.path` variable is a relative path, the path is considered to be
|
||||
relative to the configuration file in which the include directive was
|
||||
found. See below for examples.
|
||||
|
||||
found. The value of `include.path` is subject to tilde expansion: `~/`
|
||||
is expanded to the value of `$HOME`, and `~user/` to the specified
|
||||
user's home directory. See below for examples.
|
||||
|
||||
Example
|
||||
~~~~~~~
|
||||
@ -117,7 +114,7 @@ Example
|
||||
[include]
|
||||
path = /path/to/foo.inc ; include by absolute path
|
||||
path = foo ; expand "foo" relative to the current file
|
||||
path = ~/foo ; expand "foo" in your `$HOME` directory
|
||||
path = ~/foo ; expand "foo" in your $HOME directory
|
||||
|
||||
|
||||
Values
|
||||
@ -172,13 +169,6 @@ thing on the same output line (e.g. opening parenthesis before the
|
||||
list of branch names in `log --decorate` output) is set to be
|
||||
painted with `bold` or some other attribute.
|
||||
|
||||
pathname::
|
||||
A variable that takes a pathname value can be given a
|
||||
string that begins with "`~/`" or "`~user/`", and the usual
|
||||
tilde expansion happens to such a string: `~/`
|
||||
is expanded to the value of `$HOME`, and `~user/` to the
|
||||
specified user's home directory.
|
||||
|
||||
|
||||
Variables
|
||||
~~~~~~~~~
|
||||
@ -279,12 +269,6 @@ See linkgit:git-update-index[1].
|
||||
+
|
||||
The default is true (when core.filemode is not specified in the config file).
|
||||
|
||||
core.hideDotFiles::
|
||||
(Windows-only) If true, mark newly-created directories and files whose
|
||||
name starts with a dot as hidden. If 'dotGitOnly', only the `.git/`
|
||||
directory is hidden, but no other files starting with a dot. The
|
||||
default mode is 'dotGitOnly'.
|
||||
|
||||
core.ignoreCase::
|
||||
If true, this option enables various workarounds to enable
|
||||
Git to work better on filesystems that are not case sensitive,
|
||||
@ -324,15 +308,6 @@ core.trustctime::
|
||||
crawlers and some backup systems).
|
||||
See linkgit:git-update-index[1]. True by default.
|
||||
|
||||
core.untrackedCache::
|
||||
Determines what to do about the untracked cache feature of the
|
||||
index. It will be kept, if this variable is unset or set to
|
||||
`keep`. It will automatically be added if set to `true`. And
|
||||
it will automatically be removed, if set to `false`. Before
|
||||
setting it to `true`, you should check that mtime is working
|
||||
properly on your system.
|
||||
See linkgit:git-update-index[1]. `keep` by default.
|
||||
|
||||
core.checkStat::
|
||||
Determines which stat fields to match between the index
|
||||
and work tree. The user can set this to 'default' or
|
||||
@ -353,9 +328,9 @@ core.quotePath::
|
||||
|
||||
core.eol::
|
||||
Sets the line ending type to use in the working directory for
|
||||
files that have the `text` property set when core.autocrlf is false.
|
||||
Alternatives are 'lf', 'crlf' and 'native', which uses the platform's
|
||||
native line ending. The default value is `native`. See
|
||||
files that have the `text` property set. Alternatives are
|
||||
'lf', 'crlf' and 'native', which uses the platform's native
|
||||
line ending. The default value is `native`. See
|
||||
linkgit:gitattributes[5] for more information on end-of-line
|
||||
conversion.
|
||||
|
||||
@ -502,10 +477,10 @@ repository's usual working tree).
|
||||
|
||||
core.logAllRefUpdates::
|
||||
Enable the reflog. Updates to a ref <ref> is logged to the file
|
||||
"`$GIT_DIR/logs/<ref>`", by appending the new and old
|
||||
"$GIT_DIR/logs/<ref>", by appending the new and old
|
||||
SHA-1, the date/time and the reason of the update, but
|
||||
only when the file exists. If this configuration
|
||||
variable is set to true, missing "`$GIT_DIR/logs/<ref>`"
|
||||
variable is set to true, missing "$GIT_DIR/logs/<ref>"
|
||||
file is automatically created for branch heads (i.e. under
|
||||
refs/heads/), remote refs (i.e. under refs/remotes/),
|
||||
note refs (i.e. under refs/notes/), and the symbolic ref HEAD.
|
||||
@ -609,11 +584,12 @@ be delta compressed, but larger binary media files won't be.
|
||||
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
||||
|
||||
core.excludesFile::
|
||||
Specifies the pathname to the file that contains patterns to
|
||||
describe paths that are not meant to be tracked, in addition
|
||||
to '.gitignore' (per-directory) and '.git/info/exclude'.
|
||||
Defaults to `$XDG_CONFIG_HOME/git/ignore`.
|
||||
If `$XDG_CONFIG_HOME` is either not set or empty, `$HOME/.config/git/ignore`
|
||||
In addition to '.gitignore' (per-directory) and
|
||||
'.git/info/exclude', Git looks into this file for patterns
|
||||
of files which are not meant to be tracked. "`~/`" is expanded
|
||||
to the value of `$HOME` and "`~user/`" to the specified user's
|
||||
home directory. Its default value is $XDG_CONFIG_HOME/git/ignore.
|
||||
If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore
|
||||
is used instead. See linkgit:gitignore[5].
|
||||
|
||||
core.askPass::
|
||||
@ -630,8 +606,8 @@ core.attributesFile::
|
||||
'.git/info/attributes', Git looks into this file for attributes
|
||||
(see linkgit:gitattributes[5]). Path expansions are made the same
|
||||
way as for `core.excludesFile`. Its default value is
|
||||
`$XDG_CONFIG_HOME/git/attributes`. If `$XDG_CONFIG_HOME` is either not
|
||||
set or empty, `$HOME/.config/git/attributes` is used instead.
|
||||
$XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not
|
||||
set or empty, $HOME/.config/git/attributes is used instead.
|
||||
|
||||
core.editor::
|
||||
Commands such as `commit` and `tag` that lets you edit
|
||||
@ -793,14 +769,6 @@ am.keepcr::
|
||||
by giving '--no-keep-cr' from the command line.
|
||||
See linkgit:git-am[1], linkgit:git-mailsplit[1].
|
||||
|
||||
am.threeWay::
|
||||
By default, `git am` will fail if the patch does not apply cleanly. When
|
||||
set to true, this setting tells `git am` to fall back on 3-way merge if
|
||||
the patch records the identity of blobs it is supposed to apply to and
|
||||
we have those blobs available locally (equivalent to giving the `--3way`
|
||||
option from the command line). Defaults to `false`.
|
||||
See linkgit:git-am[1].
|
||||
|
||||
apply.ignoreWhitespace::
|
||||
When set to 'change', tells 'git apply' to ignore changes in
|
||||
whitespace, in the same way as the '--ignore-space-change'
|
||||
@ -890,11 +858,9 @@ branch.<name>.rebase::
|
||||
"git pull" is run. See "pull.rebase" for doing this in a non
|
||||
branch-specific manner.
|
||||
+
|
||||
When preserve, also pass `--preserve-merges` along to 'git rebase'
|
||||
so that locally committed merge commits will not be flattened
|
||||
by running 'git pull'.
|
||||
+
|
||||
When the value is `interactive`, the rebase is run in interactive mode.
|
||||
When preserve, also pass `--preserve-merges` along to 'git rebase'
|
||||
so that locally committed merge commits will not be flattened
|
||||
by running 'git pull'.
|
||||
+
|
||||
*NOTE*: this is a possibly dangerous operation; do *not* use
|
||||
it unless you understand the implications (see linkgit:git-rebase[1]
|
||||
@ -1121,8 +1087,9 @@ commit.status::
|
||||
message. Defaults to true.
|
||||
|
||||
commit.template::
|
||||
Specify the pathname of a file to use as the template for
|
||||
new commit messages.
|
||||
Specify a file to use as the template for new commit messages.
|
||||
"`~/`" is expanded to the value of `$HOME` and "`~user/`" to the
|
||||
specified user's home directory.
|
||||
|
||||
credential.helper::
|
||||
Specify an external helper to be called when a username or
|
||||
@ -1147,9 +1114,6 @@ credential.<url>.*::
|
||||
example.com. See linkgit:gitcredentials[7] for details on how URLs are
|
||||
matched.
|
||||
|
||||
credentialCache.ignoreSIGHUP::
|
||||
Tell git-credential-cache--daemon to ignore SIGHUP, instead of quitting.
|
||||
|
||||
include::diff-config.txt[]
|
||||
|
||||
difftool.<tool>.path::
|
||||
@ -1268,10 +1232,6 @@ format.coverLetter::
|
||||
format-patch is invoked, but in addition can be set to "auto", to
|
||||
generate a cover-letter only when there's more than one patch.
|
||||
|
||||
format.outputDirectory::
|
||||
Set a custom directory to store the resulting files instead of the
|
||||
current working directory.
|
||||
|
||||
filter.<driver>.clean::
|
||||
The command which is used to convert the content of a worktree
|
||||
file to a blob upon checkin. See linkgit:gitattributes[5] for
|
||||
@ -1282,25 +1242,6 @@ filter.<driver>.smudge::
|
||||
object to a worktree file upon checkout. See
|
||||
linkgit:gitattributes[5] for details.
|
||||
|
||||
fsck.<msg-id>::
|
||||
Allows overriding the message type (error, warn or ignore) of a
|
||||
specific message ID such as `missingEmail`.
|
||||
+
|
||||
For convenience, fsck prefixes the error/warning with the message ID,
|
||||
e.g. "missingEmail: invalid author/committer line - missing email" means
|
||||
that setting `fsck.missingEmail = ignore` will hide that issue.
|
||||
+
|
||||
This feature is intended to support working with legacy repositories
|
||||
which cannot be repaired without disruptive changes.
|
||||
|
||||
fsck.skipList::
|
||||
The path to a sorted list of object names (i.e. one SHA-1 per
|
||||
line) that are known to be broken in a non-fatal way and should
|
||||
be ignored. This feature is useful when an established project
|
||||
should be accepted despite early commits containing errors that
|
||||
can be safely ignored such as invalid committer email addresses.
|
||||
Note: corrupt objects cannot be skipped with this setting.
|
||||
|
||||
gc.aggressiveDepth::
|
||||
The depth parameter used in the delta compression
|
||||
algorithm used by 'git gc --aggressive'. This defaults
|
||||
@ -1339,24 +1280,20 @@ gc.packRefs::
|
||||
gc.pruneExpire::
|
||||
When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'.
|
||||
Override the grace period with this config variable. The value
|
||||
"now" may be used to disable this grace period and always prune
|
||||
unreachable objects immediately, or "never" may be used to
|
||||
suppress pruning.
|
||||
"now" may be used to disable this grace period and always prune
|
||||
unreachable objects immediately.
|
||||
|
||||
gc.worktreePruneExpire::
|
||||
When 'git gc' is run, it calls
|
||||
'git worktree prune --expire 3.months.ago'.
|
||||
This config variable can be used to set a different grace
|
||||
period. The value "now" may be used to disable the grace
|
||||
period and prune `$GIT_DIR/worktrees` immediately, or "never"
|
||||
may be used to suppress pruning.
|
||||
gc.pruneWorktreesExpire::
|
||||
When 'git gc' is run, it will call
|
||||
'prune --worktrees --expire 3.months.ago'.
|
||||
Override the grace period with this config variable. The value
|
||||
"now" may be used to disable the grace period and prune
|
||||
$GIT_DIR/worktrees immediately.
|
||||
|
||||
gc.reflogExpire::
|
||||
gc.<pattern>.reflogExpire::
|
||||
'git reflog expire' removes reflog entries older than
|
||||
this time; defaults to 90 days. The value "now" expires all
|
||||
entries immediately, and "never" suppresses expiration
|
||||
altogether. With "<pattern>" (e.g.
|
||||
this time; defaults to 90 days. With "<pattern>" (e.g.
|
||||
"refs/stash") in the middle the setting applies only to
|
||||
the refs that match the <pattern>.
|
||||
|
||||
@ -1364,9 +1301,7 @@ gc.reflogExpireUnreachable::
|
||||
gc.<pattern>.reflogExpireUnreachable::
|
||||
'git reflog expire' removes reflog entries older than
|
||||
this time and are not reachable from the current tip;
|
||||
defaults to 30 days. The value "now" expires all entries
|
||||
immediately, and "never" suppresses expiration altogether.
|
||||
With "<pattern>" (e.g. "refs/stash")
|
||||
defaults to 30 days. With "<pattern>" (e.g. "refs/stash")
|
||||
in the middle, the setting applies only to the refs that
|
||||
match the <pattern>.
|
||||
|
||||
@ -1479,22 +1414,14 @@ grep.extendedRegexp::
|
||||
option is ignored when the 'grep.patternType' option is set to a value
|
||||
other than 'default'.
|
||||
|
||||
grep.threads::
|
||||
Number of grep worker threads to use.
|
||||
See `grep.threads` in linkgit:git-grep[1] for more information.
|
||||
|
||||
grep.fallbackToNoIndex::
|
||||
If set to true, fall back to git grep --no-index if git grep
|
||||
is executed outside of a git repository. Defaults to false.
|
||||
|
||||
gpg.program::
|
||||
Use this custom program instead of "`gpg`" found on `$PATH` when
|
||||
Use this custom program instead of "gpg" found on $PATH when
|
||||
making or verifying a PGP signature. The program must support the
|
||||
same command-line interface as GPG, namely, to verify a detached
|
||||
signature, "`gpg --verify $file - <$signature`" is run, and the
|
||||
signature, "gpg --verify $file - <$signature" is run, and the
|
||||
program is expected to signal a good signature by exiting with
|
||||
code 0, and to generate an ASCII-armored detached signature, the
|
||||
standard input of "`gpg -bsau $key`" is fed with the contents to be
|
||||
standard input of "gpg -bsau $key" is fed with the contents to be
|
||||
signed, and the program is expected to send the result to its
|
||||
standard output.
|
||||
|
||||
@ -1507,7 +1434,7 @@ gui.diffContext::
|
||||
made by the linkgit:git-gui[1]. The default is "5".
|
||||
|
||||
gui.displayUntracked::
|
||||
Determines if linkgit:git-gui[1] shows untracked files
|
||||
Determines if linkgit::git-gui[1] shows untracked files
|
||||
in the file list. The default is "true".
|
||||
|
||||
gui.encoding::
|
||||
@ -1633,77 +1560,22 @@ help.htmlPath::
|
||||
|
||||
http.proxy::
|
||||
Override the HTTP proxy, normally configured using the 'http_proxy',
|
||||
'https_proxy', and 'all_proxy' environment variables (see `curl(1)`). In
|
||||
addition to the syntax understood by curl, it is possible to specify a
|
||||
proxy string with a user name but no password, in which case git will
|
||||
attempt to acquire one in the same way it does for other credentials. See
|
||||
linkgit:gitcredentials[7] for more information. The syntax thus is
|
||||
'[protocol://][user[:password]@]proxyhost[:port]'. This can be overridden
|
||||
on a per-remote basis; see remote.<name>.proxy
|
||||
|
||||
http.proxyAuthMethod::
|
||||
Set the method with which to authenticate against the HTTP proxy. This
|
||||
only takes effect if the configured proxy string contains a user name part
|
||||
(i.e. is of the form 'user@host' or 'user@host:port'). This can be
|
||||
overridden on a per-remote basis; see `remote.<name>.proxyAuthMethod`.
|
||||
Both can be overridden by the 'GIT_HTTP_PROXY_AUTHMETHOD' environment
|
||||
variable. Possible values are:
|
||||
+
|
||||
--
|
||||
* `anyauth` - Automatically pick a suitable authentication method. It is
|
||||
assumed that the proxy answers an unauthenticated request with a 407
|
||||
status code and one or more Proxy-authenticate headers with supported
|
||||
authentication methods. This is the default.
|
||||
* `basic` - HTTP Basic authentication
|
||||
* `digest` - HTTP Digest authentication; this prevents the password from being
|
||||
transmitted to the proxy in clear text
|
||||
* `negotiate` - GSS-Negotiate authentication (compare the --negotiate option
|
||||
of `curl(1)`)
|
||||
* `ntlm` - NTLM authentication (compare the --ntlm option of `curl(1)`)
|
||||
--
|
||||
|
||||
http.emptyAuth::
|
||||
Attempt authentication without seeking a username or password. This
|
||||
can be used to attempt GSS-Negotiate authentication without specifying
|
||||
a username in the URL, as libcurl normally requires a username for
|
||||
authentication.
|
||||
'https_proxy', and 'all_proxy' environment variables (see
|
||||
`curl(1)`). This can be overridden on a per-remote basis; see
|
||||
remote.<name>.proxy
|
||||
|
||||
http.cookieFile::
|
||||
The pathname of a file containing previously stored cookie lines,
|
||||
which should be used
|
||||
File containing previously stored cookie lines which should be used
|
||||
in the Git http session, if they match the server. The file format
|
||||
of the file to read cookies from should be plain HTTP headers or
|
||||
the Netscape/Mozilla cookie file format (see `curl(1)`).
|
||||
NOTE that the file specified with http.cookieFile is used only as
|
||||
the Netscape/Mozilla cookie file format (see linkgit:curl[1]).
|
||||
NOTE that the file specified with http.cookieFile is only used as
|
||||
input unless http.saveCookies is set.
|
||||
|
||||
http.saveCookies::
|
||||
If set, store cookies received during requests to the file specified by
|
||||
http.cookieFile. Has no effect if http.cookieFile is unset.
|
||||
|
||||
http.sslVersion::
|
||||
The SSL version to use when negotiating an SSL connection, if you
|
||||
want to force the default. The available and default version
|
||||
depend on whether libcurl was built against NSS or OpenSSL and the
|
||||
particular configuration of the crypto library in use. Internally
|
||||
this sets the 'CURLOPT_SSL_VERSION' option; see the libcurl
|
||||
documentation for more details on the format of this option and
|
||||
for the ssl version supported. Actually the possible values of
|
||||
this option are:
|
||||
|
||||
- sslv2
|
||||
- sslv3
|
||||
- tlsv1
|
||||
- tlsv1.0
|
||||
- tlsv1.1
|
||||
- tlsv1.2
|
||||
|
||||
+
|
||||
Can be overridden by the 'GIT_SSL_VERSION' environment variable.
|
||||
To force git to use libcurl's default ssl version and ignore any
|
||||
explicit http.sslversion option, set 'GIT_SSL_VERSION' to the
|
||||
empty string.
|
||||
|
||||
http.sslCipherList::
|
||||
A list of SSL ciphers to use when negotiating an SSL connection.
|
||||
The available ciphers depend on whether libcurl was built against
|
||||
@ -1748,14 +1620,6 @@ http.sslCAPath::
|
||||
with when fetching or pushing over HTTPS. Can be overridden
|
||||
by the 'GIT_SSL_CAPATH' environment variable.
|
||||
|
||||
http.pinnedpubkey::
|
||||
Public key of the https service. It may either be the filename of
|
||||
a PEM or DER encoded public key file or a string starting with
|
||||
'sha256//' followed by the base64 encoded sha256 hash of the
|
||||
public key. See also libcurl 'CURLOPT_PINNEDPUBLICKEY'. git will
|
||||
exit with an error if this option is set but not supported by
|
||||
cURL.
|
||||
|
||||
http.sslTry::
|
||||
Attempt to use AUTH SSL/TLS and encrypted data transfers
|
||||
when connecting via regular FTP protocol. This might be needed
|
||||
@ -1909,7 +1773,9 @@ log.abbrevCommit::
|
||||
log.date::
|
||||
Set the default date-time mode for the 'log' command.
|
||||
Setting a value for log.date is similar to using 'git log''s
|
||||
`--date` option. See linkgit:git-log[1] for details.
|
||||
`--date` option. Possible values are `relative`, `local`,
|
||||
`default`, `iso`, `rfc`, and `short`; see linkgit:git-log[1]
|
||||
for details.
|
||||
|
||||
log.decorate::
|
||||
Print out the ref names of any commits that are shown by the log
|
||||
@ -1918,12 +1784,6 @@ log.decorate::
|
||||
specified, the full ref name (including prefix) will be printed.
|
||||
This is the same as the log commands '--decorate' option.
|
||||
|
||||
log.follow::
|
||||
If `true`, `git log` will act as if the `--follow` option was used when
|
||||
a single <path> is given. This has the same limitations as `--follow`,
|
||||
i.e. it cannot be used to follow multiple files and does not work well
|
||||
on non-linear history.
|
||||
|
||||
log.showRoot::
|
||||
If true, the initial commit will be shown as a big creation event.
|
||||
This is equivalent to a diff against an empty tree.
|
||||
@ -2026,18 +1886,6 @@ mergetool.writeToTemp::
|
||||
mergetool.prompt::
|
||||
Prompt before each invocation of the merge resolution program.
|
||||
|
||||
notes.mergeStrategy::
|
||||
Which merge strategy to choose by default when resolving notes
|
||||
conflicts. Must be one of `manual`, `ours`, `theirs`, `union`, or
|
||||
`cat_sort_uniq`. Defaults to `manual`. See "NOTES MERGE STRATEGIES"
|
||||
section of linkgit:git-notes[1] for more information on each strategy.
|
||||
|
||||
notes.<name>.mergeStrategy::
|
||||
Which merge strategy to choose when doing a notes merge into
|
||||
refs/notes/<name>. This overrides the more general
|
||||
"notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section in
|
||||
linkgit:git-notes[1] for more information on the available strategies.
|
||||
|
||||
notes.displayRef::
|
||||
The (fully qualified) refname from which to show notes when
|
||||
showing commit messages. The value of this variable can be set
|
||||
@ -2066,8 +1914,8 @@ notes.rewriteMode::
|
||||
When copying notes during a rewrite (see the
|
||||
"notes.rewrite.<command>" option), determines what to do if
|
||||
the target commit already has a note. Must be one of
|
||||
`overwrite`, `concatenate`, `cat_sort_uniq`, or `ignore`.
|
||||
Defaults to `concatenate`.
|
||||
`overwrite`, `concatenate`, or `ignore`. Defaults to
|
||||
`concatenate`.
|
||||
+
|
||||
This setting can be overridden with the `GIT_NOTES_REWRITE_MODE`
|
||||
environment variable.
|
||||
@ -2151,7 +1999,7 @@ pack.indexVersion::
|
||||
larger than 2 GB.
|
||||
+
|
||||
If you have an old Git that does not understand the version 2 `*.idx` file,
|
||||
cloning or fetching over a non native protocol (e.g. "http")
|
||||
cloning or fetching over a non native protocol (e.g. "http" and "rsync")
|
||||
that will copy both `*.pack` file and corresponding `*.idx` file from the
|
||||
other side may give you a repository that cannot be accessed with your
|
||||
older version of Git. If the `*.pack` file is smaller than 2 GB, however,
|
||||
@ -2162,11 +2010,8 @@ pack.packSizeLimit::
|
||||
The maximum size of a pack. This setting only affects
|
||||
packing to a file when repacking, i.e. the git:// protocol
|
||||
is unaffected. It can be overridden by the `--max-pack-size`
|
||||
option of linkgit:git-repack[1]. Reaching this limit results
|
||||
in the creation of multiple packfiles; which in turn prevents
|
||||
bitmaps from being created.
|
||||
The minimum size allowed is limited to 1 MiB.
|
||||
The default is unlimited.
|
||||
option of linkgit:git-repack[1]. The minimum size allowed is
|
||||
limited to 1 MiB. The default is unlimited.
|
||||
Common unit suffixes of 'k', 'm', or 'g' are
|
||||
supported.
|
||||
|
||||
@ -2225,11 +2070,9 @@ pull.rebase::
|
||||
pull" is run. See "branch.<name>.rebase" for setting this on a
|
||||
per-branch basis.
|
||||
+
|
||||
When preserve, also pass `--preserve-merges` along to 'git rebase'
|
||||
so that locally committed merge commits will not be flattened
|
||||
by running 'git pull'.
|
||||
+
|
||||
When the value is `interactive`, the rebase is run in interactive mode.
|
||||
When preserve, also pass `--preserve-merges` along to 'git rebase'
|
||||
so that locally committed merge commits will not be flattened
|
||||
by running 'git pull'.
|
||||
+
|
||||
*NOTE*: this is a possibly dangerous operation; do *not* use
|
||||
it unless you understand the implications (see linkgit:git-rebase[1]
|
||||
@ -2302,28 +2145,6 @@ push.followTags::
|
||||
may override this configuration at time of push by specifying
|
||||
'--no-follow-tags'.
|
||||
|
||||
push.gpgSign::
|
||||
May be set to a boolean value, or the string 'if-asked'. A true
|
||||
value causes all pushes to be GPG signed, as if '--signed' is
|
||||
passed to linkgit:git-push[1]. The string 'if-asked' causes
|
||||
pushes to be signed if the server supports it, as if
|
||||
'--signed=if-asked' is passed to 'git push'. A false value may
|
||||
override a value from a lower-priority config file. An explicit
|
||||
command-line flag always overrides this config option.
|
||||
|
||||
push.recurseSubmodules::
|
||||
Make sure all submodule commits used by the revisions to be pushed
|
||||
are available on a remote-tracking branch. If the value is 'check'
|
||||
then Git will verify that all submodule commits that changed in the
|
||||
revisions to be pushed are available on at least one remote of the
|
||||
submodule. If any commits are missing, the push will be aborted and
|
||||
exit with non-zero status. If the value is 'on-demand' then all
|
||||
submodules that changed in the revisions to be pushed will be
|
||||
pushed. If on-demand was not able to push all necessary revisions
|
||||
it will also be aborted and exit with non-zero status. If the value
|
||||
is 'no' then default behavior of ignoring submodules when pushing
|
||||
is retained. You may override this configuration at time of push by
|
||||
specifying '--recurse-submodules=check|on-demand|no'.
|
||||
|
||||
rebase.stat::
|
||||
Whether to show a diffstat of what changed upstream since the last
|
||||
@ -2340,22 +2161,6 @@ rebase.autoStash::
|
||||
successful rebase might result in non-trivial conflicts.
|
||||
Defaults to false.
|
||||
|
||||
rebase.missingCommitsCheck::
|
||||
If set to "warn", git rebase -i will print a warning if some
|
||||
commits are removed (e.g. a line was deleted), however the
|
||||
rebase will still proceed. If set to "error", it will print
|
||||
the previous warning and stop the rebase, 'git rebase
|
||||
--edit-todo' can then be used to correct the error. If set to
|
||||
"ignore", no checking is done.
|
||||
To drop a commit without warning or error, use the `drop`
|
||||
command in the todo-list.
|
||||
Defaults to "ignore".
|
||||
|
||||
rebase.instructionFormat
|
||||
A format string, as specified in linkgit:git-log[1], to be used for
|
||||
the instruction list during an interactive rebase. The format will automatically
|
||||
have the long commit hash prepended to the format.
|
||||
|
||||
receive.advertiseAtomic::
|
||||
By default, git-receive-pack will advertise the atomic push
|
||||
capability to its clients. If you don't want to this capability
|
||||
@ -2392,28 +2197,6 @@ receive.fsckObjects::
|
||||
Defaults to false. If not set, the value of `transfer.fsckObjects`
|
||||
is used instead.
|
||||
|
||||
receive.fsck.<msg-id>::
|
||||
When `receive.fsckObjects` is set to true, errors can be switched
|
||||
to warnings and vice versa by configuring the `receive.fsck.<msg-id>`
|
||||
setting where the `<msg-id>` is the fsck message ID and the value
|
||||
is one of `error`, `warn` or `ignore`. For convenience, fsck prefixes
|
||||
the error/warning with the message ID, e.g. "missingEmail: invalid
|
||||
author/committer line - missing email" means that setting
|
||||
`receive.fsck.missingEmail = ignore` will hide that issue.
|
||||
+
|
||||
This feature is intended to support working with legacy repositories
|
||||
which would not pass pushing when `receive.fsckObjects = true`, allowing
|
||||
the host to accept repositories with certain known issues but still catch
|
||||
other issues.
|
||||
|
||||
receive.fsck.skipList::
|
||||
The path to a sorted list of object names (i.e. one SHA-1 per
|
||||
line) that are known to be broken in a non-fatal way and should
|
||||
be ignored. This feature is useful when an established project
|
||||
should be accepted despite early commits containing errors that
|
||||
can be safely ignored such as invalid committer email addresses.
|
||||
Note: corrupt objects cannot be skipped with this setting.
|
||||
|
||||
receive.unpackLimit::
|
||||
If the number of objects received in a push is below this
|
||||
limit then the objects will be unpacked into loose object
|
||||
@ -2459,10 +2242,13 @@ receive.denyNonFastForwards::
|
||||
set when initializing a shared repository.
|
||||
|
||||
receive.hideRefs::
|
||||
This variable is the same as `transfer.hideRefs`, but applies
|
||||
only to `receive-pack` (and so affects pushes, but not fetches).
|
||||
An attempt to update or delete a hidden ref by `git push` is
|
||||
rejected.
|
||||
String(s) `receive-pack` uses to decide which refs to omit
|
||||
from its initial advertisement. Use more than one
|
||||
definitions to specify multiple prefix strings. A ref that
|
||||
are under the hierarchies listed on the value of this
|
||||
variable is excluded, and is hidden when responding to `git
|
||||
push`, and an attempt to update or delete a hidden ref by
|
||||
`git push` is rejected.
|
||||
|
||||
receive.updateServerInfo::
|
||||
If set to true, git-receive-pack will run git-update-server-info
|
||||
@ -2489,11 +2275,6 @@ remote.<name>.proxy::
|
||||
the proxy to use for that remote. Set to the empty string to
|
||||
disable proxying for that remote.
|
||||
|
||||
remote.<name>.proxyAuthMethod::
|
||||
For remotes that require curl (http, https and ftp), the method to use for
|
||||
authenticating against the proxy in use (probably set in
|
||||
`remote.<name>.proxy`). See `http.proxyAuthMethod`.
|
||||
|
||||
remote.<name>.fetch::
|
||||
The default set of "refspec" for linkgit:git-fetch[1]. See
|
||||
linkgit:git-fetch[1].
|
||||
@ -2566,9 +2347,8 @@ repack.writeBitmaps::
|
||||
objects to disk (e.g., when `git repack -a` is run). This
|
||||
index can speed up the "counting objects" phase of subsequent
|
||||
packs created for clones and fetches, at the cost of some disk
|
||||
space and extra time spent on the initial repack. This has
|
||||
no effect if multiple packfiles are created.
|
||||
Defaults to false.
|
||||
space and extra time spent on the initial repack. Defaults to
|
||||
false.
|
||||
|
||||
rerere.autoUpdate::
|
||||
When set to true, `git-rerere` updates the index with the
|
||||
@ -2696,16 +2476,6 @@ status.submoduleSummary::
|
||||
submodule summary' command, which shows a similar output but does
|
||||
not honor these settings.
|
||||
|
||||
stash.showPatch::
|
||||
If this is set to true, the `git stash show` command without an
|
||||
option will show the stash in patch form. Defaults to false.
|
||||
See description of 'show' command in linkgit:git-stash[1].
|
||||
|
||||
stash.showStat::
|
||||
If this is set to true, the `git stash show` command without an
|
||||
option will show diffstat of the stash. Defaults to true.
|
||||
See description of 'show' command in linkgit:git-stash[1].
|
||||
|
||||
submodule.<name>.path::
|
||||
submodule.<name>.url::
|
||||
The path within this project and URL for a submodule. These
|
||||
@ -2766,27 +2536,9 @@ transfer.fsckObjects::
|
||||
Defaults to false.
|
||||
|
||||
transfer.hideRefs::
|
||||
String(s) `receive-pack` and `upload-pack` use to decide which
|
||||
refs to omit from their initial advertisements. Use more than
|
||||
one definition to specify multiple prefix strings. A ref that is
|
||||
under the hierarchies listed in the value of this variable is
|
||||
excluded, and is hidden when responding to `git push` or `git
|
||||
fetch`. See `receive.hideRefs` and `uploadpack.hideRefs` for
|
||||
program-specific versions of this config.
|
||||
+
|
||||
You may also include a `!` in front of the ref name to negate the entry,
|
||||
explicitly exposing it, even if an earlier entry marked it as hidden.
|
||||
If you have multiple hideRefs values, later entries override earlier ones
|
||||
(and entries in more-specific config files override less-specific ones).
|
||||
+
|
||||
If a namespace is in use, the namespace prefix is stripped from each
|
||||
reference before it is matched against `transfer.hiderefs` patterns.
|
||||
For example, if `refs/heads/master` is specified in `transfer.hideRefs` and
|
||||
the current namespace is `foo`, then `refs/namespaces/foo/refs/heads/master`
|
||||
is omitted from the advertisements but `refs/heads/master` and
|
||||
`refs/namespaces/bar/refs/heads/master` are still advertised as so-called
|
||||
"have" lines. In order to match refs before stripping, add a `^` in front of
|
||||
the ref name. If you combine `!` and `^`, `!` must be specified first.
|
||||
This variable can be used to set both `receive.hideRefs`
|
||||
and `uploadpack.hideRefs` at the same time to the same
|
||||
values. See entries for these other variables.
|
||||
|
||||
transfer.unpackLimit::
|
||||
When `fetch.unpackLimit` or `receive.unpackLimit` are
|
||||
@ -2801,10 +2553,13 @@ uploadarchive.allowUnreachable::
|
||||
`false`.
|
||||
|
||||
uploadpack.hideRefs::
|
||||
This variable is the same as `transfer.hideRefs`, but applies
|
||||
only to `upload-pack` (and so affects only fetches, not pushes).
|
||||
An attempt to fetch a hidden ref by `git fetch` will fail. See
|
||||
also `uploadpack.allowTipSHA1InWant`.
|
||||
String(s) `upload-pack` uses to decide which refs to omit
|
||||
from its initial advertisement. Use more than one
|
||||
definitions to specify multiple prefix strings. A ref that
|
||||
are under the hierarchies listed on the value of this
|
||||
variable is excluded, and is hidden from `git ls-remote`,
|
||||
`git fetch`, etc. An attempt to fetch a hidden ref by `git
|
||||
fetch` will fail. See also `uploadpack.allowTipSHA1InWant`.
|
||||
|
||||
uploadpack.allowTipSHA1InWant::
|
||||
When `uploadpack.hideRefs` is in effect, allow `upload-pack`
|
||||
@ -2863,16 +2618,6 @@ user.name::
|
||||
Can be overridden by the 'GIT_AUTHOR_NAME' and 'GIT_COMMITTER_NAME'
|
||||
environment variables. See linkgit:git-commit-tree[1].
|
||||
|
||||
user.useConfigOnly::
|
||||
Instruct Git to avoid trying to guess defaults for 'user.email'
|
||||
and 'user.name', and instead retrieve the values only from the
|
||||
configuration. For example, if you have multiple email addresses
|
||||
and would like to use a different one for each repository, then
|
||||
with this configuration option set to `true` in the global config
|
||||
along with a name, Git will prompt you to set up an email before
|
||||
making new commits in a newly cloned repository.
|
||||
Defaults to `false`.
|
||||
|
||||
user.signingKey::
|
||||
If linkgit:git-tag[1] or linkgit:git-commit[1] is not selecting the
|
||||
key you want it to automatically when creating a signed tag or
|
||||
|
@ -26,12 +26,12 @@ ifndef::git-format-patch[]
|
||||
ifdef::git-diff[]
|
||||
This is the default.
|
||||
endif::git-diff[]
|
||||
endif::git-format-patch[]
|
||||
|
||||
-s::
|
||||
--no-patch::
|
||||
Suppress diff output. Useful for commands like `git show` that
|
||||
show the patch by default, or to cancel the effect of `--patch`.
|
||||
endif::git-format-patch[]
|
||||
|
||||
-U<n>::
|
||||
--unified=<n>::
|
||||
@ -267,11 +267,8 @@ expression to make sure that it matches all non-whitespace characters.
|
||||
A match that contains a newline is silently truncated(!) at the
|
||||
newline.
|
||||
+
|
||||
For example, `--word-diff-regex=.` will treat each character as a word
|
||||
and, correspondingly, show differences character by character.
|
||||
+
|
||||
The regex can also be set via a diff driver or configuration option, see
|
||||
linkgit:gitattributes[5] or linkgit:git-config[1]. Giving it explicitly
|
||||
linkgit:gitattributes[1] or linkgit:git-config[1]. Giving it explicitly
|
||||
overrides any diff driver or configuration setting. Diff drivers
|
||||
override configuration settings.
|
||||
|
||||
@ -286,8 +283,8 @@ endif::git-format-patch[]
|
||||
|
||||
ifndef::git-format-patch[]
|
||||
--check::
|
||||
Warn if changes introduce conflict markers or whitespace errors.
|
||||
What are considered whitespace errors is controlled by `core.whitespace`
|
||||
Warn if changes introduce whitespace errors. What are
|
||||
considered whitespace errors is controlled by `core.whitespace`
|
||||
configuration. By default, trailing whitespaces (including
|
||||
lines that solely consist of whitespaces) and a space character
|
||||
that is immediately followed by a tab character inside the
|
||||
|
@ -1,7 +1,7 @@
|
||||
Everyday Git With 20 Commands Or So
|
||||
===================================
|
||||
|
||||
This document has been moved to linkgit:giteveryday[7].
|
||||
This document has been moved to linkgit:giteveryday[1].
|
||||
|
||||
Please let the owners of the referring site know so that they can update the
|
||||
link you clicked to get here.
|
||||
|
@ -8,11 +8,10 @@
|
||||
option old data in `.git/FETCH_HEAD` will be overwritten.
|
||||
|
||||
--depth=<depth>::
|
||||
Limit fetching to the specified number of commits from the tip of
|
||||
each remote branch history. If fetching to a 'shallow' repository
|
||||
created by `git clone` with `--depth=<depth>` option (see
|
||||
linkgit:git-clone[1]), deepen or shorten the history to the specified
|
||||
number of commits. Tags for the deepened commits are not fetched.
|
||||
Deepen or shorten the history of a 'shallow' repository created by
|
||||
`git clone` with `--depth=<depth>` option (see linkgit:git-clone[1])
|
||||
to the specified number of commits from the tip of each remote
|
||||
branch history. Tags for the deepened commits are not fetched.
|
||||
|
||||
--unshallow::
|
||||
If the source repository is complete, convert a shallow
|
||||
@ -101,13 +100,6 @@ ifndef::git-pull[]
|
||||
reference to a commit that isn't already in the local submodule
|
||||
clone.
|
||||
|
||||
-j::
|
||||
--jobs=<n>::
|
||||
Number of parallel children to be used for fetching submodules.
|
||||
Each will fetch from different submodules, such that fetching many
|
||||
submodules will be faster. By default submodules will be fetched
|
||||
one at a time.
|
||||
|
||||
--no-recurse-submodules::
|
||||
Disable recursive fetching of submodules (this has the same effect as
|
||||
using the '--recurse-submodules=no' option).
|
||||
@ -158,11 +150,3 @@ endif::git-pull[]
|
||||
by default when it is attached to a terminal, unless -q
|
||||
is specified. This flag forces progress status even if the
|
||||
standard error stream is not directed to a terminal.
|
||||
|
||||
-4::
|
||||
--ipv4::
|
||||
Use IPv4 addresses only, ignoring IPv6 addresses.
|
||||
|
||||
-6::
|
||||
--ipv6::
|
||||
Use IPv6 addresses only, ignoring IPv4 addresses.
|
||||
|
@ -24,7 +24,7 @@ remove paths that do not exist in the working tree anymore.
|
||||
|
||||
The "index" holds a snapshot of the content of the working tree, and it
|
||||
is this snapshot that is taken as the contents of the next commit. Thus
|
||||
after making any changes to the working tree, and before running
|
||||
after making any changes to the working directory, and before running
|
||||
the commit command, you must use the `add` command to add any new or
|
||||
modified files to the index.
|
||||
|
||||
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git am' [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8]
|
||||
[--[no-]3way] [--interactive] [--committer-date-is-author-date]
|
||||
[--3way] [--interactive] [--committer-date-is-author-date]
|
||||
[--ignore-date] [--ignore-space-change | --ignore-whitespace]
|
||||
[--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
|
||||
[--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet]
|
||||
@ -35,7 +35,6 @@ OPTIONS
|
||||
--signoff::
|
||||
Add a `Signed-off-by:` line to the commit message, using
|
||||
the committer identity of yourself.
|
||||
See the signoff option in linkgit:git-commit[1] for more information.
|
||||
|
||||
-k::
|
||||
--keep::
|
||||
@ -91,13 +90,10 @@ default. You can use `--no-utf8` to override this.
|
||||
|
||||
-3::
|
||||
--3way::
|
||||
--no-3way::
|
||||
When the patch does not apply cleanly, fall back on
|
||||
3-way merge if the patch records the identity of blobs
|
||||
it is supposed to apply to and we have those blobs
|
||||
available locally. `--no-3way` can be used to override
|
||||
am.threeWay configuration variable. For more information,
|
||||
see am.threeWay in linkgit:git-config[1].
|
||||
available locally.
|
||||
|
||||
--ignore-space-change::
|
||||
--ignore-whitespace::
|
||||
@ -142,9 +138,7 @@ default. You can use `--no-utf8` to override this.
|
||||
|
||||
-S[<keyid>]::
|
||||
--gpg-sign[=<keyid>]::
|
||||
GPG-sign commits. The `keyid` argument is optional and
|
||||
defaults to the committer identity; if specified, it must be
|
||||
stuck to the option without a space.
|
||||
GPG-sign commits.
|
||||
|
||||
--continue::
|
||||
-r::
|
||||
|
@ -13,7 +13,7 @@ SYNOPSIS
|
||||
[--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse]
|
||||
[--allow-binary-replacement | --binary] [--reject] [-z]
|
||||
[-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached]
|
||||
[--ignore-space-change | --ignore-whitespace]
|
||||
[--ignore-space-change | --ignore-whitespace ]
|
||||
[--whitespace=(nowarn|warn|fix|error|error-all)]
|
||||
[--exclude=<path>] [--include=<path>] [--directory=<root>]
|
||||
[--verbose] [--unsafe-paths] [<patch>...]
|
||||
@ -21,8 +21,6 @@ SYNOPSIS
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Reads the supplied diff output (i.e. "a patch") and applies it to files.
|
||||
When running from a subdirectory in a repository, patched paths
|
||||
outside the directory are ignored.
|
||||
With the `--index` option the patch is also applied to the index, and
|
||||
with the `--cached` option the patch is only applied to the index.
|
||||
Without these options, the command applies the patch only to files,
|
||||
|
@ -1321,7 +1321,7 @@ So git bisect is unconditional goodness - and feel free to quote that
|
||||
_____________
|
||||
|
||||
Acknowledgments
|
||||
---------------
|
||||
----------------
|
||||
|
||||
Many thanks to Junio Hamano for his help in reviewing this paper, for
|
||||
reviewing the patches I sent to the Git mailing list, for discussing
|
||||
|
@ -3,7 +3,7 @@ git-bisect(1)
|
||||
|
||||
NAME
|
||||
----
|
||||
git-bisect - Use binary search to find the commit that introduced a bug
|
||||
git-bisect - Find by binary search the change that introduced a bug
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
@ -16,89 +16,74 @@ DESCRIPTION
|
||||
The command takes various subcommands, and different options depending
|
||||
on the subcommand:
|
||||
|
||||
git bisect start [--term-{old,good}=<term> --term-{new,bad}=<term>]
|
||||
[--no-checkout] [<bad> [<good>...]] [--] [<paths>...]
|
||||
git bisect (bad|new) [<rev>]
|
||||
git bisect (good|old) [<rev>...]
|
||||
git bisect terms [--term-good | --term-bad]
|
||||
git bisect help
|
||||
git bisect start [--no-checkout] [<bad> [<good>...]] [--] [<paths>...]
|
||||
git bisect bad [<rev>]
|
||||
git bisect good [<rev>...]
|
||||
git bisect skip [(<rev>|<range>)...]
|
||||
git bisect reset [<commit>]
|
||||
git bisect visualize
|
||||
git bisect replay <logfile>
|
||||
git bisect log
|
||||
git bisect run <cmd>...
|
||||
git bisect help
|
||||
|
||||
This command uses a binary search algorithm to find which commit in
|
||||
your project's history introduced a bug. You use it by first telling
|
||||
it a "bad" commit that is known to contain the bug, and a "good"
|
||||
commit that is known to be before the bug was introduced. Then `git
|
||||
bisect` picks a commit between those two endpoints and asks you
|
||||
whether the selected commit is "good" or "bad". It continues narrowing
|
||||
down the range until it finds the exact commit that introduced the
|
||||
change.
|
||||
This command uses 'git rev-list --bisect' to help drive the
|
||||
binary search process to find which change introduced a bug, given an
|
||||
old "good" commit object name and a later "bad" commit object name.
|
||||
|
||||
In fact, `git bisect` can be used to find the commit that changed
|
||||
*any* property of your project; e.g., the commit that fixed a bug, or
|
||||
the commit that caused a benchmark's performance to improve. To
|
||||
support this more general usage, the terms "old" and "new" can be used
|
||||
in place of "good" and "bad", or you can choose your own terms. See
|
||||
section "Alternate terms" below for more information.
|
||||
Getting help
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Use "git bisect" to get a short usage description, and "git bisect
|
||||
help" or "git bisect -h" to get a long usage description.
|
||||
|
||||
Basic bisect commands: start, bad, good
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
As an example, suppose you are trying to find the commit that broke a
|
||||
feature that was known to work in version `v2.6.13-rc2` of your
|
||||
project. You start a bisect session as follows:
|
||||
Using the Linux kernel tree as an example, basic use of the bisect
|
||||
command is as follows:
|
||||
|
||||
------------------------------------------------
|
||||
$ git bisect start
|
||||
$ git bisect bad # Current version is bad
|
||||
$ git bisect good v2.6.13-rc2 # v2.6.13-rc2 is known to be good
|
||||
$ git bisect good v2.6.13-rc2 # v2.6.13-rc2 was the last version
|
||||
# tested that was good
|
||||
------------------------------------------------
|
||||
|
||||
Once you have specified at least one bad and one good commit, `git
|
||||
bisect` selects a commit in the middle of that range of history,
|
||||
checks it out, and outputs something similar to the following:
|
||||
When you have specified at least one bad and one good version, the
|
||||
command bisects the revision tree and outputs something similar to
|
||||
the following:
|
||||
|
||||
------------------------------------------------
|
||||
Bisecting: 675 revisions left to test after this (roughly 10 steps)
|
||||
Bisecting: 675 revisions left to test after this
|
||||
------------------------------------------------
|
||||
|
||||
You should now compile the checked-out version and test it. If that
|
||||
version works correctly, type
|
||||
The state in the middle of the set of revisions is then checked out.
|
||||
You would now compile that kernel and boot it. If the booted kernel
|
||||
works correctly, you would then issue the following command:
|
||||
|
||||
------------------------------------------------
|
||||
$ git bisect good
|
||||
$ git bisect good # this one is good
|
||||
------------------------------------------------
|
||||
|
||||
If that version is broken, type
|
||||
The output of this command would be something similar to the following:
|
||||
|
||||
------------------------------------------------
|
||||
$ git bisect bad
|
||||
Bisecting: 337 revisions left to test after this
|
||||
------------------------------------------------
|
||||
|
||||
Then `git bisect` will respond with something like
|
||||
|
||||
------------------------------------------------
|
||||
Bisecting: 337 revisions left to test after this (roughly 9 steps)
|
||||
------------------------------------------------
|
||||
|
||||
Keep repeating the process: compile the tree, test it, and depending
|
||||
on whether it is good or bad run `git bisect good` or `git bisect bad`
|
||||
to ask for the next commit that needs testing.
|
||||
|
||||
Eventually there will be no more revisions left to inspect, and the
|
||||
command will print out a description of the first bad commit. The
|
||||
reference `refs/bisect/bad` will be left pointing at that commit.
|
||||
You keep repeating this process, compiling the tree, testing it, and
|
||||
depending on whether it is good or bad issuing the command "git bisect good"
|
||||
or "git bisect bad" to ask for the next bisection.
|
||||
|
||||
Eventually there will be no more revisions left to bisect, and you
|
||||
will have been left with the first bad kernel revision in "refs/bisect/bad".
|
||||
|
||||
Bisect reset
|
||||
~~~~~~~~~~~~
|
||||
|
||||
After a bisect session, to clean up the bisection state and return to
|
||||
the original HEAD, issue the following command:
|
||||
the original HEAD (i.e., to quit bisecting), issue the following command:
|
||||
|
||||
------------------------------------------------
|
||||
$ git bisect reset
|
||||
@ -115,83 +100,9 @@ instead:
|
||||
$ git bisect reset <commit>
|
||||
------------------------------------------------
|
||||
|
||||
For example, `git bisect reset bisect/bad` will check out the first
|
||||
bad revision, while `git bisect reset HEAD` will leave you on the
|
||||
current bisection commit and avoid switching commits at all.
|
||||
|
||||
|
||||
Alternate terms
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Sometimes you are not looking for the commit that introduced a
|
||||
breakage, but rather for a commit that caused a change between some
|
||||
other "old" state and "new" state. For example, you might be looking
|
||||
for the commit that introduced a particular fix. Or you might be
|
||||
looking for the first commit in which the source-code filenames were
|
||||
finally all converted to your company's naming standard. Or whatever.
|
||||
|
||||
In such cases it can be very confusing to use the terms "good" and
|
||||
"bad" to refer to "the state before the change" and "the state after
|
||||
the change". So instead, you can use the terms "old" and "new",
|
||||
respectively, in place of "good" and "bad". (But note that you cannot
|
||||
mix "good" and "bad" with "old" and "new" in a single session.)
|
||||
|
||||
In this more general usage, you provide `git bisect` with a "new"
|
||||
commit has some property and an "old" commit that doesn't have that
|
||||
property. Each time `git bisect` checks out a commit, you test if that
|
||||
commit has the property. If it does, mark the commit as "new";
|
||||
otherwise, mark it as "old". When the bisection is done, `git bisect`
|
||||
will report which commit introduced the property.
|
||||
|
||||
To use "old" and "new" instead of "good" and bad, you must run `git
|
||||
bisect start` without commits as argument and then run the following
|
||||
commands to add the commits:
|
||||
|
||||
------------------------------------------------
|
||||
git bisect old [<rev>]
|
||||
------------------------------------------------
|
||||
|
||||
to indicate that a commit was before the sought change, or
|
||||
|
||||
------------------------------------------------
|
||||
git bisect new [<rev>...]
|
||||
------------------------------------------------
|
||||
|
||||
to indicate that it was after.
|
||||
|
||||
To get a reminder of the currently used terms, use
|
||||
|
||||
------------------------------------------------
|
||||
git bisect terms
|
||||
------------------------------------------------
|
||||
|
||||
You can get just the old (respectively new) term with `git bisect term
|
||||
--term-old` or `git bisect term --term-good`.
|
||||
|
||||
If you would like to use your own terms instead of "bad"/"good" or
|
||||
"new"/"old", you can choose any names you like (except existing bisect
|
||||
subcommands like `reset`, `start`, ...) by starting the
|
||||
bisection using
|
||||
|
||||
------------------------------------------------
|
||||
git bisect start --term-old <term-old> --term-new <term-new>
|
||||
------------------------------------------------
|
||||
|
||||
For example, if you are looking for a commit that introduced a
|
||||
performance regression, you might use
|
||||
|
||||
------------------------------------------------
|
||||
git bisect start --term-old fast --term-new slow
|
||||
------------------------------------------------
|
||||
|
||||
Or if you are looking for the commit that fixed a bug, you might use
|
||||
|
||||
------------------------------------------------
|
||||
git bisect start --term-new fixed --term-old broken
|
||||
------------------------------------------------
|
||||
|
||||
Then, use `git bisect <term-old>` and `git bisect <term-new>` instead
|
||||
of `git bisect good` and `git bisect bad` to mark commits.
|
||||
For example, `git bisect reset HEAD` will leave you on the current
|
||||
bisection commit and avoid switching commits at all, while `git bisect
|
||||
reset bisect/bad` will check out the first bad revision.
|
||||
|
||||
Bisect visualize
|
||||
~~~~~~~~~~~~~~~~
|
||||
@ -236,17 +147,17 @@ $ git bisect replay that-file
|
||||
Avoiding testing a commit
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If, in the middle of a bisect session, you know that the suggested
|
||||
revision is not a good one to test (e.g. it fails to build and you
|
||||
know that the failure does not have anything to do with the bug you
|
||||
are chasing), you can manually select a nearby commit and test that
|
||||
one instead.
|
||||
If, in the middle of a bisect session, you know that the next suggested
|
||||
revision is not a good one to test (e.g. the change the commit
|
||||
introduces is known not to work in your environment and you know it
|
||||
does not have anything to do with the bug you are chasing), you may
|
||||
want to find a nearby commit and try that instead.
|
||||
|
||||
For example:
|
||||
|
||||
------------
|
||||
$ git bisect good/bad # previous round was good or bad.
|
||||
Bisecting: 337 revisions left to test after this (roughly 9 steps)
|
||||
Bisecting: 337 revisions left to test after this
|
||||
$ git bisect visualize # oops, that is uninteresting.
|
||||
$ git reset --hard HEAD~3 # try 3 revisions before what
|
||||
# was suggested
|
||||
@ -256,21 +167,20 @@ Then compile and test the chosen revision, and afterwards mark
|
||||
the revision as good or bad in the usual manner.
|
||||
|
||||
Bisect skip
|
||||
~~~~~~~~~~~
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Instead of choosing a nearby commit by yourself, you can ask Git to do
|
||||
it for you by issuing the command:
|
||||
Instead of choosing by yourself a nearby commit, you can ask Git
|
||||
to do it for you by issuing the command:
|
||||
|
||||
------------
|
||||
$ git bisect skip # Current version cannot be tested
|
||||
------------
|
||||
|
||||
However, if you skip a commit adjacent to the one you are looking for,
|
||||
Git will be unable to tell exactly which of those commits was the
|
||||
first bad one.
|
||||
But Git may eventually be unable to tell the first bad commit among
|
||||
a bad commit and one or more skipped commits.
|
||||
|
||||
You can also skip a range of commits, instead of just one commit,
|
||||
using range notation. For example:
|
||||
You can even skip a range of commits, instead of just one commit,
|
||||
using the "'<commit1>'..'<commit2>'" notation. For example:
|
||||
|
||||
------------
|
||||
$ git bisect skip v2.5..v2.6
|
||||
@ -286,8 +196,8 @@ would issue the command:
|
||||
$ git bisect skip v2.5 v2.5..v2.6
|
||||
------------
|
||||
|
||||
This tells the bisect process that the commits between `v2.5` and
|
||||
`v2.6` (inclusive) should be skipped.
|
||||
This tells the bisect process that the commits between `v2.5` included
|
||||
and `v2.6` included should be skipped.
|
||||
|
||||
|
||||
Cutting down bisection by giving more parameters to bisect start
|
||||
@ -321,23 +231,23 @@ or bad, you can bisect by issuing the command:
|
||||
$ git bisect run my_script arguments
|
||||
------------
|
||||
|
||||
Note that the script (`my_script` in the above example) should exit
|
||||
with code 0 if the current source code is good/old, and exit with a
|
||||
code between 1 and 127 (inclusive), except 125, if the current source
|
||||
code is bad/new.
|
||||
Note that the script (`my_script` in the above example) should
|
||||
exit with code 0 if the current source code is good, and exit with a
|
||||
code between 1 and 127 (inclusive), except 125, if the current
|
||||
source code is bad.
|
||||
|
||||
Any other exit code will abort the bisect process. It should be noted
|
||||
that a program that terminates via `exit(-1)` leaves $? = 255, (see the
|
||||
exit(3) manual page), as the value is chopped with `& 0377`.
|
||||
that a program that terminates via "exit(-1)" leaves $? = 255, (see the
|
||||
exit(3) manual page), as the value is chopped with "& 0377".
|
||||
|
||||
The special exit code 125 should be used when the current source code
|
||||
cannot be tested. If the script exits with this code, the current
|
||||
revision will be skipped (see `git bisect skip` above). 125 was chosen
|
||||
as the highest sensible value to use for this purpose, because 126 and 127
|
||||
are used by POSIX shells to signal specific error status (127 is for
|
||||
command not found, 126 is for command found but not executable--these
|
||||
command not found, 126 is for command found but not executable---these
|
||||
details do not matter, as they are normal errors in the script, as far as
|
||||
`bisect run` is concerned).
|
||||
"bisect run" is concerned).
|
||||
|
||||
You may often find that during a bisect session you want to have
|
||||
temporary modifications (e.g. s/#define DEBUG 0/#define DEBUG 1/ in a
|
||||
@ -350,7 +260,7 @@ next revision to test, the script can apply the patch
|
||||
before compiling, run the real test, and afterwards decide if the
|
||||
revision (possibly with the needed patch) passed the test and then
|
||||
rewind the tree to the pristine state. Finally the script should exit
|
||||
with the status of the real test to let the `git bisect run` command loop
|
||||
with the status of the real test to let the "git bisect run" command loop
|
||||
determine the eventual outcome of the bisect session.
|
||||
|
||||
OPTIONS
|
||||
@ -397,12 +307,12 @@ $ git bisect run ~/test.sh
|
||||
$ git bisect reset # quit the bisect session
|
||||
------------
|
||||
+
|
||||
Here we use a `test.sh` custom script. In this script, if `make`
|
||||
Here we use a "test.sh" custom script. In this script, if "make"
|
||||
fails, we skip the current commit.
|
||||
`check_test_case.sh` should `exit 0` if the test case passes,
|
||||
and `exit 1` otherwise.
|
||||
"check_test_case.sh" should "exit 0" if the test case passes,
|
||||
and "exit 1" otherwise.
|
||||
+
|
||||
It is safer if both `test.sh` and `check_test_case.sh` are
|
||||
It is safer if both "test.sh" and "check_test_case.sh" are
|
||||
outside the repository to prevent interactions between the bisect,
|
||||
make and test processes and the scripts.
|
||||
|
||||
@ -469,26 +379,6 @@ In this case, when 'git bisect run' finishes, bisect/bad will refer to a commit
|
||||
has at least one parent whose reachable graph is fully traversable in the sense
|
||||
required by 'git pack objects'.
|
||||
|
||||
* Look for a fix instead of a regression in the code
|
||||
+
|
||||
------------
|
||||
$ git bisect start
|
||||
$ git bisect new HEAD # current commit is marked as new
|
||||
$ git bisect old HEAD~10 # the tenth commit from now is marked as old
|
||||
------------
|
||||
+
|
||||
or:
|
||||
------------
|
||||
$ git bisect start --term-old broken --term-new fixed
|
||||
$ git bisect fixed
|
||||
$ git bisect broken HEAD~10
|
||||
------------
|
||||
|
||||
Getting help
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Use `git bisect` to get a short usage description, and `git bisect
|
||||
help` or `git bisect -h` to get a long usage description.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
|
@ -10,8 +10,7 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]
|
||||
[-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]
|
||||
[--progress] [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>]
|
||||
[--] <file>
|
||||
[--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>] [--] <file>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -11,8 +11,7 @@ SYNOPSIS
|
||||
'git branch' [--color[=<when>] | --no-color] [-r | -a]
|
||||
[--list] [-v [--abbrev=<length> | --no-abbrev]]
|
||||
[--column[=<options>] | --no-column]
|
||||
[(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>]
|
||||
[--points-at <object>] [<pattern>...]
|
||||
[(--merged | --no-merged | --contains) [<commit>]] [<pattern>...]
|
||||
'git branch' [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
|
||||
'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
|
||||
'git branch' --unset-upstream [<branchname>]
|
||||
@ -198,9 +197,7 @@ start-point is either a local or remote-tracking branch.
|
||||
|
||||
--edit-description::
|
||||
Open an editor and edit the text to explain what the branch is
|
||||
for, to be used by various other commands (e.g. `format-patch`,
|
||||
`request-pull`, and `merge` (if enabled)). Multi-line explanations
|
||||
may be used.
|
||||
for, to be used by various other commands (e.g. `request-pull`).
|
||||
|
||||
--contains [<commit>]::
|
||||
Only list branches which contain the specified commit (HEAD
|
||||
@ -232,19 +229,6 @@ start-point is either a local or remote-tracking branch.
|
||||
The new name for an existing branch. The same restrictions as for
|
||||
<branchname> apply.
|
||||
|
||||
--sort=<key>::
|
||||
Sort based on the key given. Prefix `-` to sort in descending
|
||||
order of the value. You may use the --sort=<key> option
|
||||
multiple times, in which case the last key becomes the primary
|
||||
key. The keys supported are the same as those in `git
|
||||
for-each-ref`. Sort order defaults to sorting based on the
|
||||
full refname (including `refs/...` prefix). This lists
|
||||
detached HEAD (if present) first, then local branches and
|
||||
finally remote-tracking branches.
|
||||
|
||||
|
||||
--points-at <object>::
|
||||
Only list branches of the given object.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
@ -20,7 +20,7 @@ DESCRIPTION
|
||||
Some workflows require that one or more branches of development on one
|
||||
machine be replicated on another machine, but the two machines cannot
|
||||
be directly connected, and therefore the interactive Git protocols (git,
|
||||
ssh, http) cannot be used. This command provides support for
|
||||
ssh, rsync, http) cannot be used. This command provides support for
|
||||
'git fetch' and 'git pull' to operate by packaging objects and references
|
||||
in an archive at the originating machine, then importing those into
|
||||
another repository using 'git fetch' and 'git pull'
|
||||
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git cat-file' (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | -p | <type> | --textconv ) <object>
|
||||
'git cat-file' (--batch | --batch-check) [--follow-symlinks]
|
||||
'git cat-file' (--batch | --batch-check) [--follow-symlinks] < <list-of-objects>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -69,20 +69,6 @@ OPTIONS
|
||||
not be combined with any other options or arguments. See the
|
||||
section `BATCH OUTPUT` below for details.
|
||||
|
||||
--batch-all-objects::
|
||||
Instead of reading a list of objects on stdin, perform the
|
||||
requested batch operation on all objects in the repository and
|
||||
any alternate object stores (not just reachable objects).
|
||||
Requires `--batch` or `--batch-check` be specified. Note that
|
||||
the objects are visited in order sorted by their hashes.
|
||||
|
||||
--buffer::
|
||||
Normally batch output is flushed after each object is output, so
|
||||
that a process can interactively read and write from
|
||||
`cat-file`. With this option, the output uses normal stdio
|
||||
buffering; this is much more efficient when invoking
|
||||
`--batch-check` on a large number of objects.
|
||||
|
||||
--allow-unknown-type::
|
||||
Allow -s or -t to query broken/corrupt objects of unknown type.
|
||||
|
||||
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git check-attr' [-a | --all | attr...] [--] pathname...
|
||||
'git check-attr' --stdin [-z] [-a | --all | attr...]
|
||||
'git check-attr' --stdin [-z] [-a | --all | attr...] < <list-of-paths>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -28,8 +28,7 @@ OPTIONS
|
||||
Consider `.gitattributes` in the index only, ignoring the working tree.
|
||||
|
||||
--stdin::
|
||||
Read pathnames from the standard input, one per line,
|
||||
instead of from the command-line.
|
||||
Read file names from stdin instead of from the command-line.
|
||||
|
||||
-z::
|
||||
The output format is modified to be machine-parseable.
|
||||
|
@ -10,15 +10,16 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git check-ignore' [options] pathname...
|
||||
'git check-ignore' [options] --stdin
|
||||
'git check-ignore' [options] --stdin < <list-of-paths>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
For each pathname given via the command-line or from a file via
|
||||
`--stdin`, check whether the file is excluded by .gitignore (or other
|
||||
input files to the exclude mechanism) and output the path if it is
|
||||
excluded.
|
||||
`--stdin`, show the pattern from .gitignore (or other input files to
|
||||
the exclude mechanism) that decides if the pathname is excluded or
|
||||
included. Later patterns within a file take precedence over earlier
|
||||
ones.
|
||||
|
||||
By default, tracked files are not shown at all since they are not
|
||||
subject to exclude rules; but see `--no-index'.
|
||||
@ -31,12 +32,10 @@ OPTIONS
|
||||
|
||||
-v, --verbose::
|
||||
Also output details about the matching pattern (if any)
|
||||
for each given pathname. For precedence rules within and
|
||||
between exclude sources, see linkgit:gitignore[5].
|
||||
for each given pathname.
|
||||
|
||||
--stdin::
|
||||
Read pathnames from the standard input, one per line,
|
||||
instead of from the command-line.
|
||||
Read file names from stdin instead of from the command-line.
|
||||
|
||||
-z::
|
||||
The output format is modified to be machine-parseable (see
|
||||
@ -112,7 +111,7 @@ EXIT STATUS
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:gitignore[5]
|
||||
linkgit:git-config[1]
|
||||
linkgit:gitconfig[5]
|
||||
linkgit:git-ls-files[1]
|
||||
|
||||
GIT
|
||||
|
@ -60,7 +60,7 @@ Git imposes the following rules on how references are named:
|
||||
|
||||
These rules make it easy for shell script based tools to parse
|
||||
reference names, pathname expansion by the shell when a reference name is used
|
||||
unquoted (by mistake), and also avoid ambiguities in certain
|
||||
unquoted (by mistake), and also avoids ambiguities in certain
|
||||
reference name expressions (see linkgit:gitrevisions[7]):
|
||||
|
||||
. A double-dot `..` is often used as in `ref1..ref2`, and in some
|
||||
@ -94,8 +94,8 @@ OPTIONS
|
||||
Interpret <refname> as a reference name pattern for a refspec
|
||||
(as used with remote repositories). If this option is
|
||||
enabled, <refname> is allowed to contain a single `*`
|
||||
in the refspec (e.g., `foo/bar*/baz` or `foo/bar*baz/`
|
||||
but not `foo/bar*/baz*`).
|
||||
in place of a one full pathname component (e.g.,
|
||||
`foo/*/bar` but not `foo/bar*`).
|
||||
|
||||
--normalize::
|
||||
Normalize 'refname' by removing any leading slash (`/`)
|
||||
|
@ -107,12 +107,6 @@ OPTIONS
|
||||
--quiet::
|
||||
Quiet, suppress feedback messages.
|
||||
|
||||
--[no-]progress::
|
||||
Progress status is reported on the standard error stream
|
||||
by default when it is attached to a terminal, unless `--quiet`
|
||||
is specified. This flag enables progress reporting even if not
|
||||
attached to a terminal, regardless of `--quiet`.
|
||||
|
||||
-f::
|
||||
--force::
|
||||
When switching branches, proceed even if the index or the
|
||||
|
@ -9,7 +9,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git cherry-pick' [--edit] [-n] [-m parent-number] [-s] [-x] [--ff]
|
||||
[-S[<keyid>]] <commit>...
|
||||
[-S[<key-id>]] <commit>...
|
||||
'git cherry-pick' --continue
|
||||
'git cherry-pick' --quit
|
||||
'git cherry-pick' --abort
|
||||
@ -100,13 +100,10 @@ effect to your index in a row.
|
||||
-s::
|
||||
--signoff::
|
||||
Add Signed-off-by line at the end of the commit message.
|
||||
See the signoff option in linkgit:git-commit[1] for more information.
|
||||
|
||||
-S[<keyid>]::
|
||||
--gpg-sign[=<keyid>]::
|
||||
GPG-sign commits. The `keyid` argument is optional and
|
||||
defaults to the committer identity; if specified, it must be
|
||||
stuck to the option without a space.
|
||||
-S[<key-id>]::
|
||||
--gpg-sign[=<key-id>]::
|
||||
GPG-sign commits.
|
||||
|
||||
--ff::
|
||||
If the current HEAD is the same as the parent of the
|
||||
|
@ -37,7 +37,9 @@ OPTIONS
|
||||
to false, 'git clean' will refuse to delete files or directories
|
||||
unless given -f, -n or -i. Git will refuse to delete directories
|
||||
with .git sub directory or file unless a second -f
|
||||
is given.
|
||||
is given. This affects also git submodules where the storage area
|
||||
of the removed submodule under .git/modules/ is not removed until
|
||||
-f is given twice.
|
||||
|
||||
-i::
|
||||
--interactive::
|
||||
|
@ -104,18 +104,14 @@ objects from the source repository into a pack in the cloned repository.
|
||||
--dissociate::
|
||||
Borrow the objects from reference repositories specified
|
||||
with the `--reference` options only to reduce network
|
||||
transfer, and stop borrowing from them after a clone is made
|
||||
by making necessary local copies of borrowed objects. This
|
||||
option can also be used when cloning locally from a
|
||||
repository that already borrows objects from another
|
||||
repository--the new repository will borrow objects from the
|
||||
same repository, and this option can be used to stop the
|
||||
borrowing.
|
||||
transfer and stop borrowing from them after a clone is made
|
||||
by making necessary local copies of borrowed objects.
|
||||
|
||||
--quiet::
|
||||
-q::
|
||||
Operate quietly. Progress is not reported to the standard
|
||||
error stream.
|
||||
error stream. This flag is also passed to the `rsync'
|
||||
command when given.
|
||||
|
||||
--verbose::
|
||||
-v::
|
||||
@ -189,14 +185,15 @@ objects from the source repository into a pack in the cloned repository.
|
||||
|
||||
--depth <depth>::
|
||||
Create a 'shallow' clone with a history truncated to the
|
||||
specified number of commits. Implies `--single-branch` unless
|
||||
`--no-single-branch` is given to fetch the histories near the
|
||||
tips of all branches.
|
||||
specified number of revisions.
|
||||
|
||||
--[no-]single-branch::
|
||||
Clone only the history leading to the tip of a single branch,
|
||||
either specified by the `--branch` option or the primary
|
||||
branch remote's `HEAD` points at.
|
||||
branch remote's `HEAD` points at. When creating a shallow
|
||||
clone with the `--depth` option, this is the default, unless
|
||||
`--no-single-branch` is given to fetch the histories near the
|
||||
tips of all branches.
|
||||
Further fetches into the resulting repository will only update the
|
||||
remote-tracking branch for the branch this option was used for the
|
||||
initial cloning. If the HEAD at the remote did not point at any
|
||||
|
@ -9,7 +9,7 @@ git-commit-tree - Create a new commit object
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git commit-tree' <tree> [(-p <parent>)...]
|
||||
'git commit-tree' <tree> [(-p <parent>)...] < changelog
|
||||
'git commit-tree' [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...]
|
||||
[(-F <file>)...] <tree>
|
||||
|
||||
@ -56,9 +56,7 @@ OPTIONS
|
||||
|
||||
-S[<keyid>]::
|
||||
--gpg-sign[=<keyid>]::
|
||||
GPG-sign commits. The `keyid` argument is optional and
|
||||
defaults to the committer identity; if specified, it must be
|
||||
stuck to the option without a space.
|
||||
GPG-sign commit.
|
||||
|
||||
--no-gpg-sign::
|
||||
Countermand `commit.gpgSign` configuration variable that is
|
||||
|
@ -13,7 +13,7 @@ SYNOPSIS
|
||||
[-F <file> | -m <msg>] [--reset-author] [--allow-empty]
|
||||
[--allow-empty-message] [--no-verify] [-e] [--author=<author>]
|
||||
[--date=<date>] [--cleanup=<mode>] [--[no-]status]
|
||||
[-i | -o] [-S[<keyid>]] [--] [<file>...]
|
||||
[-i | -o] [-S[<key-id>]] [--] [<file>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -154,11 +154,7 @@ OPTIONS
|
||||
-s::
|
||||
--signoff::
|
||||
Add Signed-off-by line by the committer at the end of the commit
|
||||
log message. The meaning of a signoff depends on the project,
|
||||
but it typically certifies that committer has
|
||||
the rights to submit this work under the same license and
|
||||
agrees to a Developer Certificate of Origin
|
||||
(see http://developercertificate.org/ for more information).
|
||||
log message.
|
||||
|
||||
-n::
|
||||
--no-verify::
|
||||
@ -318,9 +314,7 @@ changes to tracked files.
|
||||
|
||||
-S[<keyid>]::
|
||||
--gpg-sign[=<keyid>]::
|
||||
GPG-sign commits. The `keyid` argument is optional and
|
||||
defaults to the committer identity; if specified, it must be
|
||||
stuck to the option without a space.
|
||||
GPG-sign commit.
|
||||
|
||||
--no-gpg-sign::
|
||||
Countermand `commit.gpgSign` configuration variable that is
|
||||
|
@ -9,18 +9,18 @@ git-config - Get and set repository or global options
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git config' [<file-option>] [type] [--show-origin] [-z|--null] name [value [value_regex]]
|
||||
'git config' [<file-option>] [type] [-z|--null] name [value [value_regex]]
|
||||
'git config' [<file-option>] [type] --add name value
|
||||
'git config' [<file-option>] [type] --replace-all name value [value_regex]
|
||||
'git config' [<file-option>] [type] [--show-origin] [-z|--null] --get name [value_regex]
|
||||
'git config' [<file-option>] [type] [--show-origin] [-z|--null] --get-all name [value_regex]
|
||||
'git config' [<file-option>] [type] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]
|
||||
'git config' [<file-option>] [type] [-z|--null] --get name [value_regex]
|
||||
'git config' [<file-option>] [type] [-z|--null] --get-all name [value_regex]
|
||||
'git config' [<file-option>] [type] [-z|--null] --get-regexp name_regex [value_regex]
|
||||
'git config' [<file-option>] [type] [-z|--null] --get-urlmatch name URL
|
||||
'git config' [<file-option>] --unset name [value_regex]
|
||||
'git config' [<file-option>] --unset-all name [value_regex]
|
||||
'git config' [<file-option>] --rename-section old_name new_name
|
||||
'git config' [<file-option>] --remove-section name
|
||||
'git config' [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list
|
||||
'git config' [<file-option>] [-z|--null] -l | --list
|
||||
'git config' [<file-option>] --get-color name [default]
|
||||
'git config' [<file-option>] --get-colorbool name [stdout-is-tty]
|
||||
'git config' [<file-option>] -e | --edit
|
||||
@ -58,13 +58,13 @@ that location (you can say '--local' but that is the default).
|
||||
This command will fail with non-zero status upon error. Some exit
|
||||
codes are:
|
||||
|
||||
- The section or key is invalid (ret=1),
|
||||
- no section or name was provided (ret=2),
|
||||
- the config file is invalid (ret=3),
|
||||
- the config file cannot be written (ret=4),
|
||||
- you try to unset an option which does not exist (ret=5),
|
||||
- you try to unset/set an option for which multiple lines match (ret=5), or
|
||||
- you try to use an invalid regexp (ret=6).
|
||||
. The config file is invalid (ret=3),
|
||||
. can not write to the config file (ret=4),
|
||||
. no section or name was provided (ret=2),
|
||||
. the section or key is invalid (ret=1),
|
||||
. you try to unset an option which does not exist (ret=5),
|
||||
. you try to unset/set an option for which multiple lines match (ret=5), or
|
||||
. you try to use an invalid regexp (ret=6).
|
||||
|
||||
On success, the command returns the exit code 0.
|
||||
|
||||
@ -86,7 +86,8 @@ OPTIONS
|
||||
found and the last value if multiple key values were found.
|
||||
|
||||
--get-all::
|
||||
Like get, but returns all values for a multi-valued key.
|
||||
Like get, but does not fail if the number of values for the key
|
||||
is not exactly one.
|
||||
|
||||
--get-regexp::
|
||||
Like --get-all, but interprets the name as a regular expression and
|
||||
@ -101,7 +102,7 @@ OPTIONS
|
||||
given URL is returned (if no such key exists, the value for
|
||||
section.key is used as a fallback). When given just the
|
||||
section as name, do so for all the keys in the section and
|
||||
list them. Returns error code 1 if no value is found.
|
||||
list them.
|
||||
|
||||
--global::
|
||||
For writing options: write to global `~/.gitconfig` file
|
||||
@ -158,7 +159,7 @@ See also <<FILES>>.
|
||||
|
||||
-l::
|
||||
--list::
|
||||
List all variables set in config file, along with their values.
|
||||
List all variables set in config file.
|
||||
|
||||
--bool::
|
||||
'git config' will ensure that the output is "true" or "false"
|
||||
@ -189,16 +190,6 @@ See also <<FILES>>.
|
||||
output without getting confused e.g. by values that
|
||||
contain line breaks.
|
||||
|
||||
--name-only::
|
||||
Output only the names of config variables for `--list` or
|
||||
`--get-regexp`.
|
||||
|
||||
--show-origin::
|
||||
Augment the output of all queried config options with the
|
||||
origin type (file, standard input, blob, command line) and
|
||||
the actual origin (config file path, ref, or blob id if
|
||||
applicable).
|
||||
|
||||
--get-colorbool name [stdout-is-tty]::
|
||||
|
||||
Find the color setting for `name` (e.g. `color.diff`) and output
|
||||
@ -224,9 +215,7 @@ See also <<FILES>>.
|
||||
|
||||
--[no-]includes::
|
||||
Respect `include.*` directives in config files when looking up
|
||||
values. Defaults to `off` when a specific file is given (e.g.,
|
||||
using `--file`, `--global`, etc) and `on` when searching all
|
||||
config files.
|
||||
values. Defaults to on.
|
||||
|
||||
[[FILES]]
|
||||
FILES
|
||||
|
@ -36,7 +36,7 @@ OPTIONS
|
||||
cache daemon if one is not started). Defaults to
|
||||
`~/.git-credential-cache/socket`. If your home directory is on a
|
||||
network-mounted filesystem, you may need to change this to a
|
||||
local filesystem. You must specify an absolute path.
|
||||
local filesystem.
|
||||
|
||||
CONTROLLING THE DAEMON
|
||||
----------------------
|
||||
|
@ -9,7 +9,7 @@ git-describe - Describe a commit using the most recent tag reachable from it
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] [<commit-ish>...]
|
||||
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] <commit-ish>...
|
||||
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<mark>]
|
||||
|
||||
DESCRIPTION
|
||||
@ -27,7 +27,7 @@ see the -a and -s options to linkgit:git-tag[1].
|
||||
OPTIONS
|
||||
-------
|
||||
<commit-ish>...::
|
||||
Commit-ish object names to describe. Defaults to HEAD if omitted.
|
||||
Commit-ish object names to describe.
|
||||
|
||||
--dirty[=<mark>]::
|
||||
Describe the working tree.
|
||||
|
@ -54,7 +54,7 @@ Options for Frontends
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
--cat-blob-fd=<fd>::
|
||||
Write responses to `get-mark`, `cat-blob`, and `ls` queries to the
|
||||
Write responses to `cat-blob` and `ls` queries to the
|
||||
file descriptor <fd> instead of `stdout`. Allows `progress`
|
||||
output intended for the end-user to be separated from other
|
||||
output.
|
||||
@ -350,11 +350,6 @@ and control the current import process. More detailed discussion
|
||||
unless the `done` feature was requested using the
|
||||
`--done` command-line option or `feature done` command.
|
||||
|
||||
`get-mark`::
|
||||
Causes fast-import to print the SHA-1 corresponding to a mark
|
||||
to the file descriptor set with `--cat-blob-fd`, or `stdout` if
|
||||
unspecified.
|
||||
|
||||
`cat-blob`::
|
||||
Causes fast-import to print a blob in 'cat-file --batch'
|
||||
format to the file descriptor set with `--cat-blob-fd` or
|
||||
@ -935,25 +930,6 @@ Placing a `progress` command immediately after a `checkpoint` will
|
||||
inform the reader when the `checkpoint` has been completed and it
|
||||
can safely access the refs that fast-import updated.
|
||||
|
||||
`get-mark`
|
||||
~~~~~~~~~~
|
||||
Causes fast-import to print the SHA-1 corresponding to a mark to
|
||||
stdout or to the file descriptor previously arranged with the
|
||||
`--cat-blob-fd` argument. The command otherwise has no impact on the
|
||||
current import; its purpose is to retrieve SHA-1s that later commits
|
||||
might want to refer to in their commit messages.
|
||||
|
||||
....
|
||||
'get-mark' SP ':' <idnum> LF
|
||||
....
|
||||
|
||||
This command can be used anywhere in the stream that comments are
|
||||
accepted. In particular, the `get-mark` command can be used in the
|
||||
middle of a commit but not in the middle of a `data` command.
|
||||
|
||||
See ``Responses To Commands'' below for details about how to read
|
||||
this output safely.
|
||||
|
||||
`cat-blob`
|
||||
~~~~~~~~~~
|
||||
Causes fast-import to print a blob to a file descriptor previously
|
||||
@ -1024,8 +1000,7 @@ Output uses the same format as `git ls-tree <tree> -- <path>`:
|
||||
====
|
||||
|
||||
The <dataref> represents the blob, tree, or commit object at <path>
|
||||
and can be used in later 'get-mark', 'cat-blob', 'filemodify', or
|
||||
'ls' commands.
|
||||
and can be used in later 'cat-blob', 'filemodify', or 'ls' commands.
|
||||
|
||||
If there is no file or subtree at that path, 'git fast-import' will
|
||||
instead report
|
||||
@ -1067,11 +1042,9 @@ import-marks-if-exists::
|
||||
"feature import-marks-if-exists" like a corresponding
|
||||
command-line option silently skips a nonexistent file.
|
||||
|
||||
get-mark::
|
||||
cat-blob::
|
||||
ls::
|
||||
Require that the backend support the 'get-mark', 'cat-blob',
|
||||
or 'ls' command respectively.
|
||||
Require that the backend support the 'cat-blob' or 'ls' command.
|
||||
Versions of fast-import not supporting the specified command
|
||||
will exit with a message indicating so.
|
||||
This lets the import error out early with a clear message,
|
||||
@ -1151,11 +1124,11 @@ bidirectional pipes:
|
||||
git fast-import >fast-import-output
|
||||
====
|
||||
|
||||
A frontend set up this way can use `progress`, `get-mark`, `ls`, and
|
||||
`cat-blob` commands to read information from the import in progress.
|
||||
A frontend set up this way can use `progress`, `ls`, and `cat-blob`
|
||||
commands to read information from the import in progress.
|
||||
|
||||
To avoid deadlock, such frontends must completely consume any
|
||||
pending output from `progress`, `ls`, `get-mark`, and `cat-blob` before
|
||||
pending output from `progress`, `ls`, and `cat-blob` before
|
||||
performing writes to fast-import that might block.
|
||||
|
||||
Crash Reports
|
||||
|
@ -104,10 +104,6 @@ be in a separate packet, and the list must end with a flush packet.
|
||||
The remote heads to update from. This is relative to
|
||||
$GIT_DIR (e.g. "HEAD", "refs/heads/master"). When
|
||||
unspecified, update from all heads the remote side has.
|
||||
+
|
||||
If the remote has enabled the options `uploadpack.allowTipSHA1InWant` or
|
||||
`uploadpack.allowReachableSHA1InWant`, they may alternatively be 40-hex
|
||||
sha1s present on the remote.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
|
@ -71,7 +71,7 @@ This configuration is used in two ways:
|
||||
* When `git fetch` is run without specifying what branches
|
||||
and/or tags to fetch on the command line, e.g. `git fetch origin`
|
||||
or `git fetch`, `remote.<repository>.fetch` values are used as
|
||||
the refspecs--they specify which refs to fetch and which local refs
|
||||
the refspecs---they specify which refs to fetch and which local refs
|
||||
to update. The example above will fetch
|
||||
all branches that exist in the `origin` (i.e. any ref that matches
|
||||
the left-hand side of the value, `refs/heads/*`) and update the
|
||||
|
@ -205,7 +205,7 @@ to other tags will be rewritten to point to the underlying commit.
|
||||
Remap to ancestor
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
By using linkgit:git-rev-list[1] arguments, e.g., path limiters, you can limit the
|
||||
By using linkgit:rev-list[1] arguments, e.g., path limiters, you can limit the
|
||||
set of revisions which get rewritten. However, positive refs on the command
|
||||
line are distinguished: we don't let them be excluded by such limiters. For
|
||||
this purpose, they are instead rewritten to point at the nearest ancestor that
|
||||
|
@ -9,7 +9,7 @@ git-fmt-merge-msg - Produce a merge commit message
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git fmt-merge-msg' [-m <message>] [--log[=<n>] | --no-log]
|
||||
'git fmt-merge-msg' [-m <message>] [--log[=<n>] | --no-log] <$GIT_DIR/FETCH_HEAD
|
||||
'git fmt-merge-msg' [-m <message>] [--log[=<n>] | --no-log] -F <file>
|
||||
|
||||
DESCRIPTION
|
||||
@ -57,18 +57,6 @@ merge.summary::
|
||||
Synonym to `merge.log`; this is deprecated and will be removed in
|
||||
the future.
|
||||
|
||||
EXAMPLE
|
||||
-------
|
||||
|
||||
--
|
||||
$ git fetch origin master
|
||||
$ git fmt-merge-msg --log <$GIT_DIR/FETCH_HEAD
|
||||
--
|
||||
|
||||
Print a log message describing a merge of the "master" branch from
|
||||
the "origin" remote.
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:git-merge[1]
|
||||
|
@ -10,8 +10,6 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git for-each-ref' [--count=<count>] [--shell|--perl|--python|--tcl]
|
||||
[(--sort=<key>)...] [--format=<format>] [<pattern>...]
|
||||
[--points-at <object>] [(--merged | --no-merged) [<object>]]
|
||||
[--contains [<object>]]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -64,20 +62,6 @@ OPTIONS
|
||||
the specified host language. This is meant to produce
|
||||
a scriptlet that can directly be `eval`ed.
|
||||
|
||||
--points-at <object>::
|
||||
Only list refs which points at the given object.
|
||||
|
||||
--merged [<object>]::
|
||||
Only list refs whose tips are reachable from the
|
||||
specified commit (HEAD if not specified).
|
||||
|
||||
--no-merged [<object>]::
|
||||
Only list refs whose tips are not reachable from the
|
||||
specified commit (HEAD if not specified).
|
||||
|
||||
--contains [<object>]::
|
||||
Only list refs which contain the specified commit (HEAD if not
|
||||
specified).
|
||||
|
||||
FIELD NAMES
|
||||
-----------
|
||||
@ -92,11 +76,7 @@ refname::
|
||||
The name of the ref (the part after $GIT_DIR/).
|
||||
For a non-ambiguous short name of the ref append `:short`.
|
||||
The option core.warnAmbiguousRefs is used to select the strict
|
||||
abbreviation mode. If `strip=<N>` is appended, strips `<N>`
|
||||
slash-separated path components from the front of the refname
|
||||
(e.g., `%(refname:strip=2)` turns `refs/tags/foo` into `foo`.
|
||||
`<N>` must be a positive integer. If a displayed ref has fewer
|
||||
components than `<N>`, the command aborts with an error.
|
||||
abbreviation mode.
|
||||
|
||||
objecttype::
|
||||
The type of the object (`blob`, `tree`, `commit`, `tag`).
|
||||
@ -131,30 +111,10 @@ color::
|
||||
Change output color. Followed by `:<colorname>`, where names
|
||||
are described in `color.branch.*`.
|
||||
|
||||
align::
|
||||
Left-, middle-, or right-align the content between
|
||||
%(align:...) and %(end). The "align:" is followed by
|
||||
`width=<width>` and `position=<position>` in any order
|
||||
separated by a comma, where the `<position>` is either left,
|
||||
right or middle, default being left and `<width>` is the total
|
||||
length of the content with alignment. For brevity, the
|
||||
"width=" and/or "position=" prefixes may be omitted, and bare
|
||||
<width> and <position> used instead. For instance,
|
||||
`%(align:<width>,<position>)`. If the contents length is more
|
||||
than the width then no alignment is performed. If used with
|
||||
'--quote' everything in between %(align:...) and %(end) is
|
||||
quoted, but if nested then only the topmost level performs
|
||||
quoting.
|
||||
|
||||
In addition to the above, for commit and tag objects, the header
|
||||
field names (`tree`, `parent`, `object`, `type`, and `tag`) can
|
||||
be used to specify the value in the header field.
|
||||
|
||||
For commit and tag objects, the special `creatordate` and `creator`
|
||||
fields will correspond to the appropriate date or name-email-date tuple
|
||||
from the `committer` or `tagger` fields depending on the object type.
|
||||
These are intended for working on a mix of annotated and lightweight tags.
|
||||
|
||||
Fields that have name-email-date tuple as its value (`author`,
|
||||
`committer`, and `tagger`) can be suffixed with `name`, `email`,
|
||||
and `date` to extract the named component.
|
||||
@ -163,23 +123,20 @@ The complete message in a commit and tag object is `contents`.
|
||||
Its first line is `contents:subject`, where subject is the concatenation
|
||||
of all lines of the commit message up to the first blank line. The next
|
||||
line is 'contents:body', where body is all of the lines after the first
|
||||
blank line. The optional GPG signature is `contents:signature`. The
|
||||
first `N` lines of the message is obtained using `contents:lines=N`.
|
||||
blank line. Finally, the optional GPG signature is `contents:signature`.
|
||||
|
||||
For sorting purposes, fields with numeric values sort in numeric order
|
||||
(`objectsize`, `authordate`, `committerdate`, `creatordate`, `taggerdate`).
|
||||
For sorting purposes, fields with numeric values sort in numeric
|
||||
order (`objectsize`, `authordate`, `committerdate`, `taggerdate`).
|
||||
All other fields are used to sort in their byte-value order.
|
||||
|
||||
There is also an option to sort by versions, this can be done by using
|
||||
the fieldname `version:refname` or its alias `v:refname`.
|
||||
|
||||
In any case, a field name that refers to a field inapplicable to
|
||||
the object referred by the ref does not cause an error. It
|
||||
returns an empty string instead.
|
||||
|
||||
As a special case for the date-type fields, you may specify a format for
|
||||
the date by adding `:` followed by date format name (see the
|
||||
values the `--date` option to linkgit:git-rev-list[1] takes).
|
||||
the date by adding one of `:default`, `:relative`, `:short`, `:local`,
|
||||
`:iso8601`, `:rfc2822` or `:raw` to the end of the fieldname; e.g.
|
||||
`%(taggerdate:relative)`.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
|
@ -57,11 +57,7 @@ The names of the output files are printed to standard
|
||||
output, unless the `--stdout` option is specified.
|
||||
|
||||
If `-o` is specified, output files are created in <dir>. Otherwise
|
||||
they are created in the current working directory. The default path
|
||||
can be set with the 'format.outputDirectory' configuration option.
|
||||
The `-o` option takes precedence over `format.outputDirectory`.
|
||||
To store patches in the current working directory even when
|
||||
`format.outputDirectory` points elsewhere, use `-o .`.
|
||||
they are created in the current working directory.
|
||||
|
||||
By default, the subject of a single patch is "[PATCH] " followed by
|
||||
the concatenation of lines from the commit message up to the first blank
|
||||
@ -113,7 +109,6 @@ include::diff-options.txt[]
|
||||
--signoff::
|
||||
Add `Signed-off-by:` line to the commit message, using
|
||||
the committer identity of yourself.
|
||||
See the signoff option in linkgit:git-commit[1] for more information.
|
||||
|
||||
--stdout::
|
||||
Print all commits to the standard output in mbox format,
|
||||
@ -218,7 +213,7 @@ feeding the result to `git send-email`.
|
||||
|
||||
--[no-]cover-letter::
|
||||
In addition to the patches, generate a cover letter file
|
||||
containing the branch description, shortlog and the overall diffstat. You can
|
||||
containing the shortlog and the overall diffstat. You can
|
||||
fill in a description in the file before sending it out.
|
||||
|
||||
--notes[=<ref>]::
|
||||
@ -261,10 +256,6 @@ you can use `--suffix=-patch` to get `0001-description-of-my-change-patch`.
|
||||
using this option cannot be applied properly, but they are
|
||||
still useful for code review.
|
||||
|
||||
--zero-commit::
|
||||
Output an all-zero hash in each patch's From header instead
|
||||
of the hash of the commit.
|
||||
|
||||
--root::
|
||||
Treat the revision argument as a <revision range>, even if it
|
||||
is just a single commit (that would normally be treated as a
|
||||
|
@ -11,7 +11,7 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git fsck' [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
|
||||
[--[no-]full] [--strict] [--verbose] [--lost-found]
|
||||
[--[no-]dangling] [--[no-]progress] [--connectivity-only] [<object>*]
|
||||
[--[no-]dangling] [--[no-]progress] [<object>*]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -60,11 +60,6 @@ index file, all SHA-1 references in `refs` namespace, and all reflogs
|
||||
object pools. This is now default; you can turn it off
|
||||
with --no-full.
|
||||
|
||||
--connectivity-only::
|
||||
Check only the connectivity of tags, commits and tree objects. By
|
||||
avoiding to unpack blobs, this speeds up the operation, at the
|
||||
expense of missing corrupt objects or other problematic issues.
|
||||
|
||||
--strict::
|
||||
Enable more strict checking, namely to catch a file mode
|
||||
recorded with g+w bit set, which was created by older
|
||||
|
@ -63,11 +63,8 @@ automatic consolidation of packs.
|
||||
--prune=<date>::
|
||||
Prune loose objects older than date (default is 2 weeks ago,
|
||||
overridable by the config variable `gc.pruneExpire`).
|
||||
--prune=all prunes loose objects regardless of their age (do
|
||||
not use --prune=all unless you know exactly what you are doing.
|
||||
Unless the repository is quiescent, you will lose newly created
|
||||
objects that haven't been anchored with the refs and end up
|
||||
corrupting your repository). --prune is on by default.
|
||||
--prune=all prunes loose objects regardless of their age.
|
||||
--prune is on by default.
|
||||
|
||||
--no-prune::
|
||||
Do not prune any loose objects.
|
||||
|
@ -9,19 +9,17 @@ git-get-tar-commit-id - Extract commit ID from an archive created using git-arch
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git get-tar-commit-id'
|
||||
'git get-tar-commit-id' < <tarfile>
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
Read a tar archive created by 'git archive' from the standard input
|
||||
and extract the commit ID stored in it. It reads only the first
|
||||
1024 bytes of input, thus its runtime is not influenced by the size
|
||||
of the tar archive very much.
|
||||
Acts as a filter, extracting the commit ID stored in archives created by
|
||||
'git archive'. It reads only the first 1024 bytes of input, thus its
|
||||
runtime is not influenced by the size of <tarfile> very much.
|
||||
|
||||
If no commit ID is found, 'git get-tar-commit-id' quietly exists with a
|
||||
return code of 1. This can happen if the archive had not been created
|
||||
return code of 1. This can happen if <tarfile> had not been created
|
||||
using 'git archive' or if the first parameter of 'git archive' had been
|
||||
a tree ID instead of a commit ID or tag.
|
||||
|
||||
|
@ -23,7 +23,6 @@ SYNOPSIS
|
||||
[--break] [--heading] [-p | --show-function]
|
||||
[-A <post-context>] [-B <pre-context>] [-C <context>]
|
||||
[-W | --function-context]
|
||||
[--threads <num>]
|
||||
[-f <file>] [-e] <pattern>
|
||||
[--and|--or|--not|(|)|-e <pattern>...]
|
||||
[ [--[no-]exclude-standard] [--cached | --no-index | --untracked] | <tree>...]
|
||||
@ -54,17 +53,9 @@ grep.extendedRegexp::
|
||||
option is ignored when the 'grep.patternType' option is set to a value
|
||||
other than 'default'.
|
||||
|
||||
grep.threads::
|
||||
Number of grep worker threads to use. If unset (or set to 0),
|
||||
8 threads are used by default (for now).
|
||||
|
||||
grep.fullName::
|
||||
If set to true, enable '--full-name' option by default.
|
||||
|
||||
grep.fallbackToNoIndex::
|
||||
If set to true, fall back to git grep --no-index if git grep
|
||||
is executed outside of a git repository. Defaults to false.
|
||||
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
@ -169,15 +160,12 @@ OPTIONS
|
||||
For better compatibility with 'git diff', `--name-only` is a
|
||||
synonym for `--files-with-matches`.
|
||||
|
||||
-O[<pager>]::
|
||||
--open-files-in-pager[=<pager>]::
|
||||
-O [<pager>]::
|
||||
--open-files-in-pager [<pager>]::
|
||||
Open the matching files in the pager (not the output of 'grep').
|
||||
If the pager happens to be "less" or "vi", and the user
|
||||
specified only one pattern, the first file is positioned at
|
||||
the first match automatically. The `pager` argument is
|
||||
optional; if specified, it must be stuck to the option
|
||||
without a space. If `pager` is unspecified, the default pager
|
||||
will be used (see `core.pager` in linkgit:git-config[1]).
|
||||
the first match automatically.
|
||||
|
||||
-z::
|
||||
--null::
|
||||
@ -236,10 +224,6 @@ OPTIONS
|
||||
effectively showing the whole function in which the match was
|
||||
found.
|
||||
|
||||
--threads <num>::
|
||||
Number of grep worker threads to use.
|
||||
See `grep.threads` in 'CONFIGURATION' for more information.
|
||||
|
||||
-f <file>::
|
||||
Read patterns from <file>, one per line.
|
||||
|
||||
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git hash-object' [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin [--literally]] [--] <file>...
|
||||
'git hash-object' [-t <type>] [-w] --stdin-paths [--no-filters]
|
||||
'git hash-object' [-t <type>] [-w] --stdin-paths [--no-filters] < <list-of-paths>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -35,8 +35,7 @@ OPTIONS
|
||||
Read the object from standard input instead of from a file.
|
||||
|
||||
--stdin-paths::
|
||||
Read file names from the standard input, one per line, instead
|
||||
of from the command-line.
|
||||
Read file names from stdin instead of from the command-line.
|
||||
|
||||
--path::
|
||||
Hash object as it were located at the given path. The location of
|
||||
|
@ -8,7 +8,7 @@ git-interpret-trailers - help add structured information into commit messages
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git interpret-trailers' [--in-place] [--trim-empty] [(--trailer <token>[(=|:)<value>])...] [<file>...]
|
||||
'git interpret-trailers' [--trim-empty] [(--trailer <token>[(=|:)<value>])...] [<file>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -64,13 +64,10 @@ folding rules, the encoding rules and probably many other rules.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
--in-place::
|
||||
Edit the files in place.
|
||||
|
||||
--trim-empty::
|
||||
If the <value> part of any trailer contains only whitespace,
|
||||
the whole trailer will be removed from the resulting message.
|
||||
This applies to existing trailers as well as new trailers.
|
||||
This apply to existing trailers as well as new trailers.
|
||||
|
||||
--trailer <token>[(=|:)<value>]::
|
||||
Specify a (<token>, <value>) pair that should be applied as a
|
||||
@ -219,25 +216,6 @@ Signed-off-by: Alice <alice@example.com>
|
||||
Signed-off-by: Bob <bob@example.com>
|
||||
------------
|
||||
|
||||
* Use the '--in-place' option to edit a message file in place:
|
||||
+
|
||||
------------
|
||||
$ cat msg.txt
|
||||
subject
|
||||
|
||||
message
|
||||
|
||||
Signed-off-by: Bob <bob@example.com>
|
||||
$ git interpret-trailers --trailer 'Acked-by: Alice <alice@example.com>' --in-place msg.txt
|
||||
$ cat msg.txt
|
||||
subject
|
||||
|
||||
message
|
||||
|
||||
Signed-off-by: Bob <bob@example.com>
|
||||
Acked-by: Alice <alice@example.com>
|
||||
------------
|
||||
|
||||
* Extract the last commit as a patch, and add a 'Cc' and a
|
||||
'Reviewed-by' trailer to it:
|
||||
+
|
||||
|
@ -184,12 +184,6 @@ log.date::
|
||||
`--date` option.) Defaults to "default", which means to write
|
||||
dates like `Sat May 8 19:35:34 2010 -0500`.
|
||||
|
||||
log.follow::
|
||||
If `true`, `git log` will act as if the `--follow` option was used when
|
||||
a single <path> is given. This has the same limitations as `--follow`,
|
||||
i.e. it cannot be used to follow multiple files and does not work well
|
||||
on non-linear history.
|
||||
|
||||
log.showRoot::
|
||||
If `false`, `git log` and related commands will not treat the
|
||||
initial commit as a big creation event. Any root commits in
|
||||
|
@ -12,7 +12,6 @@ SYNOPSIS
|
||||
'git ls-files' [-z] [-t] [-v]
|
||||
(--[cached|deleted|others|ignored|stage|unmerged|killed|modified])*
|
||||
(-[c|d|o|i|s|u|k|m])*
|
||||
[--eol]
|
||||
[-x <pattern>|--exclude=<pattern>]
|
||||
[-X <file>|--exclude-from=<file>]
|
||||
[--exclude-per-directory=<file>]
|
||||
@ -148,24 +147,6 @@ a space) at the start of each line:
|
||||
possible for manual inspection; the exact format may change at
|
||||
any time.
|
||||
|
||||
--eol::
|
||||
Show <eolinfo> and <eolattr> of files.
|
||||
<eolinfo> is the file content identification used by Git when
|
||||
the "text" attribute is "auto" (or not set and core.autocrlf is not false).
|
||||
<eolinfo> is either "-text", "none", "lf", "crlf", "mixed" or "".
|
||||
+
|
||||
"" means the file is not a regular file, it is not in the index or
|
||||
not accessible in the working tree.
|
||||
+
|
||||
<eolattr> is the attribute that is used when checking out or committing,
|
||||
it is either "", "-text", "text", "text=auto", "text eol=lf", "text eol=crlf".
|
||||
Note: Currently Git does not support "text=auto eol=lf" or "text=auto eol=crlf",
|
||||
that may change in the future.
|
||||
+
|
||||
Both the <eolinfo> in the index ("i/<eolinfo>")
|
||||
and in the working tree ("w/<eolinfo>") are shown for regular files,
|
||||
followed by the ("attr/<eolattr>").
|
||||
|
||||
\--::
|
||||
Do not interpret any more arguments as options.
|
||||
|
||||
@ -180,9 +161,6 @@ which case it outputs:
|
||||
|
||||
[<tag> ]<mode> <object> <stage> <file>
|
||||
|
||||
'git ls-files --eol' will show
|
||||
i/<eolinfo><SPACES>w/<eolinfo><SPACES>attr/<eolattr><SPACE*><TAB><file>
|
||||
|
||||
'git ls-files --unmerged' and 'git ls-files --stage' can be used to examine
|
||||
detailed information on unmerged paths.
|
||||
|
||||
|
@ -9,9 +9,8 @@ git-ls-remote - List references in a remote repository
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git ls-remote' [--heads] [--tags] [--refs] [--upload-pack=<exec>]
|
||||
[-q | --quiet] [--exit-code] [--get-url]
|
||||
[--symref] [<repository> [<refs>...]]
|
||||
'git ls-remote' [--heads] [--tags] [-u <exec> | --upload-pack <exec>]
|
||||
[--exit-code] <repository> [<refs>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -30,13 +29,7 @@ OPTIONS
|
||||
both, references stored in refs/heads and refs/tags are
|
||||
displayed.
|
||||
|
||||
--refs::
|
||||
Do not show peeled tags or pseudorefs like HEAD in the output.
|
||||
|
||||
-q::
|
||||
--quiet::
|
||||
Do not print remote URL to stderr.
|
||||
|
||||
-u <exec>::
|
||||
--upload-pack=<exec>::
|
||||
Specify the full path of 'git-upload-pack' on the remote
|
||||
host. This allows listing references from repositories accessed via
|
||||
@ -54,12 +47,6 @@ OPTIONS
|
||||
"url.<base>.insteadOf" config setting (See linkgit:git-config[1]) and
|
||||
exit without talking to the remote.
|
||||
|
||||
--symref::
|
||||
In addition to the object pointed by it, show the underlying
|
||||
ref pointed by it when showing a symbolic ref. Currently,
|
||||
upload-pack only shows the symref HEAD, so it will be the only
|
||||
one shown by ls-remote.
|
||||
|
||||
<repository>::
|
||||
The "remote" repository to query. This parameter can be
|
||||
either a URL or the name of a remote (see the GIT URLS and
|
||||
|
@ -85,7 +85,7 @@ with comments and suggestions on the message you are responding to, and to
|
||||
conclude it with a patch submission, separating the discussion and the
|
||||
beginning of the proposed commit log message with a scissors line.
|
||||
+
|
||||
This can be enabled by default with the configuration option mailinfo.scissors.
|
||||
This can enabled by default with the configuration option mailinfo.scissors.
|
||||
|
||||
--no-scissors::
|
||||
Ignore scissors lines. Useful for overriding mailinfo.scissors settings.
|
||||
|
@ -41,8 +41,7 @@ lines from `<other-file>`, or lines from both respectively. The length of the
|
||||
conflict markers can be given with the `--marker-size` option.
|
||||
|
||||
The exit value of this program is negative on error, and the number of
|
||||
conflicts otherwise (truncated to 127 if there are more than that many
|
||||
conflicts). If the merge was clean, the exit value is 0.
|
||||
conflicts otherwise. If the merge was clean, the exit value is 0.
|
||||
|
||||
'git merge-file' is designed to be a minimal clone of RCS 'merge'; that is, it
|
||||
implements all of RCS 'merge''s functionality which is needed by
|
||||
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git merge' [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
|
||||
[-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
|
||||
[-s <strategy>] [-X <strategy-option>] [-S[<key-id>]]
|
||||
[--[no-]rerere-autoupdate] [-m <msg>] [<commit>...]
|
||||
'git merge' <msg> HEAD <commit>...
|
||||
'git merge' --abort
|
||||
@ -67,9 +67,7 @@ include::merge-options.txt[]
|
||||
|
||||
-S[<keyid>]::
|
||||
--gpg-sign[=<keyid>]::
|
||||
GPG-sign the resulting merge commit. The `keyid` argument is
|
||||
optional and defaults to the committer identity; if specified,
|
||||
it must be stuck to the option without a space.
|
||||
GPG-sign the resulting merge commit.
|
||||
|
||||
-m <msg>::
|
||||
Set the commit message to be used for the merge commit (in
|
||||
@ -80,7 +78,7 @@ will be appended to the specified message.
|
||||
+
|
||||
The 'git fmt-merge-msg' command can be
|
||||
used to give a good default for automated 'git merge'
|
||||
invocations. The automated message can include the branch description.
|
||||
invocations.
|
||||
|
||||
--[no-]rerere-autoupdate::
|
||||
Allow the rerere mechanism to update the index with the
|
||||
|
@ -9,7 +9,7 @@ git-mktag - Creates a tag object
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git mktag'
|
||||
'git mktag' < signature_file
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -20,8 +20,7 @@ The output is the new tag's <object> identifier.
|
||||
|
||||
Tag Format
|
||||
----------
|
||||
A tag signature file, to be fed to this command's standard input,
|
||||
has a very simple fixed format: four lines of
|
||||
A tag signature file has a very simple fixed format: four lines of
|
||||
|
||||
object <sha1>
|
||||
type <typename>
|
||||
|
@ -101,7 +101,7 @@ merge::
|
||||
any) into the current notes ref (called "local").
|
||||
+
|
||||
If conflicts arise and a strategy for automatically resolving
|
||||
conflicting notes (see the "NOTES MERGE STRATEGIES" section) is not given,
|
||||
conflicting notes (see the -s/--strategy option) is not given,
|
||||
the "manual" resolver is used. This resolver checks out the
|
||||
conflicting notes in a special worktree (`.git/NOTES_MERGE_WORKTREE`),
|
||||
and instructs the user to manually resolve the conflicts there.
|
||||
@ -162,9 +162,7 @@ OPTIONS
|
||||
--ref <ref>::
|
||||
Manipulate the notes tree in <ref>. This overrides
|
||||
'GIT_NOTES_REF' and the "core.notesRef" configuration. The ref
|
||||
specifies the full refname when it begins with `refs/notes/`; when it
|
||||
begins with `notes/`, `refs/` and otherwise `refs/notes/` is prefixed
|
||||
to form a full name of the ref.
|
||||
is taken to be in `refs/notes/` if it is not qualified.
|
||||
|
||||
--ignore-missing::
|
||||
Do not consider it an error to request removing notes from an
|
||||
@ -185,7 +183,6 @@ OPTIONS
|
||||
When merging notes, resolve notes conflicts using the given
|
||||
strategy. The following strategies are recognized: "manual"
|
||||
(default), "ours", "theirs", "union" and "cat_sort_uniq".
|
||||
This option overrides the "notes.mergeStrategy" configuration setting.
|
||||
See the "NOTES MERGE STRATEGIES" section below for more
|
||||
information on each notes merge strategy.
|
||||
|
||||
@ -250,9 +247,6 @@ When done, the user can either finalize the merge with
|
||||
'git notes merge --commit', or abort the merge with
|
||||
'git notes merge --abort'.
|
||||
|
||||
Users may select an automated merge strategy from among the following using
|
||||
either -s/--strategy option or configuring notes.mergeStrategy accordingly:
|
||||
|
||||
"ours" automatically resolves conflicting notes in favor of the local
|
||||
version (i.e. the current notes ref).
|
||||
|
||||
@ -316,20 +310,6 @@ core.notesRef::
|
||||
This setting can be overridden through the environment and
|
||||
command line.
|
||||
|
||||
notes.mergeStrategy::
|
||||
Which merge strategy to choose by default when resolving notes
|
||||
conflicts. Must be one of `manual`, `ours`, `theirs`, `union`, or
|
||||
`cat_sort_uniq`. Defaults to `manual`. See "NOTES MERGE STRATEGIES"
|
||||
section above for more information on each strategy.
|
||||
+
|
||||
This setting can be overridden by passing the `--strategy` option.
|
||||
|
||||
notes.<name>.mergeStrategy::
|
||||
Which merge strategy to choose when doing a notes merge into
|
||||
refs/notes/<name>. This overrides the more general
|
||||
"notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section above
|
||||
for more information on each available strategy.
|
||||
|
||||
notes.displayRef::
|
||||
Which ref (or refs, if a glob or specified more than once), in
|
||||
addition to the default set by `core.notesRef` or
|
||||
@ -351,8 +331,7 @@ environment variable.
|
||||
notes.rewriteMode::
|
||||
When copying notes during a rewrite, what to do if the target
|
||||
commit already has a note. Must be one of `overwrite`,
|
||||
`concatenate`, `cat_sort_uniq`, or `ignore`. Defaults to
|
||||
`concatenate`.
|
||||
`concatenate`, and `ignore`. Defaults to `concatenate`.
|
||||
+
|
||||
This setting can be overridden with the `GIT_NOTES_REWRITE_MODE`
|
||||
environment variable.
|
||||
@ -389,7 +368,7 @@ does not match any refs is silently ignored.
|
||||
'GIT_NOTES_REWRITE_MODE'::
|
||||
When copying notes during a rewrite, what to do if the target
|
||||
commit already has a note.
|
||||
Must be one of `overwrite`, `concatenate`, `cat_sort_uniq`, or `ignore`.
|
||||
Must be one of `overwrite`, `concatenate`, and `ignore`.
|
||||
This overrides the `core.rewriteMode` setting.
|
||||
|
||||
'GIT_NOTES_REWRITE_REF'::
|
||||
@ -402,4 +381,4 @@ on the `notes.rewrite.<command>` and `notes.rewriteRef` settings.
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Part of the linkgit:git[7] suite
|
||||
|
@ -510,47 +510,6 @@ git-p4.useClientSpec::
|
||||
option '--use-client-spec'. See the "CLIENT SPEC" section above.
|
||||
This variable is a boolean, not the name of a p4 client.
|
||||
|
||||
git-p4.pathEncoding::
|
||||
Perforce keeps the encoding of a path as given by the originating OS.
|
||||
Git expects paths encoded as UTF-8. Use this config to tell git-p4
|
||||
what encoding Perforce had used for the paths. This encoding is used
|
||||
to transcode the paths to UTF-8. As an example, Perforce on Windows
|
||||
often uses "cp1252" to encode path names.
|
||||
|
||||
git-p4.largeFileSystem::
|
||||
Specify the system that is used for large (binary) files. Please note
|
||||
that large file systems do not support the 'git p4 submit' command.
|
||||
Only Git LFS is implemented right now (see https://git-lfs.github.com/
|
||||
for more information). Download and install the Git LFS command line
|
||||
extension to use this option and configure it like this:
|
||||
+
|
||||
-------------
|
||||
git config git-p4.largeFileSystem GitLFS
|
||||
-------------
|
||||
|
||||
git-p4.largeFileExtensions::
|
||||
All files matching a file extension in the list will be processed
|
||||
by the large file system. Do not prefix the extensions with '.'.
|
||||
|
||||
git-p4.largeFileThreshold::
|
||||
All files with an uncompressed size exceeding the threshold will be
|
||||
processed by the large file system. By default the threshold is
|
||||
defined in bytes. Add the suffix k, m, or g to change the unit.
|
||||
|
||||
git-p4.largeFileCompressedThreshold::
|
||||
All files with a compressed size exceeding the threshold will be
|
||||
processed by the large file system. This option might slow down
|
||||
your clone/sync process. By default the threshold is defined in
|
||||
bytes. Add the suffix k, m, or g to change the unit.
|
||||
|
||||
git-p4.largeFilePush::
|
||||
Boolean variable which defines if large files are automatically
|
||||
pushed to a server.
|
||||
|
||||
git-p4.keepEmptyCommits::
|
||||
A changelist that contains only excluded files will be imported
|
||||
as an empty commit if this boolean option is set to true.
|
||||
|
||||
Submit variables
|
||||
~~~~~~~~~~~~~~~~
|
||||
git-p4.detectRenames::
|
||||
|
@ -110,8 +110,7 @@ base-name::
|
||||
--max-pack-size=<n>::
|
||||
Maximum size of each output pack file. The size can be suffixed with
|
||||
"k", "m", or "g". The minimum size allowed is limited to 1 MiB.
|
||||
If specified, multiple packfiles may be created, which also
|
||||
prevents the creation of a bitmap index.
|
||||
If specified, multiple packfiles may be created.
|
||||
The default is unlimited, unless the config variable
|
||||
`pack.packSizeLimit` is set.
|
||||
|
||||
|
@ -8,12 +8,10 @@ git-patch-id - Compute unique ID for a patch
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git patch-id' [--stable | --unstable]
|
||||
'git patch-id' [--stable | --unstable] < <patch>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Read a patch from the standard input and compute the patch ID for it.
|
||||
|
||||
A "patch ID" is nothing but a sum of SHA-1 of the file diffs associated with a
|
||||
patch, with whitespace and line numbers ignored. As such, it's "reasonably
|
||||
stable", but at the same time also reasonably unique, i.e., two patches that
|
||||
|
@ -101,7 +101,7 @@ Options related to merging
|
||||
include::merge-options.txt[]
|
||||
|
||||
-r::
|
||||
--rebase[=false|true|preserve|interactive]::
|
||||
--rebase[=false|true|preserve]::
|
||||
When true, rebase the current branch on top of the upstream
|
||||
branch after fetching. If there is a remote-tracking branch
|
||||
corresponding to the upstream branch and the upstream branch
|
||||
@ -113,8 +113,6 @@ to `git rebase` so that locally created merge commits will not be flattened.
|
||||
+
|
||||
When false, merge the current branch into the upstream branch.
|
||||
+
|
||||
When `interactive`, enable the interactive mode of rebase.
|
||||
+
|
||||
See `pull.rebase`, `branch.<name>.rebase` and `branch.autoSetupRebase` in
|
||||
linkgit:git-config[1] if you want to make `git pull` always use
|
||||
`--rebase` instead of merging.
|
||||
|
@ -10,9 +10,8 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git push' [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
|
||||
[--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-v | --verbose]
|
||||
[-u | --set-upstream]
|
||||
[--[no-]signed|--sign=(true|false|if-asked)]
|
||||
[--repo=<repository>] [-f | --force] [--prune] [-v | --verbose]
|
||||
[-u | --set-upstream] [--signed]
|
||||
[--force-with-lease[=<refname>[:<expect>]]]
|
||||
[--no-verify] [<repository> [<refspec>...]]
|
||||
|
||||
@ -37,13 +36,6 @@ the default `<refspec>` by consulting `remote.*.push` configuration,
|
||||
and if it is not found, honors `push.default` configuration to decide
|
||||
what to push (See linkgit:git-config[1] for the meaning of `push.default`).
|
||||
|
||||
When neither the command-line nor the configuration specify what to
|
||||
push, the default behavior is used, which corresponds to the `simple`
|
||||
value for `push.default`: the current branch is pushed to the
|
||||
corresponding upstream branch, but as a safety measure, the push is
|
||||
aborted if the upstream branch does not have the same name as the
|
||||
local one.
|
||||
|
||||
|
||||
OPTIONS[[OPTIONS]]
|
||||
------------------
|
||||
@ -69,7 +61,7 @@ be named.
|
||||
If `git push [<repository>]` without any `<refspec>` argument is set to
|
||||
update some ref at the destination with `<src>` with
|
||||
`remote.<repository>.push` configuration variable, `:<dst>` part can
|
||||
be omitted--such a push will update a ref that `<src>` normally updates
|
||||
be omitted---such a push will update a ref that `<src>` normally updates
|
||||
without any `<refspec>` on the command line. Otherwise, missing
|
||||
`:<dst>` means to update the same ref as the `<src>`.
|
||||
+
|
||||
@ -140,16 +132,12 @@ already exists on the remote side.
|
||||
with configuration variable 'push.followTags'. For more
|
||||
information, see 'push.followTags' in linkgit:git-config[1].
|
||||
|
||||
--[no-]signed::
|
||||
--sign=(true|false|if-asked)::
|
||||
|
||||
--signed::
|
||||
GPG-sign the push request to update refs on the receiving
|
||||
side, to allow it to be checked by the hooks and/or be
|
||||
logged. If `false` or `--no-signed`, no signing will be
|
||||
attempted. If `true` or `--signed`, the push will fail if the
|
||||
server does not support signed pushes. If set to `if-asked`,
|
||||
sign if and only if the server supports signed pushes. The push
|
||||
will also fail if the actual call to `gpg --sign` fails. See
|
||||
linkgit:git-receive-pack[1] for the details on the receiving end.
|
||||
logged. See linkgit:git-receive-pack[1] for the details
|
||||
on the receiving end.
|
||||
|
||||
--[no-]atomic::
|
||||
Use an atomic transaction on the remote side if available.
|
||||
@ -264,33 +252,22 @@ origin +master` to force a push to the `master` branch). See the
|
||||
is specified. This flag forces progress status even if the
|
||||
standard error stream is not directed to a terminal.
|
||||
|
||||
--no-recurse-submodules::
|
||||
--recurse-submodules=check|on-demand|no::
|
||||
May be used to make sure all submodule commits used by the
|
||||
revisions to be pushed are available on a remote-tracking branch.
|
||||
If 'check' is used Git will verify that all submodule commits that
|
||||
changed in the revisions to be pushed are available on at least one
|
||||
remote of the submodule. If any commits are missing the push will
|
||||
be aborted and exit with non-zero status. If 'on-demand' is used
|
||||
all submodules that changed in the revisions to be pushed will be
|
||||
pushed. If on-demand was not able to push all necessary revisions
|
||||
it will also be aborted and exit with non-zero status. A value of
|
||||
'no' or using '--no-recurse-submodules' can be used to override the
|
||||
push.recurseSubmodules configuration variable when no submodule
|
||||
recursion is required.
|
||||
--recurse-submodules=check|on-demand::
|
||||
Make sure all submodule commits used by the revisions to be
|
||||
pushed are available on a remote-tracking branch. If 'check' is
|
||||
used Git will verify that all submodule commits that changed in
|
||||
the revisions to be pushed are available on at least one remote
|
||||
of the submodule. If any commits are missing the push will be
|
||||
aborted and exit with non-zero status. If 'on-demand' is used
|
||||
all submodules that changed in the revisions to be pushed will
|
||||
be pushed. If on-demand was not able to push all necessary
|
||||
revisions it will also be aborted and exit with non-zero status.
|
||||
|
||||
--[no-]verify::
|
||||
Toggle the pre-push hook (see linkgit:githooks[5]). The
|
||||
default is --verify, giving the hook a chance to prevent the
|
||||
push. With --no-verify, the hook is bypassed completely.
|
||||
|
||||
-4::
|
||||
--ipv4::
|
||||
Use IPv4 addresses only, ignoring IPv6 addresses.
|
||||
|
||||
-6::
|
||||
--ipv6::
|
||||
Use IPv6 addresses only, ignoring IPv4 addresses.
|
||||
|
||||
include::urls-remotes.txt[]
|
||||
|
||||
|
@ -10,7 +10,6 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git quiltimport' [--dry-run | -n] [--author <author>] [--patches <dir>]
|
||||
[--series <file>]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
@ -43,19 +42,13 @@ OPTIONS
|
||||
information can be found in the patch description.
|
||||
|
||||
--patches <dir>::
|
||||
The directory to find the quilt patches.
|
||||
The directory to find the quilt patches and the
|
||||
quilt series file.
|
||||
+
|
||||
The default for the patch directory is patches
|
||||
or the value of the $QUILT_PATCHES environment
|
||||
variable.
|
||||
|
||||
--series <file>::
|
||||
The quilt series file.
|
||||
+
|
||||
The default for the series file is <patches>/series
|
||||
or the value of the $QUILT_SERIES environment
|
||||
variable.
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
|
@ -3,7 +3,7 @@ git-rebase(1)
|
||||
|
||||
NAME
|
||||
----
|
||||
git-rebase - Reapply commits on top of another base tip
|
||||
git-rebase - Forward-port local commits to the updated upstream head
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
@ -213,15 +213,6 @@ rebase.autoSquash::
|
||||
rebase.autoStash::
|
||||
If set to true enable '--autostash' option by default.
|
||||
|
||||
rebase.missingCommitsCheck::
|
||||
If set to "warn", print warnings about removed commits in
|
||||
interactive mode. If set to "error", print the warnings and
|
||||
stop the rebase. If set to "ignore", no checking is
|
||||
done. "ignore" by default.
|
||||
|
||||
rebase.instructionFormat::
|
||||
Custom commit list format to use during an '--interactive' rebase.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
--onto <newbase>::
|
||||
@ -294,9 +285,7 @@ which makes little sense.
|
||||
|
||||
-S[<keyid>]::
|
||||
--gpg-sign[=<keyid>]::
|
||||
GPG-sign commits. The `keyid` argument is optional and
|
||||
defaults to the committer identity; if specified, it must be
|
||||
stuck to the option without a space.
|
||||
GPG-sign commits.
|
||||
|
||||
-q::
|
||||
--quiet::
|
||||
@ -370,10 +359,6 @@ default is `--no-fork-point`, otherwise the default is `--fork-point`.
|
||||
Make a list of the commits which are about to be rebased. Let the
|
||||
user edit that list before rebasing. This mode can also be used to
|
||||
split commits (see SPLITTING COMMITS below).
|
||||
+
|
||||
The commit list format can be changed by setting the configuration option
|
||||
rebase.instructionFormat. A customized instruction format will automatically
|
||||
have the long commit hash prepended to the format.
|
||||
|
||||
-p::
|
||||
--preserve-merges::
|
||||
@ -434,8 +419,7 @@ If the '--autosquash' option is enabled by default using the
|
||||
configuration variable `rebase.autoSquash`, this option can be
|
||||
used to override and disable this setting.
|
||||
|
||||
--autostash::
|
||||
--no-autostash::
|
||||
--[no-]autostash::
|
||||
Automatically create a temporary stash before the operation
|
||||
begins, and apply it after the operation ends. This means
|
||||
that you can run rebase on a dirty worktree. However, use
|
||||
@ -530,9 +514,6 @@ rebasing.
|
||||
If you just want to edit the commit message for a commit, replace the
|
||||
command "pick" with the command "reword".
|
||||
|
||||
To drop a commit, replace the command "pick" with "drop", or just
|
||||
delete the matching line.
|
||||
|
||||
If you want to fold two or more commits into one, replace the command
|
||||
"pick" for the second and subsequent commits with "squash" or "fixup".
|
||||
If the commits had different authors, the folded commit will be
|
||||
|
@ -23,7 +23,6 @@ depending on the subcommand:
|
||||
[--dry-run] [--verbose] [--all | <refs>...]
|
||||
'git reflog delete' [--rewrite] [--updateref]
|
||||
[--dry-run] [--verbose] ref@\{specifier\}...
|
||||
'git reflog exists' <ref>
|
||||
|
||||
Reference logs, or "reflogs", record when the tips of branches and
|
||||
other references were updated in the local repository. Reflogs are
|
||||
@ -53,9 +52,6 @@ argument must be an _exact_ entry (e.g. "`git reflog delete
|
||||
master@{2}`"). This subcommand is also typically not used directly by
|
||||
end users.
|
||||
|
||||
The "exists" subcommand checks whether a ref has a reflog. It exits
|
||||
with zero status if the reflog exists, and non-zero status if it does
|
||||
not.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
|
@ -1,5 +1,5 @@
|
||||
git-remote(1)
|
||||
=============
|
||||
============
|
||||
|
||||
NAME
|
||||
----
|
||||
@ -15,7 +15,6 @@ SYNOPSIS
|
||||
'git remote remove' <name>
|
||||
'git remote set-head' <name> (-a | --auto | -d | --delete | <branch>)
|
||||
'git remote set-branches' [--add] <name> <branch>...
|
||||
'git remote get-url' [--push] [--all] <name>
|
||||
'git remote set-url' [--push] <name> <newurl> [<oldurl>]
|
||||
'git remote set-url --add' [--push] <name> <newurl>
|
||||
'git remote set-url --delete' [--push] <name> <url>
|
||||
@ -132,15 +131,6 @@ The named branches will be interpreted as if specified with the
|
||||
With `--add`, instead of replacing the list of currently tracked
|
||||
branches, adds to that list.
|
||||
|
||||
'get-url'::
|
||||
|
||||
Retrieves the URLs for a remote. Configurations for `insteadOf` and
|
||||
`pushInsteadOf` are expanded here. By default, only the first URL is listed.
|
||||
+
|
||||
With '--push', push URLs are queried rather than fetch URLs.
|
||||
+
|
||||
With '--all', all URLs for the remote will be listed.
|
||||
|
||||
'set-url'::
|
||||
|
||||
Changes URLs for the remote. Sets first URL for remote <name> that matches
|
||||
|
@ -106,8 +106,7 @@ other objects in that pack they already have locally.
|
||||
--max-pack-size=<n>::
|
||||
Maximum size of each output pack file. The size can be suffixed with
|
||||
"k", "m", or "g". The minimum size allowed is limited to 1 MiB.
|
||||
If specified, multiple packfiles may be created, which also
|
||||
prevents the creation of a bitmap index.
|
||||
If specified, multiple packfiles may be created.
|
||||
The default is unlimited, unless the config variable
|
||||
`pack.packSizeLimit` is set.
|
||||
|
||||
@ -116,8 +115,7 @@ other objects in that pack they already have locally.
|
||||
Write a reachability bitmap index as part of the repack. This
|
||||
only makes sense when used with `-a` or `-A`, as the bitmaps
|
||||
must be able to refer to all reachable objects. This option
|
||||
overrides the setting of `repack.writeBitmaps`. This option
|
||||
has no effect if multiple packfiles are created.
|
||||
overrides the setting of `pack.writeBitmaps`.
|
||||
|
||||
--pack-kept-objects::
|
||||
Include objects in `.keep` files when repacking. Note that we
|
||||
@ -125,7 +123,7 @@ other objects in that pack they already have locally.
|
||||
This means that we may duplicate objects, but this makes the
|
||||
option safe to use when there are concurrent pushes or fetches.
|
||||
This option is generally only useful if you are writing bitmaps
|
||||
with `-b` or `repack.writeBitmaps`, as it ensures that the
|
||||
with `-b` or `pack.writeBitmaps`, as it ensures that the
|
||||
bitmapped packfile has the necessary objects.
|
||||
|
||||
Configuration
|
||||
@ -135,7 +133,7 @@ By default, the command passes `--delta-base-offset` option to
|
||||
'git pack-objects'; this typically results in slightly smaller packs,
|
||||
but the generated packs are incompatible with versions of Git older than
|
||||
version 1.4.4. If you need to share your repository with such ancient Git
|
||||
versions, either directly or via the dumb http protocol, then you
|
||||
versions, either directly or via the dumb http or rsync protocol, then you
|
||||
need to set the configuration variable `repack.UseDeltaBaseOffset` to
|
||||
"false" and repack. Access from old Git versions over the native protocol
|
||||
is unaffected by this option as the conversion is performed on the fly
|
||||
|
@ -14,8 +14,7 @@ DESCRIPTION
|
||||
-----------
|
||||
|
||||
Generate a request asking your upstream project to pull changes into
|
||||
their tree. The request, printed to the standard output,
|
||||
begins with the branch description, summarizes
|
||||
their tree. The request, printed to the standard output, summarizes
|
||||
the changes and indicates from where they can be pulled.
|
||||
|
||||
The upstream project is expected to have the commit named by
|
||||
|
@ -45,7 +45,7 @@ SYNOPSIS
|
||||
[ --regexp-ignore-case | -i ]
|
||||
[ --extended-regexp | -E ]
|
||||
[ --fixed-strings | -F ]
|
||||
[ --date=<format>]
|
||||
[ --date=(local|relative|default|iso|iso-strict|rfc|short) ]
|
||||
[ [ --objects | --objects-edge | --objects-edge-aggressive ]
|
||||
[ --unpacked ] ]
|
||||
[ --pretty | --header ]
|
||||
|
@ -8,7 +8,7 @@ git-revert - Revert some existing commits
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git revert' [--[no-]edit] [-n] [-m parent-number] [-s] [-S[<keyid>]] <commit>...
|
||||
'git revert' [--[no-]edit] [-n] [-m parent-number] [-s] [-S[<key-id>]] <commit>...
|
||||
'git revert' --continue
|
||||
'git revert' --quit
|
||||
'git revert' --abort
|
||||
@ -80,16 +80,13 @@ more details.
|
||||
This is useful when reverting more than one commits'
|
||||
effect to your index in a row.
|
||||
|
||||
-S[<keyid>]::
|
||||
--gpg-sign[=<keyid>]::
|
||||
GPG-sign commits. The `keyid` argument is optional and
|
||||
defaults to the committer identity; if specified, it must be
|
||||
stuck to the option without a space.
|
||||
-S[<key-id>]::
|
||||
--gpg-sign[=<key-id>]::
|
||||
GPG-sign commits.
|
||||
|
||||
-s::
|
||||
--signoff::
|
||||
Add Signed-off-by line at the end of the commit message.
|
||||
See the signoff option in linkgit:git-commit[1] for more information.
|
||||
|
||||
--strategy=<strategy>::
|
||||
Use the given merge strategy. Should only be used once.
|
||||
|
@ -10,7 +10,6 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git send-email' [options] <file|directory|rev-list options>...
|
||||
'git send-email' --dump-aliases
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
@ -50,17 +49,17 @@ Composing
|
||||
of 'sendemail.annotate'. See the CONFIGURATION section for
|
||||
'sendemail.multiEdit'.
|
||||
|
||||
--bcc=<address>,...::
|
||||
--bcc=<address>::
|
||||
Specify a "Bcc:" value for each email. Default is the value of
|
||||
'sendemail.bcc'.
|
||||
+
|
||||
This option may be specified multiple times.
|
||||
The --bcc option must be repeated for each user you want on the bcc list.
|
||||
|
||||
--cc=<address>,...::
|
||||
--cc=<address>::
|
||||
Specify a starting "Cc:" value for each email.
|
||||
Default is the value of 'sendemail.cc'.
|
||||
+
|
||||
This option may be specified multiple times.
|
||||
The --cc option must be repeated for each user you want on the cc list.
|
||||
|
||||
--compose::
|
||||
Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1])
|
||||
@ -111,13 +110,13 @@ is not set, this will be prompted for.
|
||||
Only necessary if --compose is also set. If --compose
|
||||
is not set, this will be prompted for.
|
||||
|
||||
--to=<address>,...::
|
||||
--to=<address>::
|
||||
Specify the primary recipient of the emails generated. Generally, this
|
||||
will be the upstream maintainer of the project involved. Default is the
|
||||
value of the 'sendemail.to' configuration value; if that is unspecified,
|
||||
and --to-cmd is not specified, this will be prompted for.
|
||||
+
|
||||
This option may be specified multiple times.
|
||||
The --to option must be repeated for each user you want on the to list.
|
||||
|
||||
--8bit-encoding=<encoding>::
|
||||
When encountering a non-ASCII message or subject that does not
|
||||
@ -172,19 +171,6 @@ Sending
|
||||
to determine your FQDN automatically. Default is the value of
|
||||
'sendemail.smtpDomain'.
|
||||
|
||||
--smtp-auth=<mechanisms>::
|
||||
Whitespace-separated list of allowed SMTP-AUTH mechanisms. This setting
|
||||
forces using only the listed mechanisms. Example:
|
||||
+
|
||||
------
|
||||
$ git send-email --smtp-auth="PLAIN LOGIN GSSAPI" ...
|
||||
------
|
||||
+
|
||||
If at least one of the specified mechanisms matches the ones advertised by the
|
||||
SMTP server and if it is supported by the utilized SASL library, the mechanism
|
||||
is used for authentication. If neither 'sendemail.smtpAuth' nor '--smtp-auth'
|
||||
is specified, all mechanisms supported by the SASL library can be used.
|
||||
|
||||
--smtp-pass[=<password>]::
|
||||
Password for SMTP-AUTH. The argument is optional: If no
|
||||
argument is specified, then the empty string is used as
|
||||
@ -388,16 +374,6 @@ default to '--validate'.
|
||||
Send emails even if safety checks would prevent it.
|
||||
|
||||
|
||||
Information
|
||||
~~~~~~~~~~~
|
||||
|
||||
--dump-aliases::
|
||||
Instead of the normal operation, dump the shorthand alias names from
|
||||
the configured alias file(s), one per line in alphabetical order. Note,
|
||||
this only includes the alias name and not its expanded email addresses.
|
||||
See 'sendemail.aliasesfile' for more information about aliases.
|
||||
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
|
||||
|
@ -9,10 +9,7 @@ git-send-pack - Push objects over Git protocol to another repository
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git send-pack' [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>]
|
||||
[--verbose] [--thin] [--atomic]
|
||||
[--[no-]signed|--sign=(true|false|if-asked)]
|
||||
[<host>:]<directory> [<ref>...]
|
||||
'git send-pack' [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<directory> [<ref>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -70,17 +67,6 @@ be in a separate packet, and the list must end with a flush packet.
|
||||
fails to update then the entire push will fail without changing any
|
||||
refs.
|
||||
|
||||
--[no-]signed::
|
||||
--sign=(true|false|if-asked)::
|
||||
GPG-sign the push request to update refs on the receiving
|
||||
side, to allow it to be checked by the hooks and/or be
|
||||
logged. If `false` or `--no-signed`, no signing will be
|
||||
attempted. If `true` or `--signed`, the push will fail if the
|
||||
server does not support signed pushes. If set to `if-asked`,
|
||||
sign if and only if the server supports signed pushes. The push
|
||||
will also fail if the actual call to `gpg --sign` fails. See
|
||||
linkgit:git-receive-pack[1] for the details on the receiving end.
|
||||
|
||||
<host>::
|
||||
A remote host to house the repository. When this
|
||||
part is specified, 'git-receive-pack' is invoked via
|
||||
|
@ -9,14 +9,13 @@ git-show-index - Show packed archive index
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git show-index'
|
||||
'git show-index' < idx-file
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Read the idx file for a Git packfile created with
|
||||
'git pack-objects' command from the standard input, and
|
||||
dump its contents.
|
||||
Reads given idx file for packed Git archive created with
|
||||
'git pack-objects' command, and dumps its contents.
|
||||
|
||||
The information it outputs is subset of what you can get from
|
||||
'git verify-pack -v'; this command only shows the packfile
|
||||
|
@ -11,7 +11,7 @@ SYNOPSIS
|
||||
'git show-ref' [-q|--quiet] [--verify] [--head] [-d|--dereference]
|
||||
[-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags]
|
||||
[--heads] [--] [<pattern>...]
|
||||
'git show-ref' --exclude-existing[=<pattern>]
|
||||
'git show-ref' --exclude-existing[=<pattern>] < ref-list
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -23,9 +23,8 @@ particular ref exists.
|
||||
|
||||
By default, shows the tags, heads, and remote refs.
|
||||
|
||||
The --exclude-existing form is a filter that does the inverse. It reads
|
||||
refs from stdin, one ref per line, and shows those that don't exist in
|
||||
the local repository.
|
||||
The --exclude-existing form is a filter that does the inverse, it shows the
|
||||
refs from stdin that don't exist in the local repository.
|
||||
|
||||
Use of this utility is encouraged in favor of directly accessing files under
|
||||
the `.git` directory.
|
||||
|
@ -95,8 +95,6 @@ show [<stash>]::
|
||||
shows the latest one. By default, the command shows the diffstat, but
|
||||
it will accept any format known to 'git diff' (e.g., `git stash show
|
||||
-p stash@{1}` to view the second most recent stash in patch form).
|
||||
You can use stash.showStat and/or stash.showPatch config variables
|
||||
to change the default behavior.
|
||||
|
||||
pop [--index] [-q|--quiet] [<stash>]::
|
||||
|
||||
|
@ -53,9 +53,8 @@ OPTIONS
|
||||
--untracked-files[=<mode>]::
|
||||
Show untracked files.
|
||||
+
|
||||
The mode parameter is used to specify the handling of untracked files.
|
||||
It is optional: it defaults to 'all', and if specified, it must be
|
||||
stuck to the option (e.g. `-uno`, but not `-u no`).
|
||||
The mode parameter is optional (defaults to 'all'), and is used to
|
||||
specify the handling of untracked files.
|
||||
+
|
||||
The possible options are:
|
||||
+
|
||||
|
@ -9,15 +9,14 @@ git-stripspace - Remove unnecessary whitespace
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git stripspace' [-s | --strip-comments]
|
||||
'git stripspace' [-c | --comment-lines]
|
||||
'git stripspace' [-s | --strip-comments] < input
|
||||
'git stripspace' [-c | --comment-lines] < input
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
Read text, such as commit messages, notes, tags and branch
|
||||
descriptions, from the standard input and clean it in the manner
|
||||
used by Git.
|
||||
Clean the input in the manner used by Git for text such as commit
|
||||
messages, notes, tags and branch descriptions.
|
||||
|
||||
With no arguments, this will:
|
||||
|
||||
|
@ -13,7 +13,7 @@ SYNOPSIS
|
||||
[--reference <repository>] [--depth <depth>] [--] <repository> [<path>]
|
||||
'git submodule' [--quiet] status [--cached] [--recursive] [--] [<path>...]
|
||||
'git submodule' [--quiet] init [--] [<path>...]
|
||||
'git submodule' [--quiet] deinit [-f|--force] (--all|[--] <path>...)
|
||||
'git submodule' [--quiet] deinit [-f|--force] [--] <path>...
|
||||
'git submodule' [--quiet] update [--init] [--remote] [-N|--no-fetch]
|
||||
[-f|--force] [--rebase|--merge] [--reference <repository>]
|
||||
[--depth <depth>] [--recursive] [--] [<path>...]
|
||||
@ -140,15 +140,12 @@ deinit::
|
||||
tree. Further calls to `git submodule update`, `git submodule foreach`
|
||||
and `git submodule sync` will skip any unregistered submodules until
|
||||
they are initialized again, so use this command if you don't want to
|
||||
have a local checkout of the submodule in your working tree anymore. If
|
||||
have a local checkout of the submodule in your work tree anymore. If
|
||||
you really want to remove a submodule from the repository and commit
|
||||
that use linkgit:git-rm[1] instead.
|
||||
+
|
||||
When the command is run without pathspec, it errors out,
|
||||
instead of deinit-ing everything, to prevent mistakes.
|
||||
+
|
||||
If `--force` is specified, the submodule's working tree will
|
||||
be removed even if it contains local modifications.
|
||||
If `--force` is specified, the submodule's work tree will be removed even if
|
||||
it contains local modifications.
|
||||
|
||||
update::
|
||||
+
|
||||
@ -240,9 +237,6 @@ sync::
|
||||
+
|
||||
"git submodule sync" synchronizes all submodules while
|
||||
"git submodule sync \-- A" synchronizes submodule "A" only.
|
||||
+
|
||||
If `--recursive` is specified, this command will recurse into the
|
||||
registered submodules, and sync any nested submodules within.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
@ -250,10 +244,6 @@ OPTIONS
|
||||
--quiet::
|
||||
Only print error messages.
|
||||
|
||||
--all::
|
||||
This option is only valid for the deinit command. Unregister all
|
||||
submodules in the working tree.
|
||||
|
||||
-b::
|
||||
--branch::
|
||||
Branch of repository to add as submodule.
|
||||
@ -264,8 +254,8 @@ OPTIONS
|
||||
--force::
|
||||
This option is only valid for add, deinit and update commands.
|
||||
When running add, allow adding an otherwise ignored submodule path.
|
||||
When running deinit the submodule working trees will be removed even
|
||||
if they contain local changes.
|
||||
When running deinit the submodule work trees will be removed even if
|
||||
they contain local changes.
|
||||
When running update (only effective with the checkout procedure),
|
||||
throw away local changes in submodules when switching to a
|
||||
different commit; and always run a checkout operation in the
|
||||
@ -374,7 +364,7 @@ the submodule itself.
|
||||
for linkgit:git-clone[1]'s `--reference` and `--shared` options carefully.
|
||||
|
||||
--recursive::
|
||||
This option is only valid for foreach, update, status and sync commands.
|
||||
This option is only valid for foreach, update and status commands.
|
||||
Traverse submodules recursively. The operation is performed not
|
||||
only in the submodules of the current repo, but also
|
||||
in any nested submodules inside those submodules (and so on).
|
||||
|
@ -1034,8 +1034,6 @@ listed below are allowed:
|
||||
url = http://server.org/svn
|
||||
fetch = trunk/project-a:refs/remotes/project-a/trunk
|
||||
branches = branches/*/project-a:refs/remotes/project-a/branches/*
|
||||
branches = branches/release_*:refs/remotes/project-a/branches/release_*
|
||||
branches = branches/re*se:refs/remotes/project-a/branches/*
|
||||
tags = tags/*/project-a:refs/remotes/project-a/tags/*
|
||||
------------------------------------------------------------------------
|
||||
|
||||
@ -1046,16 +1044,6 @@ independent path component (surrounded by '/' or EOL). This
|
||||
type of configuration is not automatically created by 'init' and
|
||||
should be manually entered with a text-editor or using 'git config'.
|
||||
|
||||
Also note that only one asterisk is allowed per word. For example:
|
||||
|
||||
branches = branches/re*se:refs/remotes/project-a/branches/*
|
||||
|
||||
will match branches 'release', 'rese', 're123se', however
|
||||
|
||||
branches = branches/re*s*e:refs/remotes/project-a/branches/*
|
||||
|
||||
will produce an error.
|
||||
|
||||
It is also possible to fetch a subset of branches or tags by using a
|
||||
comma-separated list of names within braces. For example:
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user