Compare commits
9 Commits
v2.11.0-rc
...
v2.7.5
Author | SHA1 | Date | |
---|---|---|---|
c8dd1e3bb1 | |||
dc58c8554a | |||
70fcaef90b | |||
ab37a18b60 | |||
ac33201285 | |||
531788af95 | |||
4000b40209 | |||
5a4ffdf587 | |||
3ec804490a |
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -1,3 +1,3 @@
|
||||
* whitespace=!indent,trail,space
|
||||
*.[ch] whitespace=indent,trail,space diff=cpp
|
||||
*.[ch] whitespace=indent,trail,space
|
||||
*.sh whitespace=indent,trail,space
|
||||
|
32
.gitignore
vendored
32
.gitignore
vendored
@ -179,6 +179,38 @@
|
||||
/gitweb/gitweb.cgi
|
||||
/gitweb/static/gitweb.js
|
||||
/gitweb/static/gitweb.min.*
|
||||
/test-chmtime
|
||||
/test-ctype
|
||||
/test-config
|
||||
/test-date
|
||||
/test-delta
|
||||
/test-dump-cache-tree
|
||||
/test-dump-split-index
|
||||
/test-dump-untracked-cache
|
||||
/test-scrap-cache-tree
|
||||
/test-genrandom
|
||||
/test-hashmap
|
||||
/test-index-version
|
||||
/test-line-buffer
|
||||
/test-match-trees
|
||||
/test-mergesort
|
||||
/test-mktemp
|
||||
/test-parse-options
|
||||
/test-path-utils
|
||||
/test-prio-queue
|
||||
/test-read-cache
|
||||
/test-regex
|
||||
/test-revision-walking
|
||||
/test-run-command
|
||||
/test-sha1
|
||||
/test-sha1-array
|
||||
/test-sigchain
|
||||
/test-string-list
|
||||
/test-submodule-config
|
||||
/test-subprocess
|
||||
/test-svn-fe
|
||||
/test-urlmatch-normalization
|
||||
/test-wildmatch
|
||||
/common-cmds.h
|
||||
*.tar.gz
|
||||
*.dsc
|
||||
|
4
.mailmap
4
.mailmap
@ -33,7 +33,6 @@ Cheng Renquan <crquan@gmail.com>
|
||||
Chris Shoemaker <c.shoemaker@cox.net>
|
||||
Chris Wright <chrisw@sous-sol.org> <chrisw@osdl.org>
|
||||
Cord Seele <cowose@gmail.com> <cowose@googlemail.com>
|
||||
Christian Couder <chriscool@tuxfamily.org> <christian.couder@gmail.com>
|
||||
Christian Stimming <stimming@tuhh.de> <chs@ckiste.goetheallee>
|
||||
Csaba Henk <csaba@gluster.com> <csaba@lowlife.hu>
|
||||
Dan Johnson <computerdruid@gmail.com>
|
||||
@ -47,14 +46,11 @@ David D. Kilzer <ddkilzer@kilzer.net>
|
||||
David Kågedal <davidk@lysator.liu.se>
|
||||
David Reiss <dreiss@facebook.com> <dreiss@dreiss-vmware.(none)>
|
||||
David S. Miller <davem@davemloft.net>
|
||||
David Turner <novalis@novalis.org> <dturner@twopensource.com>
|
||||
David Turner <novalis@novalis.org> <dturner@twosigma.com>
|
||||
Deskin Miller <deskinm@umich.edu>
|
||||
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>
|
||||
|
54
.travis.yml
54
.travis.yml
@ -1,11 +1,5 @@
|
||||
language: c
|
||||
|
||||
sudo: false
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/travis-cache
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
@ -18,59 +12,37 @@ addons:
|
||||
apt:
|
||||
packages:
|
||||
- language-pack-is
|
||||
- git-svn
|
||||
- apache2
|
||||
|
||||
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"
|
||||
- P4_VERSION="15.2"
|
||||
- GIT_LFS_VERSION="1.1.0"
|
||||
- DEFAULT_TEST_TARGET=prove
|
||||
- GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
|
||||
- GIT_TEST_OPTS="--verbose-log"
|
||||
- GIT_PROVE_OPTS="--timer --jobs 3"
|
||||
- GIT_TEST_OPTS="--verbose --tee"
|
||||
- CFLAGS="-g -O2 -Wall -Werror"
|
||||
- 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)
|
||||
export GIT_TEST_HTTPD=YesPlease
|
||||
|
||||
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
|
||||
wget --quiet http://filehost.perforce.com/perforce/r$P4_VERSION/bin.linux26x86_64/p4d
|
||||
wget --quiet http://filehost.perforce.com/perforce/r$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 .
|
||||
wget --quiet https://github.com/github/git-lfs/releases/download/v$GIT_LFS_VERSION/git-lfs-linux-amd64-$GIT_LFS_VERSION.tar.gz
|
||||
tar --extract --gunzip --file "git-lfs-linux-amd64-$GIT_LFS_VERSION.tar.gz"
|
||||
cp git-lfs-$GIT_LFS_VERSION/git-lfs .
|
||||
export PATH="$(pwd):$PATH"
|
||||
popd
|
||||
;;
|
||||
@ -79,14 +51,12 @@ before_install:
|
||||
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" \
|
||||
"$(brew --repository homebrew/homebrew-binary)/$FORMULA.rb"
|
||||
/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
|
||||
# Uncomment this if you want to run perf tests:
|
||||
# brew install gnu-time
|
||||
brew install git-lfs perforce-server perforce gettext
|
||||
brew link --force gettext
|
||||
;;
|
||||
@ -97,8 +67,6 @@ before_install:
|
||||
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
|
||||
|
||||
|
@ -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.
|
||||
@ -526,20 +521,12 @@ Writing Documentation:
|
||||
modifying paragraphs or option/command explanations that contain options
|
||||
or commands:
|
||||
|
||||
Literal examples (e.g. use of command-line options, command names,
|
||||
branch names, configuration and environment variables) must be
|
||||
typeset in monospace (i.e. wrapped with backticks):
|
||||
Literal examples (e.g. use of command-line options, command names, and
|
||||
configuration variables) are typeset in monospace, and if you can use
|
||||
`backticks around word phrases`, do so.
|
||||
`--pretty=oneline`
|
||||
`git rev-list`
|
||||
`remote.pushDefault`
|
||||
`GIT_DIR`
|
||||
`HEAD`
|
||||
|
||||
An environment variable must be prefixed with "$" only when referring to its
|
||||
value and not when referring to the variable itself, in this case there is
|
||||
nothing to add except the backticks:
|
||||
`GIT_DIR` is specified
|
||||
`$GIT_DIR/hooks/pre-receive`
|
||||
|
||||
Word phrases enclosed in `backtick characters` are rendered literally
|
||||
and will not be further expanded. The use of `backticks` to achieve the
|
||||
|
@ -76,7 +76,6 @@ TECH_DOCS += technical/protocol-common
|
||||
TECH_DOCS += technical/racy-git
|
||||
TECH_DOCS += technical/send-pack-pipeline
|
||||
TECH_DOCS += technical/shallow
|
||||
TECH_DOCS += technical/signature-format
|
||||
TECH_DOCS += technical/trivial-merge
|
||||
SP_ARTICLES += $(TECH_DOCS)
|
||||
SP_ARTICLES += technical/api-index
|
||||
@ -147,7 +146,7 @@ else
|
||||
ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
|
||||
endif
|
||||
endif
|
||||
ifndef NO_MAN_BOLD_LITERAL
|
||||
ifdef MAN_BOLD_LITERAL
|
||||
XMLTO_EXTRA += -m manpage-bold-literal.xsl
|
||||
endif
|
||||
ifdef DOCBOOK_SUPPRESS_SP
|
||||
@ -205,7 +204,6 @@ ifndef V
|
||||
QUIET_DBLATEX = @echo ' ' DBLATEX $@;
|
||||
QUIET_XSLTPROC = @echo ' ' XSLTPROC $@;
|
||||
QUIET_GEN = @echo ' ' GEN $@;
|
||||
QUIET_LINT = @echo ' ' LINT $@;
|
||||
QUIET_STDERR = 2> /dev/null
|
||||
QUIET_SUBDIR0 = +@subdir=
|
||||
QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
|
||||
@ -429,7 +427,4 @@ quick-install-html: require-htmlrepo
|
||||
print-man1:
|
||||
@for i in $(MAN1_TXT); do echo $$i; done
|
||||
|
||||
lint-docs::
|
||||
$(QUIET_LINT)$(PERL_PATH) lint-gitlink.perl
|
||||
|
||||
.PHONY: FORCE
|
||||
|
@ -1,675 +0,0 @@
|
||||
Git 2.10 Release Notes
|
||||
======================
|
||||
|
||||
Backward compatibility notes
|
||||
----------------------------
|
||||
|
||||
Updates since v2.9
|
||||
------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* "git pull --rebase --verify-signature" learned to warn the user
|
||||
that "--verify-signature" is a no-op when rebasing.
|
||||
|
||||
* An upstream project can make a recommendation to shallowly clone
|
||||
some submodules in the .gitmodules file it ships.
|
||||
|
||||
* "git worktree add" learned that '-' can be used as a short-hand for
|
||||
"@{-1}", the previous branch.
|
||||
|
||||
* Update the funcname definition to support css files.
|
||||
|
||||
* The completion script (in contrib/) learned to complete "git
|
||||
status" options.
|
||||
|
||||
* Messages that are generated by auto gc during "git push" on the
|
||||
receiving end are now passed back to the sending end in such a way
|
||||
that they are shown with "remote: " prefix to avoid confusing the
|
||||
users.
|
||||
|
||||
* "git add -i/-p" learned to honor diff.compactionHeuristic
|
||||
experimental knob, so that the user can work on the same hunk split
|
||||
as "git diff" output.
|
||||
|
||||
* "upload-pack" allows a custom "git pack-objects" replacement when
|
||||
responding to "fetch/clone" via the uploadpack.packObjectsHook.
|
||||
(merge b738396 jk/upload-pack-hook later to maint).
|
||||
|
||||
* Teach format-patch and mailsplit (hence "am") how a line that
|
||||
happens to begin with "From " in the e-mail message is quoted with
|
||||
">", so that these lines can be restored to their original shape.
|
||||
(merge d9925d1 ew/mboxrd-format-am later to maint).
|
||||
|
||||
* "git repack" learned the "--keep-unreachable" option, which sends
|
||||
loose unreachable objects to a pack instead of leaving them loose.
|
||||
This helps heuristics based on the number of loose objects
|
||||
(e.g. "gc --auto").
|
||||
(merge e26a8c4 jk/repack-keep-unreachable later to maint).
|
||||
|
||||
* "log --graph --format=" learned that "%>|(N)" specifies the width
|
||||
relative to the terminal's left edge, not relative to the area to
|
||||
draw text that is to the right of the ancestry-graph section. It
|
||||
also now accepts negative N that means the column limit is relative
|
||||
to the right border.
|
||||
|
||||
* A careless invocation of "git send-email directory/" after editing
|
||||
0001-change.patch with an editor often ends up sending both
|
||||
0001-change.patch and its backup file, 0001-change.patch~, causing
|
||||
embarrassment and a minor confusion. Detect such an input and
|
||||
offer to skip the backup files when sending the patches out.
|
||||
(merge 531220b jc/send-email-skip-backup later to maint).
|
||||
|
||||
* "git submodule update" that drives many "git clone" could
|
||||
eventually hit flaky servers/network conditions on one of the
|
||||
submodules; the command learned to retry the attempt.
|
||||
|
||||
* The output coloring scheme learned two new attributes, italic and
|
||||
strike, in addition to existing bold, reverse, etc.
|
||||
|
||||
* "git log" learns log.showSignature configuration variable, and a
|
||||
command line option "--no-show-signature" to countermand it.
|
||||
(merge fce04c3 mj/log-show-signature-conf later to maint).
|
||||
|
||||
* More markings of messages for i18n, with updates to various tests
|
||||
to pass GETTEXT_POISON tests.
|
||||
|
||||
* "git archive" learned to handle files that are larger than 8GB and
|
||||
commits far in the future than expressible by the traditional US-TAR
|
||||
format.
|
||||
(merge 560b0e8 jk/big-and-future-archive-tar later to maint).
|
||||
|
||||
|
||||
* A new configuration variable core.sshCommand has been added to
|
||||
specify what value for GIT_SSH_COMMAND to use per repository.
|
||||
|
||||
* "git worktree prune" protected worktrees that are marked as
|
||||
"locked" by creating a file in a known location. "git worktree"
|
||||
command learned a dedicated command pair to create and remove such
|
||||
a file, so that the users do not have to do this with editor.
|
||||
|
||||
* A handful of "git svn" updates.
|
||||
|
||||
* "git push" learned to accept and pass extra options to the
|
||||
receiving end so that hooks can read and react to them.
|
||||
|
||||
* "git status" learned to suggest "merge --abort" during a conflicted
|
||||
merge, just like it already suggests "rebase --abort" during a
|
||||
conflicted rebase.
|
||||
|
||||
* "git jump" script (in contrib/) has been updated a bit.
|
||||
(merge a91e692 jk/git-jump later to maint).
|
||||
|
||||
* "git push" and "git clone" learned to give better progress meters
|
||||
to the end user who is waiting on the terminal.
|
||||
|
||||
* An entry "git log --decorate" for the tip of the current branch is
|
||||
shown as "HEAD -> name" (where "name" is the name of the branch);
|
||||
the arrow is now painted in the same color as "HEAD", not in the
|
||||
color for commits.
|
||||
|
||||
* "git format-patch" learned format.from configuration variable to
|
||||
specify the default settings for its "--from" option.
|
||||
|
||||
* "git am -3" calls "git merge-recursive" when it needs to fall back
|
||||
to a three-way merge; this call has been turned into an internal
|
||||
subroutine call instead of spawning a separate subprocess.
|
||||
|
||||
* The command line completion scripts (in contrib/) now knows about
|
||||
"git branch --delete/--move [--remote]".
|
||||
(merge 2703c22 vs/completion-branch-fully-spelled-d-m-r later to maint).
|
||||
|
||||
* "git rev-parse --git-path hooks/<hook>" learned to take
|
||||
core.hooksPath configuration variable (introduced during 2.9 cycle)
|
||||
into account.
|
||||
(merge 9445b49 ab/hooks later to maint).
|
||||
|
||||
* "git log --show-signature" and other commands that display the
|
||||
verification status of PGP signature now shows the longer key-id,
|
||||
as 32-bit key-id is so last century.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* "git fast-import" learned the same performance trick to avoid
|
||||
creating too small a packfile as "git fetch" and "git push" have,
|
||||
using *.unpackLimit configuration.
|
||||
|
||||
* When "git daemon" is run without --[init-]timeout specified, a
|
||||
connection from a client that silently goes offline can hang around
|
||||
for a long time, wasting resources. The socket-level KEEPALIVE has
|
||||
been enabled to allow the OS to notice such failed connections.
|
||||
|
||||
* "git upload-pack" command has been updated to use the parse-options
|
||||
API.
|
||||
|
||||
* The "git apply" standalone program is being libified; the first
|
||||
step to move many state variables into a structure that can be
|
||||
explicitly (re)initialized to make the machinery callable more
|
||||
than once has been merged.
|
||||
|
||||
* HTTP transport gained an option to produce more detailed debugging
|
||||
trace.
|
||||
(merge 73e57aa ep/http-curl-trace later to maint).
|
||||
|
||||
* Instead of taking advantage of the fact that a struct string_list
|
||||
that is allocated with all NULs happens to be the INIT_NODUP kind,
|
||||
the users of string_list structures are taught to initialize them
|
||||
explicitly as such, to document their behaviour better.
|
||||
(merge 2721ce2 jk/string-list-static-init later to maint).
|
||||
|
||||
* HTTPd tests learned to show the server error log to help diagnosing
|
||||
a failing tests.
|
||||
(merge 44f243d nd/test-lib-httpd-show-error-log-in-verbose later to maint).
|
||||
|
||||
* The ownership rule for the piece of memory that hold references to
|
||||
be fetched in "git fetch" was screwy, which has been cleaned up.
|
||||
|
||||
* "git bisect" makes an internal call to "git diff-tree" when
|
||||
bisection finds the culprit, but this call did not initialize the
|
||||
data structure to pass to the diff-tree API correctly.
|
||||
|
||||
* Further preparatory clean-up for "worktree" feature continues.
|
||||
(merge 0409e0b nd/worktree-cleanup-post-head-protection later to maint).
|
||||
|
||||
* Formats of the various data (and how to validate them) where we use
|
||||
GPG signature have been documented.
|
||||
|
||||
* A new run-command API function pipe_command() is introduced to
|
||||
sanely feed data to the standard input while capturing data from
|
||||
the standard output and the standard error of an external process,
|
||||
which is cumbersome to hand-roll correctly without deadlocking.
|
||||
|
||||
* The codepath to sign data in a prepared buffer with GPG has been
|
||||
updated to use this API to read from the status-fd to check for
|
||||
errors (instead of relying on GPG's exit status).
|
||||
(merge efee955 jk/gpg-interface-cleanup later to maint).
|
||||
|
||||
* Allow t/perf framework to use the features from the most recent
|
||||
version of Git even when testing an older installed version.
|
||||
|
||||
* The commands in the "log/diff" family have had an FILE* pointer in the
|
||||
data structure they pass around for a long time, but some codepaths
|
||||
used to always write to the standard output. As a preparatory step
|
||||
to make "git format-patch" available to the internal callers, these
|
||||
codepaths have been updated to consistently write into that FILE*
|
||||
instead.
|
||||
|
||||
* Conversion from unsigned char sha1[20] to struct object_id
|
||||
continues.
|
||||
|
||||
* Improve the look of the way "git fetch" reports what happened to
|
||||
each ref that was fetched.
|
||||
|
||||
* The .c/.h sources are marked as such in our .gitattributes file so
|
||||
that "git diff -W" and friends would work better.
|
||||
|
||||
* Code clean-up to avoid using a variable string that compilers may
|
||||
feel untrustable as printf-style format given to write_file()
|
||||
helper function.
|
||||
|
||||
* "git p4" used a location outside $GIT_DIR/refs/ to place its
|
||||
temporary branches, which has been moved to refs/git-p4-tmp/.
|
||||
|
||||
* Existing autoconf generated test for the need to link with pthread
|
||||
library did not check all the functions from pthread libraries;
|
||||
recent FreeBSD has some functions in libc but not others, and we
|
||||
mistakenly thought linking with libc is enough when it is not.
|
||||
|
||||
* When "git fsck" reports a broken link (e.g. a tree object contains
|
||||
a blob that does not exist), both containing object and the object
|
||||
that is referred to were reported with their 40-hex object names.
|
||||
The command learned the "--name-objects" option to show the path to
|
||||
the containing object from existing refs (e.g. "HEAD~24^2:file.txt").
|
||||
|
||||
* Allow http daemon tests in Travis CI tests.
|
||||
|
||||
* Makefile assumed that -lrt is always available on platforms that
|
||||
want to use clock_gettime() and CLOCK_MONOTONIC, which is not a
|
||||
case for recent Mac OS X. The necessary symbols are often found in
|
||||
libc on many modern systems and having -lrt on the command line, as
|
||||
long as the library exists, had no effect, but when the platform
|
||||
removes librt.a that is a different matter--having -lrt will break
|
||||
the linkage.
|
||||
|
||||
This change could be seen as a regression for those who do need to
|
||||
specify -lrt, as they now specifically ask for NEEDS_LIBRT when
|
||||
building. Hopefully they are in the minority these days.
|
||||
|
||||
* Further preparatory work on the refs API before the pluggable
|
||||
backend series can land.
|
||||
|
||||
* Error handling in the codepaths that updates refs has been
|
||||
improved.
|
||||
|
||||
* The API to iterate over all the refs (i.e. for_each_ref(), etc.)
|
||||
has been revamped.
|
||||
|
||||
* The handling of the "text=auto" attribute has been corrected.
|
||||
$ echo "* text=auto eol=crlf" >.gitattributes
|
||||
used to have the same effect as
|
||||
$ echo "* text eol=crlf" >.gitattributes
|
||||
i.e. declaring all files are text (ignoring "auto"). The
|
||||
combination has been fixed to be equivalent to doing
|
||||
$ git config core.autocrlf true
|
||||
|
||||
* Documentation has been updated to show better example usage
|
||||
of the updated "text=auto" attribute.
|
||||
|
||||
* A few tests that specifically target "git rebase -i" have been
|
||||
added.
|
||||
|
||||
* Dumb http transport on the client side has been optimized.
|
||||
(merge ecba195 ew/http-walker later to maint).
|
||||
|
||||
* Users of the parse_options_concat() API function need to allocate
|
||||
extra slots in advance and fill them with OPT_END() when they want
|
||||
to decide the set of supported options dynamically, which makes the
|
||||
code error-prone and hard to read. This has been corrected by tweaking
|
||||
the API to allocate and return a new copy of "struct option" array.
|
||||
|
||||
* "git fetch" exchanges batched have/ack messages between the sender
|
||||
and the receiver, initially doubling every time and then falling
|
||||
back to enlarge the window size linearly. The "smart http"
|
||||
transport, being an half-duplex protocol, outgrows the preset limit
|
||||
too quickly and becomes inefficient when interacting with a large
|
||||
repository. The internal mechanism learned to grow the window size
|
||||
more aggressively when working with the "smart http" transport.
|
||||
|
||||
* Tests for "git svn" have been taught to reuse the lib-httpd test
|
||||
infrastructure when testing the subversion integration that
|
||||
interacts with subversion repositories served over the http://
|
||||
protocol.
|
||||
(merge a8a5d25 ew/git-svn-http-tests later to maint).
|
||||
|
||||
* "git pack-objects" has a few options that tell it not to pack
|
||||
objects found in certain packfiles, which require it to scan .idx
|
||||
files of all available packs. The codepaths involved in these
|
||||
operations have been optimized for a common case of not having any
|
||||
non-local pack and/or any .kept pack.
|
||||
|
||||
* The t3700 test about "add --chmod=-x" have been made a bit more
|
||||
robust and generally cleaned up.
|
||||
(merge 766cdc4 ib/t3700-add-chmod-x-updates later to maint).
|
||||
|
||||
* The build procedure learned PAGER_ENV knob that lists what default
|
||||
environment variable settings to export for popular pagers. This
|
||||
mechanism is used to tweak the default settings to MORE on FreeBSD.
|
||||
(merge 995bc22 ew/build-time-pager-tweaks later to maint).
|
||||
|
||||
* The http-backend (the server-side component of smart-http
|
||||
transport) used to trickle the HTTP header one at a time. Now
|
||||
these write(2)s are batched.
|
||||
(merge b36045c ew/http-backend-batch-headers later to maint).
|
||||
|
||||
* When "git rebase" tries to compare set of changes on the updated
|
||||
upstream and our own branch, it computes patch-id for all of these
|
||||
changes and attempts to find matches. This has been optimized by
|
||||
lazily computing the full patch-id (which is expensive) to be
|
||||
compared only for changes that touch the same set of paths.
|
||||
(merge ba67504 kw/patch-ids-optim later to maint).
|
||||
|
||||
* A handful of tests that were broken under gettext-poison build have
|
||||
been fixed.
|
||||
|
||||
* The recent i18n patch we added during this cycle did a bit too much
|
||||
refactoring of the messages to avoid word-legos; the repetition has
|
||||
been reduced to help translators.
|
||||
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
||||
|
||||
|
||||
Fixes since v2.9
|
||||
----------------
|
||||
|
||||
Unless otherwise noted, all the fixes since v2.8 in the maintenance
|
||||
track are contained in this release (see the maintenance releases'
|
||||
notes for details).
|
||||
|
||||
* The commands in `git log` family take %C(auto) in a custom format
|
||||
string. This unconditionally turned the color on, ignoring
|
||||
--no-color or with --color=auto when the output is not connected to
|
||||
a tty; this was corrected to make the format truly behave as
|
||||
"auto".
|
||||
|
||||
* "git rev-list --count" whose walk-length is limited with "-n"
|
||||
option did not work well with the counting optimized to look at the
|
||||
bitmap index.
|
||||
|
||||
* "git show -W" (extend hunks to cover the entire function, delimited
|
||||
by lines that match the "funcname" pattern) used to show the entire
|
||||
file when a change added an entire function at the end of the file,
|
||||
which has been fixed.
|
||||
|
||||
* The documentation set has been updated so that literal commands,
|
||||
configuration variables and environment variables are consistently
|
||||
typeset in fixed-width font and bold in manpages.
|
||||
|
||||
* "git svn propset" subcommand that was added in 2.3 days is
|
||||
documented now.
|
||||
|
||||
* The documentation tries to consistently spell "GPG"; when
|
||||
referring to the specific program name, "gpg" is used.
|
||||
|
||||
* "git reflog" stopped upon seeing an entry that denotes a branch
|
||||
creation event (aka "unborn"), which made it appear as if the
|
||||
reflog was truncated.
|
||||
|
||||
* The git-prompt scriptlet (in contrib/) was not friendly with those
|
||||
who uses "set -u", which has been fixed.
|
||||
|
||||
* compat/regex code did not cleanly compile.
|
||||
|
||||
* A codepath that used alloca(3) to place an unbounded amount of data
|
||||
on the stack has been updated to avoid doing so.
|
||||
|
||||
* "git update-index --add --chmod=+x file" may be usable as an escape
|
||||
hatch, but not a friendly thing to force for people who do need to
|
||||
use it regularly. "git add --chmod=+x file" can be used instead.
|
||||
|
||||
* Build improvements for gnome-keyring (in contrib/)
|
||||
|
||||
* "git status" used to say "working directory" when it meant "working
|
||||
tree".
|
||||
|
||||
* Comments about misbehaving FreeBSD shells have been clarified with
|
||||
the version number (9.x and before are broken, newer ones are OK).
|
||||
|
||||
* "git cherry-pick A" worked on an unborn branch, but "git
|
||||
cherry-pick A..B" didn't.
|
||||
|
||||
* Fix an unintended regression in v2.9 that breaks "clone --depth"
|
||||
that recurses down to submodules by forcing the submodules to also
|
||||
be cloned shallowly, which many server instances that host upstream
|
||||
of the submodules are not prepared for.
|
||||
|
||||
* Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}'
|
||||
to set the default value, without enclosing it in double quotes.
|
||||
|
||||
* Some platform-specific code had non-ANSI strict declarations of C
|
||||
functions that do not take any parameters, which has been
|
||||
corrected.
|
||||
|
||||
* The internal code used to show local timezone offset is not
|
||||
prepared to handle timestamps beyond year 2100, and gave a
|
||||
bogus offset value to the caller. Use a more benign looking
|
||||
+0000 instead and let "git log" going in such a case, instead
|
||||
of aborting.
|
||||
|
||||
* One among four invocations of readlink(1) in our test suite has
|
||||
been rewritten so that the test can run on systems without the
|
||||
command (others are in valgrind test framework and t9802).
|
||||
|
||||
* t/perf needs /usr/bin/time with GNU extension; the invocation of it
|
||||
is updated to "gtime" on Darwin.
|
||||
|
||||
* A bug, which caused "git p4" while running under verbose mode to
|
||||
report paths that are omitted due to branch prefix incorrectly, has
|
||||
been fixed; the command said "Ignoring file outside of prefix" for
|
||||
paths that are _inside_.
|
||||
|
||||
* The top level documentation "git help git" still pointed at the
|
||||
documentation set hosted at now-defunct google-code repository.
|
||||
Update it to point to https://git.github.io/htmldocs/git.html
|
||||
instead.
|
||||
|
||||
* A helper function that takes the contents of a commit object and
|
||||
finds its subject line did not ignore leading blank lines, as is
|
||||
commonly done by other codepaths. Make it ignore leading blank
|
||||
lines to match.
|
||||
|
||||
* For a long time, we carried an in-code comment that said our
|
||||
colored output would work only when we use fprintf/fputs on
|
||||
Windows, which no longer is the case for the past few years.
|
||||
|
||||
* "gc.autoPackLimit" when set to 1 should not trigger a repacking
|
||||
when there is only one pack, but the code counted poorly and did
|
||||
so.
|
||||
|
||||
* Add a test to specify the desired behaviour that currently is not
|
||||
available in "git rebase -Xsubtree=...".
|
||||
|
||||
* More mark-up updates to typeset strings that are expected to
|
||||
literally typed by the end user in fixed-width font.
|
||||
|
||||
* "git commit --amend --allow-empty-message -S" for a commit without
|
||||
any message body could have misidentified where the header of the
|
||||
commit object ends.
|
||||
|
||||
* "git rebase -i --autostash" did not restore the auto-stashed change
|
||||
when the operation was aborted.
|
||||
|
||||
* Git does not know what the contents in the index should be for a
|
||||
path added with "git add -N" yet, so "git grep --cached" should not
|
||||
show hits (or show lack of hits, with -L) in such a path, but that
|
||||
logic does not apply to "git grep", i.e. searching in the working
|
||||
tree files. But we did so by mistake, which has been corrected.
|
||||
|
||||
* "git blame -M" missed a single line that was moved within the file.
|
||||
|
||||
* Fix recently introduced codepaths that are involved in parallel
|
||||
submodule operations, which gave up on reading too early, and
|
||||
could have wasted CPU while attempting to write under a corner
|
||||
case condition.
|
||||
|
||||
* "git grep -i" has been taught to fold case in non-ascii locales
|
||||
correctly.
|
||||
|
||||
* A test that unconditionally used "mktemp" learned that the command
|
||||
is not necessarily available everywhere.
|
||||
|
||||
* There are certain house-keeping tasks that need to be performed at
|
||||
the very beginning of any Git program, and programs that are not
|
||||
built-in commands had to do them exactly the same way as "git"
|
||||
potty does. It was easy to make mistakes in one-off standalone
|
||||
programs (like test helpers). A common "main()" function that
|
||||
calls cmd_main() of individual program has been introduced to
|
||||
make it harder to make mistakes.
|
||||
(merge de61ceb jk/common-main later to maint).
|
||||
|
||||
* The test framework learned a new helper test_match_signal to
|
||||
check an exit code from getting killed by an expected signal.
|
||||
|
||||
* General code clean-up around a helper function to write a
|
||||
single-liner to a file.
|
||||
(merge 7eb6e10 jk/write-file later to maint).
|
||||
|
||||
* One part of "git am" had an oddball helper function that called
|
||||
stuff from outside "his" as opposed to calling what we have "ours",
|
||||
which was not gender-neutral and also inconsistent with the rest of
|
||||
the system where outside stuff is usuall called "theirs" in
|
||||
contrast to "ours".
|
||||
|
||||
* "git blame file" allowed the lineage of lines in the uncommitted,
|
||||
unadded contents of "file" to be inspected, but it refused when
|
||||
"file" did not appear in the current commit. When "file" was
|
||||
created by renaming an existing file (but the change has not been
|
||||
committed), this restriction was unnecessarily tight.
|
||||
|
||||
* "git add -N dir/file && git write-tree" produced an incorrect tree
|
||||
when there are other paths in the same directory that sorts after
|
||||
"file".
|
||||
|
||||
* "git fetch http://user:pass@host/repo..." scrubbed the userinfo
|
||||
part, but "git push" didn't.
|
||||
|
||||
* "git merge" with renormalization did not work well with
|
||||
merge-recursive, due to "safer crlf" conversion kicking in when it
|
||||
shouldn't.
|
||||
(merge 1335d76 jc/renormalize-merge-kill-safer-crlf later to maint).
|
||||
|
||||
* The use of strbuf in "git rm" to build filename to remove was a bit
|
||||
suboptimal, which has been fixed.
|
||||
|
||||
* An age old bug that caused "git diff --ignore-space-at-eol"
|
||||
misbehave has been fixed.
|
||||
|
||||
* "git notes merge" had a code to see if a path exists (and fails if
|
||||
it does) and then open the path for writing (when it doesn't).
|
||||
Replace it with open with O_EXCL.
|
||||
|
||||
* "git pack-objects" and "git index-pack" mostly operate with off_t
|
||||
when talking about the offset of objects in a packfile, but there
|
||||
were a handful of places that used "unsigned long" to hold that
|
||||
value, leading to an unintended truncation.
|
||||
|
||||
* Recent update to "git daemon" tries to enable the socket-level
|
||||
KEEPALIVE, but when it is spawned via inetd, the standard input
|
||||
file descriptor may not necessarily be connected to a socket.
|
||||
Suppress an ENOTSOCK error from setsockopt().
|
||||
|
||||
* Recent FreeBSD stopped making perl available at /usr/bin/perl;
|
||||
switch the default the built-in path to /usr/local/bin/perl on not
|
||||
too ancient FreeBSD releases.
|
||||
|
||||
* "git commit --help" said "--no-verify" is only about skipping the
|
||||
pre-commit hook, and failed to say that it also skipped the
|
||||
commit-msg hook.
|
||||
|
||||
* "git merge" in Git v2.9 was taught to forbid merging an unrelated
|
||||
lines of history by default, but that is exactly the kind of thing
|
||||
the "--rejoin" mode of "git subtree" (in contrib/) wants to do.
|
||||
"git subtree" has been taught to use the "--allow-unrelated-histories"
|
||||
option to override the default.
|
||||
|
||||
* The build procedure for "git persistent-https" helper (in contrib/)
|
||||
has been updated so that it can be built with more recent versions
|
||||
of Go.
|
||||
|
||||
* There is an optimization used in "git diff $treeA $treeB" to borrow
|
||||
an already checked-out copy in the working tree when it is known to
|
||||
be the same as the blob being compared, expecting that open/mmap of
|
||||
such a file is faster than reading it from the object store, which
|
||||
involves inflating and applying delta. This however kicked in even
|
||||
when the checked-out copy needs to go through the convert-to-git
|
||||
conversion (including the clean filter), which defeats the whole
|
||||
point of the optimization. The optimization has been disabled when
|
||||
the conversion is necessary.
|
||||
|
||||
* "git -c grep.patternType=extended log --basic-regexp" misbehaved
|
||||
because the internal API to access the grep machinery was not
|
||||
designed well.
|
||||
|
||||
* Windows port was failing some tests in t4130, due to the lack of
|
||||
inum in the returned values by its lstat(2) emulation.
|
||||
|
||||
* The reflog output format is documented better, and a new format
|
||||
--date=unix to report the seconds-since-epoch (without timezone)
|
||||
has been added.
|
||||
(merge 442f6fd jk/reflog-date later to maint).
|
||||
|
||||
* "git difftool <paths>..." started in a subdirectory failed to
|
||||
interpret the paths relative to that directory, which has been
|
||||
fixed.
|
||||
|
||||
* The characters in the label shown for tags/refs for commits in
|
||||
"gitweb" output are now properly escaped for proper HTML output.
|
||||
|
||||
* FreeBSD can lie when asked mtime of a directory, which made the
|
||||
untracked cache code to fall back to a slow-path, which in turn
|
||||
caused tests in t7063 to fail because it wanted to verify the
|
||||
behaviour of the fast-path.
|
||||
|
||||
* Squelch compiler warnings for nedmalloc (in compat/) library.
|
||||
|
||||
* A small memory leak in the command line parsing of "git blame"
|
||||
has been plugged.
|
||||
|
||||
* The API documentation for hashmap was unclear if hashmap_entry
|
||||
can be safely discarded without any other consideration. State
|
||||
that it is safe to do so.
|
||||
|
||||
* Not-so-recent rewrite of "git am" that started making internal
|
||||
calls into the commit machinery had an unintended regression, in
|
||||
that no matter how many seconds it took to apply many patches, the
|
||||
resulting committer timestamp for the resulting commits were all
|
||||
the same.
|
||||
|
||||
* "git push --force-with-lease" already had enough logic to allow
|
||||
ensuring that such a push results in creation of a ref (i.e. the
|
||||
receiving end did not have another push from sideways that would be
|
||||
discarded by our force-pushing), but didn't expose this possibility
|
||||
to the users. It does so now.
|
||||
(merge 9eed4f3 jk/push-force-with-lease-creation later to maint).
|
||||
|
||||
* The mechanism to limit the pack window memory size, when packing is
|
||||
done using multiple threads (which is the default), is per-thread,
|
||||
but this was not documented clearly.
|
||||
(merge 954176c ms/document-pack-window-memory-is-per-thread later to maint).
|
||||
|
||||
* "import-tars" fast-import script (in contrib/) used to ignore a
|
||||
hardlink target and replaced it with an empty file, which has been
|
||||
corrected to record the same blob as the other file the hardlink is
|
||||
shared with.
|
||||
(merge 04e0869 js/import-tars-hardlinks later to maint).
|
||||
|
||||
* "git mv dir non-existing-dir/" did not work in some environments
|
||||
the same way as existing mainstream platforms. The code now moves
|
||||
"dir" to "non-existing-dir", without relying on rename("A", "B/")
|
||||
that strips the trailing slash of '/'.
|
||||
(merge 189d035 js/mv-dir-to-new-directory later to maint).
|
||||
|
||||
* The "t/" hierarchy is prone to get an unusual pathname; "make test"
|
||||
has been taught to make sure they do not contain paths that cannot
|
||||
be checked out on Windows (and the mechanism can be reusable to
|
||||
catch pathnames that are not portable to other platforms as need
|
||||
arises).
|
||||
(merge c2cafd3 js/test-lint-pathname later to maint).
|
||||
|
||||
* When "git merge-recursive" works on history with many criss-cross
|
||||
merges in "verbose" mode, the names the command assigns to the
|
||||
virtual merge bases could have overwritten each other by unintended
|
||||
reuse of the same piece of memory.
|
||||
(merge 5447a76 rs/pull-signed-tag later to maint).
|
||||
|
||||
* "git checkout --detach <branch>" used to give the same advice
|
||||
message as that is issued when "git checkout <tag>" (or anything
|
||||
that is not a branch name) is given, but asking with "--detach" is
|
||||
an explicit enough sign that the user knows what is going on. The
|
||||
advice message has been squelched in this case.
|
||||
(merge 779b88a sb/checkout-explit-detach-no-advice later to maint).
|
||||
|
||||
* "git difftool" by default ignores the error exit from the backend
|
||||
commands it spawns, because often they signal that they found
|
||||
differences by exiting with a non-zero status code just like "diff"
|
||||
does; the exit status codes 126 and above however are special in
|
||||
that they are used to signal that the command is not executable,
|
||||
does not exist, or killed by a signal. "git difftool" has been
|
||||
taught to notice these exit status codes.
|
||||
(merge 45a4f5d jk/difftool-command-not-found later to maint).
|
||||
|
||||
* On Windows, help.browser configuration variable used to be ignored,
|
||||
which has been corrected.
|
||||
(merge 6db5967 js/no-html-bypass-on-windows later to maint).
|
||||
|
||||
* The "git -c var[=val] cmd" facility to append a configuration
|
||||
variable definition at the end of the search order was described in
|
||||
git(1) manual page, but not in git-config(1), which was more likely
|
||||
place for people to look for when they ask "can I make a one-shot
|
||||
override, and if so how?"
|
||||
(merge ae1f709 dg/document-git-c-in-git-config-doc later to maint).
|
||||
|
||||
* The tempfile (hence its user lockfile) API lets the caller to open
|
||||
a file descriptor to a temporary file, write into it and then
|
||||
finalize it by first closing the filehandle and then either
|
||||
removing or renaming the temporary file. When the process spawns a
|
||||
subprocess after obtaining the file descriptor, and if the
|
||||
subprocess has not exited when the attempt to remove or rename is
|
||||
made, the last step fails on Windows, because the subprocess has
|
||||
the file descriptor still open. Open tempfile with O_CLOEXEC flag
|
||||
to avoid this (on Windows, this is mapped to O_NOINHERIT).
|
||||
(merge 05d1ed6 bw/mingw-avoid-inheriting-fd-to-lockfile later to maint).
|
||||
|
||||
* Correct an age-old calco (is that a typo-like word for calc)
|
||||
in the documentation.
|
||||
(merge 7841c48 ls/packet-line-protocol-doc-fix later to maint).
|
||||
|
||||
* Other minor clean-ups and documentation updates
|
||||
(merge 02a8cfa rs/merge-add-strategies-simplification later to maint).
|
||||
(merge af4941d rs/merge-recursive-string-list-init later to maint).
|
||||
(merge 1eb47f1 rs/use-strbuf-add-unique-abbrev later to maint).
|
||||
(merge ddd0bfa jk/tighten-alloc later to maint).
|
||||
(merge ecf30b2 rs/mailinfo-lib later to maint).
|
||||
(merge 0eb75ce sg/reflog-past-root later to maint).
|
||||
(merge 4369523 hv/doc-commit-reference-style later to maint).
|
@ -1,131 +0,0 @@
|
||||
Git v2.10.1 Release Notes
|
||||
=========================
|
||||
|
||||
Fixes since v2.10
|
||||
-----------------
|
||||
|
||||
* Clarify various ways to specify the "revision ranges" in the
|
||||
documentation.
|
||||
|
||||
* "diff-highlight" script (in contrib/) learned to work better with
|
||||
"git log -p --graph" output.
|
||||
|
||||
* The test framework left the number of tests and success/failure
|
||||
count in the t/test-results directory, keyed by the name of the
|
||||
test script plus the process ID. The latter however turned out not
|
||||
to serve any useful purpose. The process ID part of the filename
|
||||
has been removed.
|
||||
|
||||
* Having a submodule whose ".git" repository is somehow corrupt
|
||||
caused a few commands that recurse into submodules loop forever.
|
||||
|
||||
* "git symbolic-ref -d HEAD" happily removes the symbolic ref, but
|
||||
the resulting repository becomes an invalid one. Teach the command
|
||||
to forbid removal of HEAD.
|
||||
|
||||
* A test spawned a short-lived background process, which sometimes
|
||||
prevented the test directory from getting removed at the end of the
|
||||
script on some platforms.
|
||||
|
||||
* Update a few tests that used to use GIT_CURL_VERBOSE to use the
|
||||
newer GIT_TRACE_CURL.
|
||||
|
||||
* Update Japanese translation for "git-gui".
|
||||
|
||||
* "git fetch http::/site/path" did not die correctly and segfaulted
|
||||
instead.
|
||||
|
||||
* "git commit-tree" stopped reading commit.gpgsign configuration
|
||||
variable that was meant for Porcelain "git commit" in Git 2.9; we
|
||||
forgot to update "git gui" to look at the configuration to match
|
||||
this change.
|
||||
|
||||
* "git log --cherry-pick" used to include merge commits as candidates
|
||||
to be matched up with other commits, resulting a lot of wasted time.
|
||||
The patch-id generation logic has been updated to ignore merges to
|
||||
avoid the wastage.
|
||||
|
||||
* The http transport (with curl-multi option, which is the default
|
||||
these days) failed to remove curl-easy handle from a curlm session,
|
||||
which led to unnecessary API failures.
|
||||
|
||||
* "git diff -W" output needs to extend the context backward to
|
||||
include the header line of the current function and also forward to
|
||||
include the body of the entire current function up to the header
|
||||
line of the next one. This process may have to merge to adjacent
|
||||
hunks, but the code forgot to do so in some cases.
|
||||
|
||||
* Performance tests done via "t/perf" did not use the same set of
|
||||
build configuration if the user relied on autoconf generated
|
||||
configuration.
|
||||
|
||||
* "git format-patch --base=..." feature that was recently added
|
||||
showed the base commit information after "-- " e-mail signature
|
||||
line, which turned out to be inconvenient. The base information
|
||||
has been moved above the signature line.
|
||||
|
||||
* Even when "git pull --rebase=preserve" (and the underlying "git
|
||||
rebase --preserve") can complete without creating any new commit
|
||||
(i.e. fast-forwards), it still insisted on having a usable ident
|
||||
information (read: user.email is set correctly), which was less
|
||||
than nice. As the underlying commands used inside "git rebase"
|
||||
would fail with a more meaningful error message and advice text
|
||||
when the bogus ident matters, this extra check was removed.
|
||||
|
||||
* "git gc --aggressive" used to limit the delta-chain length to 250,
|
||||
which is way too deep for gaining additional space savings and is
|
||||
detrimental for runtime performance. The limit has been reduced to
|
||||
50.
|
||||
|
||||
* Documentation for individual configuration variables to control use
|
||||
of color (like `color.grep`) said that their default value is
|
||||
'false', instead of saying their default is taken from `color.ui`.
|
||||
When we updated the default value for color.ui from 'false' to
|
||||
'auto' quite a while ago, all of them broke. This has been
|
||||
corrected.
|
||||
|
||||
* A shell script example in check-ref-format documentation has been
|
||||
fixed.
|
||||
|
||||
* "git checkout <word>" does not follow the usual disambiguation
|
||||
rules when the <word> can be both a rev and a path, to allow
|
||||
checking out a branch 'foo' in a project that happens to have a
|
||||
file 'foo' in the working tree without having to disambiguate.
|
||||
This was poorly documented and the check was incorrect when the
|
||||
command was run from a subdirectory.
|
||||
|
||||
* Some codepaths in "git diff" used regexec(3) on a buffer that was
|
||||
mmap(2)ed, which may not have a terminating NUL, leading to a read
|
||||
beyond the end of the mapped region. This was fixed by introducing
|
||||
a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
|
||||
extension.
|
||||
|
||||
* The procedure to build Git on Mac OS X for Travis CI hardcoded the
|
||||
internal directory structure we assumed HomeBrew uses, which was a
|
||||
no-no. The procedure has been updated to ask HomeBrew things we
|
||||
need to know to fix this.
|
||||
|
||||
* When "git rebase -i" is given a broken instruction, it told the
|
||||
user to fix it with "--edit-todo", but didn't say what the step
|
||||
after that was (i.e. "--continue").
|
||||
|
||||
* "git add --chmod=+x" added recently lacked documentation, which has
|
||||
been corrected.
|
||||
|
||||
* "git add --chmod=+x <pathspec>" added recently only toggled the
|
||||
executable bit for paths that are either new or modified. This has
|
||||
been corrected to flip the executable bit for all paths that match
|
||||
the given pathspec.
|
||||
|
||||
* "git pack-objects --include-tag" was taught that when we know that
|
||||
we are sending an object C, we want a tag B that directly points at
|
||||
C but also a tag A that points at the tag B. We used to miss the
|
||||
intermediate tag B in some cases.
|
||||
|
||||
* Documentation around tools to import from CVS was fairly outdated.
|
||||
|
||||
* In the codepath that comes up with the hostname to be used in an
|
||||
e-mail when the user didn't tell us, we looked at ai_canonname
|
||||
field in struct addrinfo without making sure it is not NULL first.
|
||||
|
||||
Also contains minor documentation updates and code clean-ups.
|
@ -1,111 +0,0 @@
|
||||
Git v2.10.2 Release Notes
|
||||
=========================
|
||||
|
||||
Fixes since v2.10.1
|
||||
-------------------
|
||||
|
||||
* The code that parses the format parameter of for-each-ref command
|
||||
has seen a micro-optimization.
|
||||
|
||||
* The "graph" API used in "git log --graph" miscounted the number of
|
||||
output columns consumed so far when drawing a padding line, which
|
||||
has been fixed; this did not affect any existing code as nobody
|
||||
tried to write anything after the padding on such a line, though.
|
||||
|
||||
* Almost everybody uses DEFAULT_ABBREV to refer to the default
|
||||
setting for the abbreviation, but "git blame" peeked into
|
||||
underlying variable bypassing the macro for no good reason.
|
||||
|
||||
* Doc update to clarify what "log -3 --reverse" does.
|
||||
|
||||
* An author name, that spelled a backslash-quoted double quote in the
|
||||
human readable part "My \"double quoted\" name", was not unquoted
|
||||
correctly while applying a patch from a piece of e-mail.
|
||||
|
||||
* The original command line syntax for "git merge", which was "git
|
||||
merge <msg> HEAD <parent>...", has been deprecated for quite some
|
||||
time, and "git gui" was the last in-tree user of the syntax. This
|
||||
is finally fixed, so that we can move forward with the deprecation.
|
||||
|
||||
* Codepaths that read from an on-disk loose object were too loose in
|
||||
validating what they are reading is a proper object file and
|
||||
sometimes read past the data they read from the disk, which has
|
||||
been corrected. H/t to Gustavo Grieco for reporting.
|
||||
|
||||
* "git worktree", even though it used the default_abbrev setting that
|
||||
ought to be affected by core.abbrev configuration variable, ignored
|
||||
the variable setting. The command has been taught to read the
|
||||
default set of configuration variables to correct this.
|
||||
|
||||
* A low-level function verify_packfile() was meant to show errors
|
||||
that were detected without dying itself, but under some conditions
|
||||
it didn't and died instead, which has been fixed.
|
||||
|
||||
* When "git fetch" tries to find where the history of the repository
|
||||
it runs in has diverged from what the other side has, it has a
|
||||
mechanism to avoid digging too deep into irrelevant side branches.
|
||||
This however did not work well over the "smart-http" transport due
|
||||
to a design bug, which has been fixed.
|
||||
|
||||
* When we started cURL to talk to imap server when a new enough
|
||||
version of cURL library is available, we forgot to explicitly add
|
||||
imap(s):// before the destination. To some folks, that didn't work
|
||||
and the library tried to make HTTP(s) requests instead.
|
||||
|
||||
* The ./configure script generated from configure.ac was taught how
|
||||
to detect support of SSL by libcurl better.
|
||||
|
||||
* http.emptyauth configuration is a way to allow an empty username to
|
||||
pass when attempting to authenticate using mechanisms like
|
||||
Kerberos. We took an unspecified (NULL) username and sent ":"
|
||||
(i.e. no username, no password) to CURLOPT_USERPWD, but did not do
|
||||
the same when the username is explicitly set to an empty string.
|
||||
|
||||
* "git clone" of a local repository can be done at the filesystem
|
||||
level, but the codepath did not check errors while copying and
|
||||
adjusting the file that lists alternate object stores.
|
||||
|
||||
* Documentation for "git commit" was updated to clarify that "commit
|
||||
-p <paths>" adds to the current contents of the index to come up
|
||||
with what to commit.
|
||||
|
||||
* A stray symbolic link in $GIT_DIR/refs/ directory could make name
|
||||
resolution loop forever, which has been corrected.
|
||||
|
||||
* The "submodule.<name>.path" stored in .gitmodules is never copied
|
||||
to .git/config and such a key in .git/config has no meaning, but
|
||||
the documentation described it and submodule.<name>.url next to
|
||||
each other as if both belong to .git/config. This has been fixed.
|
||||
|
||||
* Recent git allows submodule.<name>.branch to use a special token
|
||||
"." instead of the branch name; the documentation has been updated
|
||||
to describe it.
|
||||
|
||||
* In a worktree connected to a repository elsewhere, created via "git
|
||||
worktree", "git checkout" attempts to protect users from confusion
|
||||
by refusing to check out a branch that is already checked out in
|
||||
another worktree. However, this also prevented checking out a
|
||||
branch, which is designated as the primary branch of a bare
|
||||
reopsitory, in a worktree that is connected to the bare
|
||||
repository. The check has been corrected to allow it.
|
||||
|
||||
* "git rebase" immediately after "git clone" failed to find the fork
|
||||
point from the upstream.
|
||||
|
||||
* When fetching from a remote that has many tags that are irrelevant
|
||||
to branches we are following, we used to waste way too many cycles
|
||||
when checking if the object pointed at by a tag (that we are not
|
||||
going to fetch!) exists in our repository too carefully.
|
||||
|
||||
* The Travis CI configuration we ship ran the tests with --verbose
|
||||
option but this risks non-TAP output that happens to be "ok" to be
|
||||
misinterpreted as TAP signalling a test that passed. This resulted
|
||||
in unnecessary failure. This has been corrected by introducing a
|
||||
new mode to run our tests in the test harness to send the verbose
|
||||
output separately to the log file.
|
||||
|
||||
* Some AsciiDoc formatter mishandles a displayed illustration with
|
||||
tabs in it. Adjust a few of them in merge-base documentation to
|
||||
work around them.
|
||||
|
||||
Also contains minor documentation updates and code clean-ups.
|
@ -1,588 +0,0 @@
|
||||
Git 2.11 Release Notes
|
||||
======================
|
||||
|
||||
Backward compatibility notes.
|
||||
|
||||
* An empty string used as a pathspec element has always meant
|
||||
'everything matches', but it is too easy to write a script that
|
||||
finds a path to remove in $path and run 'git rm "$paht"' by
|
||||
mistake (when the user meant to give "$path"), which ends up
|
||||
removing everything. This release starts warning about the
|
||||
use of an empty string that is used for 'everything matches' and
|
||||
asks users to use a more explicit '.' for that instead.
|
||||
|
||||
The hope is that existing users will not mind this change, and
|
||||
eventually the warning can be turned into a hard error, upgrading
|
||||
the deprecation into removal of this (mis)feature.
|
||||
|
||||
* The historical argument order "git merge <msg> HEAD <commit>..."
|
||||
has been deprecated for quite some time, and will be removed in the
|
||||
next release (not this one).
|
||||
|
||||
* The default abbreviation length, which has historically been 7, now
|
||||
scales as the repository grows, using the approximate number of
|
||||
objects in the repository and a bit of math around the birthday
|
||||
paradox. The logic suggests to use 12 hexdigits for the Linux
|
||||
kernel, and 9 to 10 for Git itself.
|
||||
|
||||
|
||||
Updates since v2.10
|
||||
-------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* Comes with new version of git-gui, now at its 0.21.0 tag.
|
||||
|
||||
* "git format-patch --cover-letter HEAD^" to format a single patch
|
||||
with a separate cover letter now numbers the output as [PATCH 0/1]
|
||||
and [PATCH 1/1] by default.
|
||||
|
||||
* An incoming "git push" that attempts to push too many bytes can now
|
||||
be rejected by setting a new configuration variable at the receiving
|
||||
end.
|
||||
|
||||
* "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
|
||||
which was not intuitive, given that "git nosuchcommand" said "git:
|
||||
'nosuchcommand' is not a git command".
|
||||
|
||||
* "git clone --recurse-submodules --reference $path $URL" is a way to
|
||||
reduce network transfer cost by borrowing objects in an existing
|
||||
$path repository when cloning the superproject from $URL; it
|
||||
learned to also peek into $path for presence of corresponding
|
||||
repositories of submodules and borrow objects from there when able.
|
||||
|
||||
* The "git diff --submodule={short,log}" mechanism has been enhanced
|
||||
to allow "--submodule=diff" to show the patch between the submodule
|
||||
commits bound to the superproject.
|
||||
|
||||
* Even though "git hash-objects", which is a tool to take an
|
||||
on-filesystem data stream and put it into the Git object store,
|
||||
allowed to perform the "outside-world-to-Git" conversions (e.g.
|
||||
end-of-line conversions and application of the clean-filter), and
|
||||
it had the feature on by default from very early days, its reverse
|
||||
operation "git cat-file", which takes an object from the Git object
|
||||
store and externalize for the consumption by the outside world,
|
||||
lacked an equivalent mechanism to run the "Git-to-outside-world"
|
||||
conversion. The command learned the "--filters" option to do so.
|
||||
|
||||
* Output from "git diff" can be made easier to read by selecting
|
||||
which lines are common and which lines are added/deleted
|
||||
intelligently when the lines before and after the changed section
|
||||
are the same. A command line option is added to help with the
|
||||
experiment to find a good heuristics.
|
||||
|
||||
* In some projects, it is common to use "[RFC PATCH]" as the subject
|
||||
prefix for a patch meant for discussion rather than application. A
|
||||
new option "--rfc" is a short-hand for "--subject-prefix=RFC PATCH"
|
||||
to help the participants of such projects.
|
||||
|
||||
* "git add --chmod=+x <pathspec>" added recently only toggled the
|
||||
executable bit for paths that are either new or modified. This has
|
||||
been corrected to flip the executable bit for all paths that match
|
||||
the given pathspec.
|
||||
|
||||
* When "git format-patch --stdout" output is placed as an in-body
|
||||
header and it uses the RFC2822 header folding, "git am" failed to
|
||||
put the header line back into a single logical line. The
|
||||
underlying "git mailinfo" was taught to handle this properly.
|
||||
|
||||
* "gitweb" can spawn "highlight" to show blob contents with
|
||||
(programming) language-specific syntax highlighting, but only
|
||||
when the language is known. "highlight" can however be told
|
||||
to make the guess itself by giving it "--force" option, which
|
||||
has been enabled.
|
||||
|
||||
* "git gui" l10n to Portuguese.
|
||||
|
||||
* When given an abbreviated object name that is not (or more
|
||||
realistically, "no longer") unique, we gave a fatal error
|
||||
"ambiguous argument". This error is now accompanied by a hint that
|
||||
lists the objects beginning with the given prefix. During the
|
||||
course of development of this new feature, numerous minor bugs were
|
||||
uncovered and corrected, the most notable one of which is that we
|
||||
gave "short SHA1 xxxx is ambiguous." twice without good reason.
|
||||
|
||||
* "git log rev^..rev" is an often-used revision range specification
|
||||
to show what was done on a side branch merged at rev. This has
|
||||
gained a short-hand "rev^-1". In general "rev^-$n" is the same as
|
||||
"^rev^$n rev", i.e. what has happened on other branches while the
|
||||
history leading to nth parent was looking the other way.
|
||||
|
||||
* In recent versions of cURL, GSSAPI credential delegation is
|
||||
disabled by default due to CVE-2011-2192; introduce a configuration
|
||||
to selectively allow enabling this.
|
||||
(merge 26a7b23429 ps/http-gssapi-cred-delegation later to maint).
|
||||
|
||||
* "git mergetool" learned to honor "-O<orderfile>" to control the
|
||||
order of paths to present to the end user.
|
||||
|
||||
* "git diff/log --ws-error-highlight=<kind>" lacked the corresponding
|
||||
configuration variable to set it by default.
|
||||
|
||||
* "git ls-files" learned "--recurse-submodules" option that can be
|
||||
used to get a listing of tracked files across submodules (i.e. this
|
||||
only works with "--cached" option, not for listing untracked or
|
||||
ignored files). This would be a useful tool to sit on the upstream
|
||||
side of a pipe that is read with xargs to work on all working tree
|
||||
files from the top-level superproject.
|
||||
|
||||
* A new credential helper that talks via "libsecret" with
|
||||
implementations of XDG Secret Service API has been added to
|
||||
contrib/credential/.
|
||||
|
||||
* The GPG verification status shown in "%G?" pretty format specifier
|
||||
was not rich enough to differentiate a signature made by an expired
|
||||
key, a signature made by a revoked key, etc. New output letters
|
||||
have been assigned to express them.
|
||||
|
||||
* In addition to purely abbreviated commit object names, "gitweb"
|
||||
learned to turn "git describe" output (e.g. v2.9.3-599-g2376d31787)
|
||||
into clickable links in its output.
|
||||
|
||||
* When new paths were added by "git add -N" to the index, it was
|
||||
enough to circumvent the check by "git commit" to refrain from
|
||||
making an empty commit without "--allow-empty". The same logic
|
||||
prevented "git status" to show such a path as "new file" in the
|
||||
"Changes not staged for commit" section.
|
||||
|
||||
* The smudge/clean filter API expect an external process is spawned
|
||||
to filter the contents for each path that has a filter defined. A
|
||||
new type of "process" filter API has been added to allow the first
|
||||
request to run the filter for a path to spawn a single process, and
|
||||
all filtering need is served by this single process for multiple
|
||||
paths, reducing the process creation overhead.
|
||||
|
||||
* The user always has to say "stash@{$N}" when naming a single
|
||||
element in the default location of the stash, i.e. reflogs in
|
||||
refs/stash. The "git stash" command learned to accept "git stash
|
||||
apply 4" as a short-hand for "git stash apply stash@{4}".
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* The delta-base-cache mechanism has been a key to the performance in
|
||||
a repository with a tightly packed packfile, but it did not scale
|
||||
well even with a larger value of core.deltaBaseCacheLimit.
|
||||
|
||||
* Enhance "git status --porcelain" output by collecting more data on
|
||||
the state of the index and the working tree files, which may
|
||||
further be used to teach git-prompt (in contrib/) to make fewer
|
||||
calls to git.
|
||||
|
||||
* Extract a small helper out of the function that reads the authors
|
||||
script file "git am" internally uses.
|
||||
(merge a77598e jc/am-read-author-file later to maint).
|
||||
|
||||
* Lifts calls to exit(2) and die() higher in the callchain in
|
||||
sequencer.c files so that more helper functions in it can be used
|
||||
by callers that want to handle error conditions themselves.
|
||||
|
||||
* "git am" has been taught to make an internal call to "git apply"'s
|
||||
innards without spawning the latter as a separate process.
|
||||
|
||||
* The ref-store abstraction was introduced to the refs API so that we
|
||||
can plug in different backends to store references.
|
||||
|
||||
* The "unsigned char sha1[20]" to "struct object_id" conversion
|
||||
continues. Notable changes in this round includes that ce->sha1,
|
||||
i.e. the object name recorded in the cache_entry, turns into an
|
||||
object_id.
|
||||
|
||||
* JGit can show a fake ref "capabilities^{}" to "git fetch" when it
|
||||
does not advertise any refs, but "git fetch" was not prepared to
|
||||
see such an advertisement. When the other side disconnects without
|
||||
giving any ref advertisement, we used to say "there may not be a
|
||||
repository at that URL", but we may have seen other advertisement
|
||||
like "shallow" and ".have" in which case we definitely know that a
|
||||
repository is there. The code to detect this case has also been
|
||||
updated.
|
||||
|
||||
* Some codepaths in "git pack-objects" were not ready to use an
|
||||
existing pack bitmap; now they are and as the result they have
|
||||
become faster.
|
||||
|
||||
* The codepath in "git fsck" to detect malformed tree objects has
|
||||
been updated not to die but keep going after detecting them.
|
||||
|
||||
* We call "qsort(array, nelem, sizeof(array[0]), fn)", and most of
|
||||
the time third parameter is redundant. A new QSORT() macro lets us
|
||||
omit it.
|
||||
|
||||
* "git pack-objects" in a repository with many packfiles used to
|
||||
spend a lot of time looking for/at objects in them; the accesses to
|
||||
the packfiles are now optimized by checking the most-recently-used
|
||||
packfile first.
|
||||
(merge c9af708b1a jk/pack-objects-optim-mru later to maint).
|
||||
|
||||
* Codepaths involved in interacting alternate object store have
|
||||
been cleaned up.
|
||||
|
||||
* In order for the receiving end of "git push" to inspect the
|
||||
received history and decide to reject the push, the objects sent
|
||||
from the sending end need to be made available to the hook and
|
||||
the mechanism for the connectivity check, and this was done
|
||||
traditionally by storing the objects in the receiving repository
|
||||
and letting "git gc" to expire it. Instead, store the newly
|
||||
received objects in a temporary area, and make them available by
|
||||
reusing the alternate object store mechanism to them only while we
|
||||
decide if we accept the check, and once we decide, either migrate
|
||||
them to the repository or purge them immediately.
|
||||
|
||||
* The require_clean_work_tree() helper was recreated in C when "git
|
||||
pull" was rewritten from shell; the helper is now made available to
|
||||
other callers in preparation for upcoming "rebase -i" work.
|
||||
|
||||
* "git upload-pack" had its code cleaned-up and performance improved
|
||||
by reducing use of timestamp-ordered commit-list, which was
|
||||
replaced with a priority queue.
|
||||
|
||||
* "git diff --no-index" codepath has been updated not to try to peek
|
||||
into .git/ directory that happens to be under the current
|
||||
directory, when we know we are operating outside any repository.
|
||||
|
||||
* Update of the sequencer codebase to make it reusable to reimplement
|
||||
"rebase -i" continues.
|
||||
|
||||
* Git generally does not explicitly close file descriptors that were
|
||||
open in the parent process when spawning a child process, but most
|
||||
of the time the child does not want to access them. As Windows does
|
||||
not allow removing or renaming a file that has a file descriptor
|
||||
open, a slow-to-exit child can even break the parent process by
|
||||
holding onto them. Use O_CLOEXEC flag to open files in various
|
||||
codepaths.
|
||||
|
||||
* Update "interpret-trailers" machinery and teaches it that people in
|
||||
real world write all sorts of crufts in the "trailer" that was
|
||||
originally designed to have the neat-o "Mail-Header: like thing"
|
||||
and nothing else.
|
||||
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
||||
|
||||
|
||||
Fixes since v2.10
|
||||
-----------------
|
||||
|
||||
Unless otherwise noted, all the fixes since v2.9 in the maintenance
|
||||
track are contained in this release (see the maintenance releases'
|
||||
notes for details).
|
||||
|
||||
* Clarify various ways to specify the "revision ranges" in the
|
||||
documentation.
|
||||
|
||||
* "diff-highlight" script (in contrib/) learned to work better with
|
||||
"git log -p --graph" output.
|
||||
|
||||
* The test framework left the number of tests and success/failure
|
||||
count in the t/test-results directory, keyed by the name of the
|
||||
test script plus the process ID. The latter however turned out not
|
||||
to serve any useful purpose. The process ID part of the filename
|
||||
has been removed.
|
||||
|
||||
* Having a submodule whose ".git" repository is somehow corrupt
|
||||
caused a few commands that recurse into submodules loop forever.
|
||||
|
||||
* "git symbolic-ref -d HEAD" happily removes the symbolic ref, but
|
||||
the resulting repository becomes an invalid one. Teach the command
|
||||
to forbid removal of HEAD.
|
||||
|
||||
* A test spawned a short-lived background process, which sometimes
|
||||
prevented the test directory from getting removed at the end of the
|
||||
script on some platforms.
|
||||
|
||||
* Update a few tests that used to use GIT_CURL_VERBOSE to use the
|
||||
newer GIT_TRACE_CURL.
|
||||
|
||||
* "git pack-objects --include-tag" was taught that when we know that
|
||||
we are sending an object C, we want a tag B that directly points at
|
||||
C but also a tag A that points at the tag B. We used to miss the
|
||||
intermediate tag B in some cases.
|
||||
|
||||
* Update Japanese translation for "git-gui".
|
||||
|
||||
* "git fetch http::/site/path" did not die correctly and segfaulted
|
||||
instead.
|
||||
|
||||
* "git commit-tree" stopped reading commit.gpgsign configuration
|
||||
variable that was meant for Porcelain "git commit" in Git 2.9; we
|
||||
forgot to update "git gui" to look at the configuration to match
|
||||
this change.
|
||||
|
||||
* "git add --chmod=+x" added recently lacked documentation, which has
|
||||
been corrected.
|
||||
|
||||
* "git log --cherry-pick" used to include merge commits as candidates
|
||||
to be matched up with other commits, resulting a lot of wasted time.
|
||||
The patch-id generation logic has been updated to ignore merges to
|
||||
avoid the wastage.
|
||||
|
||||
* The http transport (with curl-multi option, which is the default
|
||||
these days) failed to remove curl-easy handle from a curlm session,
|
||||
which led to unnecessary API failures.
|
||||
|
||||
* There were numerous corner cases in which the configuration files
|
||||
are read and used or not read at all depending on the directory a
|
||||
Git command was run, leading to inconsistent behaviour. The code
|
||||
to set-up repository access at the beginning of a Git process has
|
||||
been updated to fix them.
|
||||
(merge 4d0efa1 jk/setup-sequence-update later to maint).
|
||||
|
||||
* "git diff -W" output needs to extend the context backward to
|
||||
include the header line of the current function and also forward to
|
||||
include the body of the entire current function up to the header
|
||||
line of the next one. This process may have to merge two adjacent
|
||||
hunks, but the code forgot to do so in some cases.
|
||||
|
||||
* Performance tests done via "t/perf" did not use the same set of
|
||||
build configuration if the user relied on autoconf generated
|
||||
configuration.
|
||||
|
||||
* "git format-patch --base=..." feature that was recently added
|
||||
showed the base commit information after "-- " e-mail signature
|
||||
line, which turned out to be inconvenient. The base information
|
||||
has been moved above the signature line.
|
||||
|
||||
* More i18n.
|
||||
|
||||
* Even when "git pull --rebase=preserve" (and the underlying "git
|
||||
rebase --preserve") can complete without creating any new commit
|
||||
(i.e. fast-forwards), it still insisted on having a usable ident
|
||||
information (read: user.email is set correctly), which was less
|
||||
than nice. As the underlying commands used inside "git rebase"
|
||||
would fail with a more meaningful error message and advice text
|
||||
when the bogus ident matters, this extra check was removed.
|
||||
|
||||
* "git gc --aggressive" used to limit the delta-chain length to 250,
|
||||
which is way too deep for gaining additional space savings and is
|
||||
detrimental for runtime performance. The limit has been reduced to
|
||||
50.
|
||||
|
||||
* Documentation for individual configuration variables to control use
|
||||
of color (like `color.grep`) said that their default value is
|
||||
'false', instead of saying their default is taken from `color.ui`.
|
||||
When we updated the default value for color.ui from 'false' to
|
||||
'auto' quite a while ago, all of them broke. This has been
|
||||
corrected.
|
||||
|
||||
* The pretty-format specifier "%C(auto)" used by the "log" family of
|
||||
commands to enable coloring of the output is taught to also issue a
|
||||
color-reset sequence to the output.
|
||||
|
||||
* A shell script example in check-ref-format documentation has been
|
||||
fixed.
|
||||
|
||||
* "git checkout <word>" does not follow the usual disambiguation
|
||||
rules when the <word> can be both a rev and a path, to allow
|
||||
checking out a branch 'foo' in a project that happens to have a
|
||||
file 'foo' in the working tree without having to disambiguate.
|
||||
This was poorly documented and the check was incorrect when the
|
||||
command was run from a subdirectory.
|
||||
|
||||
* Some codepaths in "git diff" used regexec(3) on a buffer that was
|
||||
mmap(2)ed, which may not have a terminating NUL, leading to a read
|
||||
beyond the end of the mapped region. This was fixed by introducing
|
||||
a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
|
||||
extension.
|
||||
|
||||
* The procedure to build Git on Mac OS X for Travis CI hardcoded the
|
||||
internal directory structure we assumed HomeBrew uses, which was a
|
||||
no-no. The procedure has been updated to ask HomeBrew things we
|
||||
need to know to fix this.
|
||||
|
||||
* When "git rebase -i" is given a broken instruction, it told the
|
||||
user to fix it with "--edit-todo", but didn't say what the step
|
||||
after that was (i.e. "--continue").
|
||||
|
||||
* Documentation around tools to import from CVS was fairly outdated.
|
||||
|
||||
* "git clone --recurse-submodules" lost the progress eye-candy in
|
||||
recent update, which has been corrected.
|
||||
|
||||
* A low-level function verify_packfile() was meant to show errors
|
||||
that were detected without dying itself, but under some conditions
|
||||
it didn't and died instead, which has been fixed.
|
||||
|
||||
* When "git fetch" tries to find where the history of the repository
|
||||
it runs in has diverged from what the other side has, it has a
|
||||
mechanism to avoid digging too deep into irrelevant side branches.
|
||||
This however did not work well over the "smart-http" transport due
|
||||
to a design bug, which has been fixed.
|
||||
|
||||
* In the codepath that comes up with the hostname to be used in an
|
||||
e-mail when the user didn't tell us, we looked at ai_canonname
|
||||
field in struct addrinfo without making sure it is not NULL first.
|
||||
|
||||
* "git worktree", even though it used the default_abbrev setting that
|
||||
ought to be affected by core.abbrev configuration variable, ignored
|
||||
the variable setting. The command has been taught to read the
|
||||
default set of configuration variables to correct this.
|
||||
|
||||
* "git init" tried to record core.worktree in the repository's
|
||||
'config' file when GIT_WORK_TREE environment variable was set and
|
||||
it was different from where GIT_DIR appears as ".git" at its top,
|
||||
but the logic was faulty when .git is a "gitdir:" file that points
|
||||
at the real place, causing trouble in working trees that are
|
||||
managed by "git worktree". This has been corrected.
|
||||
|
||||
* Codepaths that read from an on-disk loose object were too loose in
|
||||
validating what they are reading is a proper object file and
|
||||
sometimes read past the data they read from the disk, which has
|
||||
been corrected. H/t to Gustavo Grieco for reporting.
|
||||
|
||||
* The original command line syntax for "git merge", which was "git
|
||||
merge <msg> HEAD <parent>...", has been deprecated for quite some
|
||||
time, and "git gui" was the last in-tree user of the syntax. This
|
||||
is finally fixed, so that we can move forward with the deprecation.
|
||||
|
||||
* An author name, that spelled a backslash-quoted double quote in the
|
||||
human readable part "My \"double quoted\" name", was not unquoted
|
||||
correctly while applying a patch from a piece of e-mail.
|
||||
|
||||
* Doc update to clarify what "log -3 --reverse" does.
|
||||
|
||||
* Almost everybody uses DEFAULT_ABBREV to refer to the default
|
||||
setting for the abbreviation, but "git blame" peeked into
|
||||
underlying variable bypassing the macro for no good reason.
|
||||
|
||||
* The "graph" API used in "git log --graph" miscounted the number of
|
||||
output columns consumed so far when drawing a padding line, which
|
||||
has been fixed; this did not affect any existing code as nobody
|
||||
tried to write anything after the padding on such a line, though.
|
||||
|
||||
* The code that parses the format parameter of for-each-ref command
|
||||
has seen a micro-optimization.
|
||||
|
||||
* When we started cURL to talk to imap server when a new enough
|
||||
version of cURL library is available, we forgot to explicitly add
|
||||
imap(s):// before the destination. To some folks, that didn't work
|
||||
and the library tried to make HTTP(s) requests instead.
|
||||
|
||||
* The ./configure script generated from configure.ac was taught how
|
||||
to detect support of SSL by libcurl better.
|
||||
|
||||
* The command-line completion script (in contrib/) learned to
|
||||
complete "git cmd ^mas<HT>" to complete the negative end of
|
||||
reference to "git cmd ^master".
|
||||
(merge 49416ad22a cp/completion-negative-refs later to maint).
|
||||
|
||||
* The existing "git fetch --depth=<n>" option was hard to use
|
||||
correctly when making the history of an existing shallow clone
|
||||
deeper. A new option, "--deepen=<n>", has been added to make this
|
||||
easier to use. "git clone" also learned "--shallow-since=<date>"
|
||||
and "--shallow-exclude=<tag>" options to make it easier to specify
|
||||
"I am interested only in the recent N months worth of history" and
|
||||
"Give me only the history since that version".
|
||||
(merge cccf74e2da nd/shallow-deepen later to maint).
|
||||
|
||||
* It is a common mistake to say "git blame --reverse OLD path",
|
||||
expecting that the command line is dwimmed as if asking how lines
|
||||
in path in an old revision OLD have survived up to the current
|
||||
commit.
|
||||
(merge e1d09701a4 jc/blame-reverse later to maint).
|
||||
|
||||
* http.emptyauth configuration is a way to allow an empty username to
|
||||
pass when attempting to authenticate using mechanisms like
|
||||
Kerberos. We took an unspecified (NULL) username and sent ":"
|
||||
(i.e. no username, no password) to CURLOPT_USERPWD, but did not do
|
||||
the same when the username is explicitly set to an empty string.
|
||||
|
||||
* "git clone" of a local repository can be done at the filesystem
|
||||
level, but the codepath did not check errors while copying and
|
||||
adjusting the file that lists alternate object stores.
|
||||
|
||||
* Documentation for "git commit" was updated to clarify that "commit
|
||||
-p <paths>" adds to the current contents of the index to come up
|
||||
with what to commit.
|
||||
|
||||
* A stray symbolic link in $GIT_DIR/refs/ directory could make name
|
||||
resolution loop forever, which has been corrected.
|
||||
|
||||
* The "submodule.<name>.path" stored in .gitmodules is never copied
|
||||
to .git/config and such a key in .git/config has no meaning, but
|
||||
the documentation described it and submodule.<name>.url next to
|
||||
each other as if both belong to .git/config. This has been fixed.
|
||||
|
||||
* In a worktree connected to a repository elsewhere, created via "git
|
||||
worktree", "git checkout" attempts to protect users from confusion
|
||||
by refusing to check out a branch that is already checked out in
|
||||
another worktree. However, this also prevented checking out a
|
||||
branch, which is designated as the primary branch of a bare
|
||||
reopsitory, in a worktree that is connected to the bare
|
||||
repository. The check has been corrected to allow it.
|
||||
|
||||
* "git rebase" immediately after "git clone" failed to find the fork
|
||||
point from the upstream.
|
||||
|
||||
* When fetching from a remote that has many tags that are irrelevant
|
||||
to branches we are following, we used to waste way too many cycles
|
||||
when checking if the object pointed at by a tag (that we are not
|
||||
going to fetch!) exists in our repository too carefully.
|
||||
|
||||
* Protect our code from over-eager compilers.
|
||||
|
||||
* Recent git allows submodule.<name>.branch to use a special token
|
||||
"." instead of the branch name; the documentation has been updated
|
||||
to describe it.
|
||||
|
||||
* A hot-fix for a test added by a recent topic that went to both
|
||||
'master' and 'maint' already.
|
||||
|
||||
* "git send-email" attempts to pick up valid e-mails from the
|
||||
trailers, but people in real world write non-addresses there, like
|
||||
"Cc: Stable <add@re.ss> # 4.8+", which broke the output depending
|
||||
on the availability and vintage of Mail::Address perl module.
|
||||
(merge dcfafc5214 mm/send-email-cc-cruft-after-address later to maint).
|
||||
|
||||
* The Travis CI configuration we ship ran the tests with --verbose
|
||||
option but this risks non-TAP output that happens to be "ok" to be
|
||||
misinterpreted as TAP signalling a test that passed. This resulted
|
||||
in unnecessary failure. This has been corrected by introducing a
|
||||
new mode to run our tests in the test harness to send the verbose
|
||||
output separately to the log file.
|
||||
|
||||
* Some AsciiDoc formatter mishandles a displayed illustration with
|
||||
tabs in it. Adjust a few of them in merge-base documentation to
|
||||
work around them.
|
||||
|
||||
* A minor regression fix for "git submodule" that was introduced
|
||||
when more helper functions were reimplemented in C.
|
||||
(merge 77b63ac31e sb/submodule-ignore-trailing-slash later to maint).
|
||||
|
||||
* The code that we have used for the past 10+ years to cycle
|
||||
4-element ring buffers turns out to be not quite portable in
|
||||
theoretical world.
|
||||
(merge bb84735c80 rs/ring-buffer-wraparound later to maint).
|
||||
|
||||
* "git daemon" used fixed-length buffers to turn URL to the
|
||||
repository the client asked for into the server side directory
|
||||
path, using snprintf() to avoid overflowing these buffers, but
|
||||
allowed possibly truncated paths to the directory. This has been
|
||||
tightened to reject such a request that causes overlong path to be
|
||||
required to serve.
|
||||
(merge 6bdb0083be jk/daemon-path-ok-check-truncation later to maint).
|
||||
|
||||
* Recent update to git-sh-setup (a library of shell functions that
|
||||
are used by our in-tree scripted Porcelain commands) included
|
||||
another shell library git-sh-i18n without specifying where it is,
|
||||
relying on the $PATH. This has been fixed to be more explicit by
|
||||
prefixing $(git --exec-path) output in front.
|
||||
(merge 1073094f30 ak/sh-setup-dot-source-i18n-fix later to maint).
|
||||
|
||||
* Fix for a racy false-positive test failure.
|
||||
(merge fdf4f6c79b as/merge-attr-sleep later to maint).
|
||||
|
||||
* Portability update and workaround for builds on recent Mac OS X.
|
||||
(merge a296bc0132 ls/macos-update later to maint).
|
||||
|
||||
* Other minor doc, test and build updates and code cleanups.
|
||||
(merge 5c238e29a8 jk/common-main later to maint).
|
||||
(merge 5a5749e45b ak/pre-receive-hook-template-modefix later to maint).
|
||||
(merge 6d834ac8f1 jk/rebase-config-insn-fmt-docfix later to maint).
|
||||
(merge de9f7fa3b0 rs/commit-pptr-simplify later to maint).
|
||||
(merge 4259d693fc sc/fmt-merge-msg-doc-markup-fix later to maint).
|
||||
(merge 28fab7b23d nd/test-helpers later to maint).
|
||||
(merge c2bb0c1d1e rs/cocci later to maint).
|
||||
(merge 3285b7badb ps/common-info-doc later to maint).
|
||||
(merge 2b090822e8 nd/worktree-lock later to maint).
|
||||
(merge 4bd488ea7c jk/create-branch-remove-unused-param later to maint).
|
||||
(merge 974e0044d6 tk/diffcore-delta-remove-unused later to maint).
|
@ -7,7 +7,7 @@ Fixes since v2.3.9
|
||||
* 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 somewhere
|
||||
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
|
||||
|
@ -7,7 +7,7 @@ Fixes since v2.4.9
|
||||
* 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 somewhere
|
||||
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
|
||||
|
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").
|
@ -7,7 +7,7 @@ Fixes since v2.5.4
|
||||
* 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 somewhere
|
||||
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
|
||||
|
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").
|
@ -7,7 +7,7 @@ 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 somewhere
|
||||
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
|
||||
|
12
Documentation/RelNotes/2.6.7.txt
Normal file
12
Documentation/RelNotes/2.6.7.txt
Normal file
@ -0,0 +1,12 @@
|
||||
Git v2.6.7 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.6.6
|
||||
------------------
|
||||
|
||||
* "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").
|
14
Documentation/RelNotes/2.7.5.txt
Normal file
14
Documentation/RelNotes/2.7.5.txt
Normal file
@ -0,0 +1,14 @@
|
||||
Git v2.7.5 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.7.4
|
||||
------------------
|
||||
|
||||
* "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").
|
||||
|
||||
Also contains a few fixes backported from later development tracks.
|
@ -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.
|
@ -1,512 +0,0 @@
|
||||
Git 2.9 Release Notes
|
||||
=====================
|
||||
|
||||
Backward compatibility notes
|
||||
----------------------------
|
||||
|
||||
The end-user facing Porcelain level commands in the "git diff" and
|
||||
"git log" family by default enable the rename detection; you can still
|
||||
use "diff.renames" configuration variable to disable this.
|
||||
|
||||
Merging two branches that have no common ancestor with "git merge" is
|
||||
by default forbidden now to prevent creating such an unusual merge by
|
||||
mistake.
|
||||
|
||||
The output formats of "git log" that indents the commit log message by
|
||||
4 spaces now expands HT in the log message by default. You can use
|
||||
the "--no-expand-tabs" option to disable this.
|
||||
|
||||
"git commit-tree" plumbing command required the user to always sign
|
||||
its result when the user sets the commit.gpgsign configuration
|
||||
variable, which was an ancient mistake, which this release corrects.
|
||||
A script that drives commit-tree, if it relies on this mistake, now
|
||||
needs to read commit.gpgsign and pass the -S option as necessary.
|
||||
|
||||
|
||||
Updates since v2.8
|
||||
------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* Comes with git-multimail 1.3.1 (in contrib/).
|
||||
|
||||
* The end-user facing commands like "git diff" and "git log"
|
||||
now enable the rename detection by default.
|
||||
|
||||
* The credential.helper configuration variable is cumulative and
|
||||
there is no good way to override it from the command line. As
|
||||
a special case, giving an empty string as its value now serves
|
||||
as the signal to clear the values specified in various files.
|
||||
|
||||
* A new "interactive.diffFilter" configuration can be used to
|
||||
customize the diff shown in "git add -i" sessions.
|
||||
|
||||
* "git p4" now allows P4 author names to be mapped to Git author
|
||||
names.
|
||||
|
||||
* "git rebase -x" can be used without passing "-i" option.
|
||||
|
||||
* "git -c credential.<var>=<value> submodule" can now be used to
|
||||
propagate configuration variables related to credential helper
|
||||
down to the submodules.
|
||||
|
||||
* "git tag" can create an annotated tag without explicitly given an
|
||||
"-a" (or "-s") option (i.e. when a tag message is given). A new
|
||||
configuration variable, tag.forceSignAnnotated, can be used to tell
|
||||
the command to create signed tag in such a situation.
|
||||
|
||||
* "git merge" used to allow merging two branches that have no common
|
||||
base by default, which led to a brand new history of an existing
|
||||
project created and then get pulled by an unsuspecting maintainer,
|
||||
which allowed an unnecessary parallel history merged into the
|
||||
existing project. The command has been taught not to allow this by
|
||||
default, with an escape hatch "--allow-unrelated-histories" option
|
||||
to be used in a rare event that merges histories of two projects
|
||||
that started their lives independently.
|
||||
|
||||
* "git pull" has been taught to pass the "--allow-unrelated-histories"
|
||||
option to underlying "git merge".
|
||||
|
||||
* "git apply -v" learned to report paths in the patch that were
|
||||
skipped via --include/--exclude mechanism or being outside the
|
||||
current working directory.
|
||||
|
||||
* Shell completion (in contrib/) updates.
|
||||
|
||||
* The commit object name reported when "rebase -i" stops has been
|
||||
shortened.
|
||||
|
||||
* "git worktree add" can be given "--no-checkout" option to only
|
||||
create an empty worktree without checking out the files.
|
||||
|
||||
* "git mergetools" learned to drive ExamDiff.
|
||||
|
||||
* "git pull --rebase" learned "--[no-]autostash" option, so that
|
||||
the rebase.autostash configuration variable set to true can be
|
||||
overridden from the command line.
|
||||
|
||||
* When "git log" shows the log message indented by 4-spaces, the
|
||||
remainder of a line after a HT does not align in the way the author
|
||||
originally intended. The command now expands tabs by default to help
|
||||
such a case, and allows the users to override it with a new option,
|
||||
"--no-expand-tabs".
|
||||
|
||||
* "git send-email" now uses a more readable timestamps when
|
||||
formulating a message ID.
|
||||
|
||||
* "git rerere" can encounter two or more files with the same conflict
|
||||
signature that have to be resolved in different ways, but there was
|
||||
no way to record these separate resolutions.
|
||||
|
||||
* "git p4" learned to record P4 jobs in Git commit that imports from
|
||||
the history in Perforce.
|
||||
|
||||
* "git describe --contains" often made a hard-to-justify choice of
|
||||
tag to name a given commit, because it tried to come up
|
||||
with a name with smallest number of hops from a tag, causing an old
|
||||
commit whose close descendant that is recently tagged were not
|
||||
described with respect to an old tag but with a newer tag. It did
|
||||
not help that its computation of "hop" count was further tweaked to
|
||||
penalize being on a side branch of a merge. The logic has been
|
||||
updated to favor using the tag with the oldest tagger date, which
|
||||
is a lot easier to explain to the end users: "We describe a commit
|
||||
in terms of the (chronologically) oldest tag that contains the
|
||||
commit."
|
||||
|
||||
* "git clone" learned the "--shallow-submodules" option.
|
||||
|
||||
* HTTP transport clients learned to throw extra HTTP headers at the
|
||||
server, specified via http.extraHeader configuration variable.
|
||||
|
||||
* The "--compaction-heuristic" option to "git diff" family of
|
||||
commands enables a heuristic to make the patch output more readable
|
||||
by using a blank line as a strong hint that the contents before and
|
||||
after it belong to logically separate units. It is still
|
||||
experimental.
|
||||
|
||||
* A new configuration variable core.hooksPath allows customizing
|
||||
where the hook directory is.
|
||||
|
||||
* An earlier addition of "sanitize_submodule_env" with 14111fc4 (git:
|
||||
submodule honor -c credential.* from command line, 2016-02-29)
|
||||
turned out to be a convoluted no-op; implement what it wanted to do
|
||||
correctly, and stop filtering settings given via "git -c var=val".
|
||||
|
||||
* "git commit --dry-run" reported "No, no, you cannot commit." in one
|
||||
case where "git commit" would have allowed you to commit, and this
|
||||
improves it a little bit ("git commit --dry-run --short" still does
|
||||
not give you the correct answer, for example). This is a stop-gap
|
||||
measure in that "commit --short --dry-run" still gives an incorrect
|
||||
result.
|
||||
|
||||
* The experimental "multiple worktree" feature gains more safety to
|
||||
forbid operations on a branch that is checked out or being actively
|
||||
worked on elsewhere, by noticing that e.g. it is being rebased.
|
||||
|
||||
* "git format-patch" learned a new "--base" option to record what
|
||||
(public, well-known) commit the original series was built on in
|
||||
its output.
|
||||
|
||||
* "git commit" learned to pay attention to the "commit.verbose"
|
||||
configuration variable and act as if the "--verbose" option
|
||||
was given from the command line.
|
||||
|
||||
* Updated documentation gives hints to GMail users with two-factor
|
||||
auth enabled that they need app-specific-password when using
|
||||
"git send-email".
|
||||
|
||||
* The manpage output of our documentation did not render well in
|
||||
terminal; typeset literals in bold by default to make them stand
|
||||
out more.
|
||||
|
||||
* The mark-up in the top-level README.md file has been updated to
|
||||
typeset CLI command names differently from the body text.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* The embedded args argv-array in the child process is used to build
|
||||
the command line to run pack-objects instead of using a separate
|
||||
array of strings.
|
||||
|
||||
* A test for tags has been restructured so that more parts of it can
|
||||
easily be run on a platform without a working GnuPG.
|
||||
|
||||
* The startup_info data, which records if we are working inside a
|
||||
repository (among other things), are now uniformly available to Git
|
||||
subcommand implementations, and Git avoids attempting to touch
|
||||
references when we are not in a repository.
|
||||
|
||||
* The command line argument parser for "receive-pack" has been
|
||||
rewritten to use parse-options.
|
||||
|
||||
* A major part of "git submodule update" has been ported to C to take
|
||||
advantage of the recently added framework to run download tasks in
|
||||
parallel. Other updates to "git submodule" that move pieces of
|
||||
logic to C continues.
|
||||
|
||||
* Rename bunch of tests on "git clone" for better organization.
|
||||
|
||||
* The tests that involve running httpd leaked the system-wide
|
||||
configuration in /etc/gitconfig to the tested environment.
|
||||
|
||||
* Build updates for MSVC.
|
||||
|
||||
* The repository set-up sequence has been streamlined (the biggest
|
||||
change is that there is no longer git_config_early()), so that we
|
||||
do not attempt to look into refs/* when we know we do not have a
|
||||
Git repository.
|
||||
|
||||
* Code restructuring around the "refs" API to prepare for pluggable
|
||||
refs backends.
|
||||
|
||||
* Sources to many test helper binaries and the generated helpers
|
||||
have been moved to t/helper/ subdirectory to reduce clutter at the
|
||||
top level of the tree.
|
||||
|
||||
* Unify internal logic between "git tag -v" and "git verify-tag"
|
||||
commands by making one directly call into the other.
|
||||
|
||||
* "merge-recursive" strategy incorrectly checked if a path that is
|
||||
involved in its internal merge exists in the working tree.
|
||||
|
||||
* The test scripts for "git p4" (but not "git p4" implementation
|
||||
itself) has been updated so that they would work even on a system
|
||||
where the installed version of Python is python 3.
|
||||
|
||||
* As nobody maintains our in-tree git.spec.in and distros use their
|
||||
own spec file, we stopped pretending that we support "make rpm".
|
||||
|
||||
* Move from "unsigned char[20]" to "struct object_id" continues.
|
||||
|
||||
* The code for warning_errno/die_errno has been refactored and a new
|
||||
error_errno() reporting helper is introduced.
|
||||
(merge 1da045f nd/error-errno later to maint).
|
||||
|
||||
* Running tests with '-x' option to trace the individual command
|
||||
executions is a useful way to debug test scripts, but some tests
|
||||
that capture the standard error stream and check what the command
|
||||
said can be broken with the trace output mixed in. When running
|
||||
our tests under "bash", however, we can redirect the trace output
|
||||
to another file descriptor to keep the standard error of programs
|
||||
being tested intact.
|
||||
|
||||
* t0040 had too many unnecessary repetitions in its test data. Teach
|
||||
test-parse-options program so that a caller can tell what it
|
||||
expects in its output, so that these repetitions can be cleaned up.
|
||||
|
||||
* Add perf test for "rebase -i".
|
||||
|
||||
* Common mistakes when writing gitlink: in our documentation are
|
||||
found by "make check-docs".
|
||||
|
||||
* t9xxx series has been updated primarily for readability, while
|
||||
fixing small bugs in it. A few scripted Porcelain commands have
|
||||
also been updated to fix possible bugs around their use of
|
||||
"test -z" and "test -n".
|
||||
|
||||
* CI test was taught to run git-svn tests.
|
||||
|
||||
* "git cat-file --batch-all" has been sped up, by taking advantage
|
||||
of the fact that it does not have to read a list of objects, in two
|
||||
ways.
|
||||
|
||||
* test updates to make it more readable and maintainable.
|
||||
(merge e6273f4 es/t1500-modernize later to maint).
|
||||
|
||||
* "make DEVELOPER=1" worked as expected; setting DEVELOPER=1 in
|
||||
config.mak didn't.
|
||||
(merge 51dd3e8 mm/makefile-developer-can-be-in-config-mak later to maint).
|
||||
|
||||
* The way how "submodule--helper list" signals unmatch error to its
|
||||
callers has been updated.
|
||||
|
||||
* A bash-ism "local" has been removed from "git submodule" scripted
|
||||
Porcelain.
|
||||
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
||||
|
||||
|
||||
Fixes since v2.8
|
||||
----------------
|
||||
|
||||
Unless otherwise noted, all the fixes since v2.8 in the maintenance
|
||||
track are contained in this release (see the maintenance releases'
|
||||
notes for details).
|
||||
|
||||
* "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.
|
||||
|
||||
* "git index-pack --keep[=<msg>] pack-$name.pack" simply did not work.
|
||||
|
||||
* 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.
|
||||
|
||||
* "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).
|
||||
|
||||
* When "git worktree" feature is in use, "git branch -d" allowed
|
||||
deletion of a branch that is checked out in another worktree,
|
||||
which was wrong.
|
||||
|
||||
* 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 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.
|
||||
|
||||
* "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.
|
||||
|
||||
* 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.
|
||||
|
||||
* 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.
|
||||
|
||||
* Upcoming OpenSSL 1.1.0 will break compilation by updating a few API
|
||||
elements we use in imap-send, which has been adjusted for the change.
|
||||
|
||||
* The socks5:// proxy support added back in 2.6.4 days was not aware
|
||||
that socks5h:// proxies behave differently from socks5:// proxies.
|
||||
|
||||
* "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
|
||||
|
||||
* "merge-octopus" strategy did not ensure that the index is clean
|
||||
when merge begins.
|
||||
|
||||
* When "git merge" notices that the merge can be resolved purely at
|
||||
the tree level (without having to merge blobs) and the resulting
|
||||
tree happens to already exist in the object store, it forgot to
|
||||
update the index, which left an inconsistent state that would
|
||||
break later operations.
|
||||
|
||||
* "git submodule" reports the paths of submodules the command
|
||||
recurses into, but these paths were incorrectly reported when
|
||||
the command was not run from the root level of the superproject.
|
||||
|
||||
* 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 replace -e" did not honour "core.editor" configuration.
|
||||
|
||||
* "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.
|
||||
|
||||
* mmap emulation on Windows has been optimized and work better without
|
||||
consuming paging store when not needed.
|
||||
|
||||
* A question by "git send-email" to ask the identity of the sender
|
||||
has been updated.
|
||||
|
||||
* UI consistency improvements for "git mergetool".
|
||||
|
||||
* "git rebase -m" could be asked to rebase an entire branch starting
|
||||
from the root, but failed by assuming that there always is a parent
|
||||
commit to the first commit on the branch.
|
||||
|
||||
* Fix a broken "p4 lfs" test.
|
||||
|
||||
* Recent update to Git LFS broke "git p4" by changing the output from
|
||||
its "lfs pointer" subcommand.
|
||||
|
||||
* "git fetch" test t5510 was flaky while running a (forced) automagic
|
||||
garbage collection.
|
||||
|
||||
* Documentation updates to help contributors setting up Travis CI
|
||||
test for their patches.
|
||||
|
||||
* Some multi-byte encoding can have a backslash byte as a later part
|
||||
of one letter, which would confuse "highlight" filter used in
|
||||
gitweb.
|
||||
|
||||
* "git commit-tree" plumbing command required the user to always sign
|
||||
its result when the user sets the commit.gpgsign configuration
|
||||
variable, which was an ancient mistake. Rework "git rebase" that
|
||||
relied on this mistake so that it reads commit.gpgsign and pass (or
|
||||
not pass) the -S option to "git commit-tree" to keep the end-user
|
||||
expectation the same, while teaching "git commit-tree" to ignore
|
||||
the configuration variable. This will stop requiring the users to
|
||||
sign commit objects used internally as an implementation detail of
|
||||
"git stash".
|
||||
|
||||
* "http.cookieFile" configuration variable clearly wants a pathname,
|
||||
but we forgot to treat it as such by e.g. applying tilde expansion.
|
||||
|
||||
* Consolidate description of tilde-expansion that is done to
|
||||
configuration variables that take pathname to a single place.
|
||||
|
||||
* Correct faulty recommendation to use "git submodule deinit ." when
|
||||
de-initialising all submodules, which would result in a strange
|
||||
error message in a pathological corner case.
|
||||
|
||||
* Many 'linkgit:<git documentation page>' references were broken,
|
||||
which are all fixed with this.
|
||||
|
||||
* "git rerere" can get confused by conflict markers deliberately left
|
||||
by the inner merge step, because they are indistinguishable from
|
||||
the real conflict markers left by the outermost merge which are
|
||||
what the end user and "rerere" need to look at. This was fixed by
|
||||
making the conflict markers left by the inner merges a bit longer.
|
||||
(merge 0f9fd5c jc/ll-merge-internal later to maint).
|
||||
|
||||
* CI test was taught to build documentation pages.
|
||||
|
||||
* "git fsck" learned to catch NUL byte in a commit object as
|
||||
potential error and warn.
|
||||
|
||||
* Portability enhancement for "rebase -i" to help platforms whose
|
||||
shell does not like "for i in <empty>" (which is not POSIX-kosher).
|
||||
|
||||
* 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.
|
||||
|
||||
* 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.
|
||||
|
||||
* A couple of bugs around core.autocrlf have been fixed.
|
||||
|
||||
* 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.
|
||||
|
||||
* "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".
|
||||
|
||||
* We forgot to add "git log --decorate=auto" to documentation when we
|
||||
added the feature back in v2.1.0 timeframe.
|
||||
(merge 462cbb4 rj/log-decorate-auto later to maint).
|
||||
|
||||
* "git fast-import --export-marks" would overwrite the existing marks
|
||||
file even when it makes a dump from its custom die routine.
|
||||
Prevent it from doing so when we have an import-marks file but
|
||||
haven't finished reading it.
|
||||
(merge f4beed6 fc/fast-import-broken-marks-file later to maint).
|
||||
|
||||
* "git rebase -i", after it fails to auto-resolve the conflict, had
|
||||
an unnecessary call to "git rerere" from its very early days, which
|
||||
was spotted recently; the call has been removed.
|
||||
(merge 7063693 js/rebase-i-dedup-call-to-rerere later to maint).
|
||||
|
||||
* Other minor clean-ups and documentation updates
|
||||
(merge cd82b7a pa/cherry-pick-doc-typo later to maint).
|
||||
(merge 2bb73ae rs/patch-id-use-skip-prefix later to maint).
|
||||
(merge aa20cbc rs/apply-name-terminate later to maint).
|
||||
(merge fe17fc0 jc/t2300-setup later to maint).
|
||||
(merge e256eec jk/shell-portability later to maint).
|
@ -1,117 +0,0 @@
|
||||
Git v2.9.1 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.9
|
||||
----------------
|
||||
|
||||
* When "git daemon" is run without --[init-]timeout specified, a
|
||||
connection from a client that silently goes offline can hang around
|
||||
for a long time, wasting resources. The socket-level KEEPALIVE has
|
||||
been enabled to allow the OS to notice such failed connections.
|
||||
|
||||
* The commands in `git log` family take %C(auto) in a custom format
|
||||
string. This unconditionally turned the color on, ignoring
|
||||
--no-color or with --color=auto when the output is not connected to
|
||||
a tty; this was corrected to make the format truly behave as
|
||||
"auto".
|
||||
|
||||
* "git rev-list --count" whose walk-length is limited with "-n"
|
||||
option did not work well with the counting optimized to look at the
|
||||
bitmap index.
|
||||
|
||||
* "git show -W" (extend hunks to cover the entire function, delimited
|
||||
by lines that match the "funcname" pattern) used to show the entire
|
||||
file when a change added an entire function at the end of the file,
|
||||
which has been fixed.
|
||||
|
||||
* The documentation set has been updated so that literal commands,
|
||||
configuration variables and environment variables are consistently
|
||||
typeset in fixed-width font and bold in manpages.
|
||||
|
||||
* "git svn propset" subcommand that was added in 2.3 days is
|
||||
documented now.
|
||||
|
||||
* The documentation tries to consistently spell "GPG"; when
|
||||
referring to the specific program name, "gpg" is used.
|
||||
|
||||
* "git reflog" stopped upon seeing an entry that denotes a branch
|
||||
creation event (aka "unborn"), which made it appear as if the
|
||||
reflog was truncated.
|
||||
|
||||
* The git-prompt scriptlet (in contrib/) was not friendly with those
|
||||
who uses "set -u", which has been fixed.
|
||||
|
||||
* A codepath that used alloca(3) to place an unbounded amount of data
|
||||
on the stack has been updated to avoid doing so.
|
||||
|
||||
* "git update-index --add --chmod=+x file" may be usable as an escape
|
||||
hatch, but not a friendly thing to force for people who do need to
|
||||
use it regularly. "git add --chmod=+x file" can be used instead.
|
||||
|
||||
* Build improvements for gnome-keyring (in contrib/)
|
||||
|
||||
* "git status" used to say "working directory" when it meant "working
|
||||
tree".
|
||||
|
||||
* Comments about misbehaving FreeBSD shells have been clarified with
|
||||
the version number (9.x and before are broken, newer ones are OK).
|
||||
|
||||
* "git cherry-pick A" worked on an unborn branch, but "git
|
||||
cherry-pick A..B" didn't.
|
||||
|
||||
* "git add -i/-p" learned to honor diff.compactionHeuristic
|
||||
experimental knob, so that the user can work on the same hunk split
|
||||
as "git diff" output.
|
||||
|
||||
* "log --graph --format=" learned that "%>|(N)" specifies the width
|
||||
relative to the terminal's left edge, not relative to the area to
|
||||
draw text that is to the right of the ancestry-graph section. It
|
||||
also now accepts negative N that means the column limit is relative
|
||||
to the right border.
|
||||
|
||||
* The ownership rule for the piece of memory that hold references to
|
||||
be fetched in "git fetch" was screwy, which has been cleaned up.
|
||||
|
||||
* "git bisect" makes an internal call to "git diff-tree" when
|
||||
bisection finds the culprit, but this call did not initialize the
|
||||
data structure to pass to the diff-tree API correctly.
|
||||
|
||||
* Formats of the various data (and how to validate them) where we use
|
||||
GPG signature have been documented.
|
||||
|
||||
* Fix an unintended regression in v2.9 that breaks "clone --depth"
|
||||
that recurses down to submodules by forcing the submodules to also
|
||||
be cloned shallowly, which many server instances that host upstream
|
||||
of the submodules are not prepared for.
|
||||
|
||||
* Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}'
|
||||
to set the default value, without enclosing it in double quotes.
|
||||
|
||||
* Some platform-specific code had non-ANSI strict declarations of C
|
||||
functions that do not take any parameters, which has been
|
||||
corrected.
|
||||
|
||||
* The internal code used to show local timezone offset is not
|
||||
prepared to handle timestamps beyond year 2100, and gave a
|
||||
bogus offset value to the caller. Use a more benign looking
|
||||
+0000 instead and let "git log" going in such a case, instead
|
||||
of aborting.
|
||||
|
||||
* One among four invocations of readlink(1) in our test suite has
|
||||
been rewritten so that the test can run on systems without the
|
||||
command (others are in valgrind test framework and t9802).
|
||||
|
||||
* t/perf needs /usr/bin/time with GNU extension; the invocation of it
|
||||
is updated to "gtime" on Darwin.
|
||||
|
||||
* A bug, which caused "git p4" while running under verbose mode to
|
||||
report paths that are omitted due to branch prefix incorrectly, has
|
||||
been fixed; the command said "Ignoring file outside of prefix" for
|
||||
paths that are _inside_.
|
||||
|
||||
* The top level documentation "git help git" still pointed at the
|
||||
documentation set hosted at now-defunct google-code repository.
|
||||
Update it to point to https://git.github.io/htmldocs/git.html
|
||||
instead.
|
||||
|
||||
Also contains minor documentation updates and code clean-ups.
|
@ -1,13 +0,0 @@
|
||||
Git v2.9.2 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.9.1
|
||||
------------------
|
||||
|
||||
* A fix merged to v2.9.1 had a few tests that are not meant to be
|
||||
run on platforms without 64-bit long, which caused unnecessary
|
||||
test failures on them because we didn't detect the platform and
|
||||
skip them. These tests are now skipped on platforms that they
|
||||
are not applicable to.
|
||||
|
||||
No other change is included in this update.
|
@ -1,170 +0,0 @@
|
||||
Git v2.9.3 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.9.2
|
||||
------------------
|
||||
|
||||
* A helper function that takes the contents of a commit object and
|
||||
finds its subject line did not ignore leading blank lines, as is
|
||||
commonly done by other codepaths. Make it ignore leading blank
|
||||
lines to match.
|
||||
|
||||
* Git does not know what the contents in the index should be for a
|
||||
path added with "git add -N" yet, so "git grep --cached" should not
|
||||
show hits (or show lack of hits, with -L) in such a path, but that
|
||||
logic does not apply to "git grep", i.e. searching in the working
|
||||
tree files. But we did so by mistake, which has been corrected.
|
||||
|
||||
* "git rebase -i --autostash" did not restore the auto-stashed change
|
||||
when the operation was aborted.
|
||||
|
||||
* "git commit --amend --allow-empty-message -S" for a commit without
|
||||
any message body could have misidentified where the header of the
|
||||
commit object ends.
|
||||
|
||||
* More mark-up updates to typeset strings that are expected to
|
||||
literally typed by the end user in fixed-width font.
|
||||
|
||||
* For a long time, we carried an in-code comment that said our
|
||||
colored output would work only when we use fprintf/fputs on
|
||||
Windows, which no longer is the case for the past few years.
|
||||
|
||||
* "gc.autoPackLimit" when set to 1 should not trigger a repacking
|
||||
when there is only one pack, but the code counted poorly and did
|
||||
so.
|
||||
|
||||
* One part of "git am" had an oddball helper function that called
|
||||
stuff from outside "his" as opposed to calling what we have "ours",
|
||||
which was not gender-neutral and also inconsistent with the rest of
|
||||
the system where outside stuff is usuall called "theirs" in
|
||||
contrast to "ours".
|
||||
|
||||
* The test framework learned a new helper test_match_signal to
|
||||
check an exit code from getting killed by an expected signal.
|
||||
|
||||
* "git blame -M" missed a single line that was moved within the file.
|
||||
|
||||
* Fix recently introduced codepaths that are involved in parallel
|
||||
submodule operations, which gave up on reading too early, and
|
||||
could have wasted CPU while attempting to write under a corner
|
||||
case condition.
|
||||
|
||||
* "git grep -i" has been taught to fold case in non-ascii locales
|
||||
correctly.
|
||||
|
||||
* A test that unconditionally used "mktemp" learned that the command
|
||||
is not necessarily available everywhere.
|
||||
|
||||
* "git blame file" allowed the lineage of lines in the uncommitted,
|
||||
unadded contents of "file" to be inspected, but it refused when
|
||||
"file" did not appear in the current commit. When "file" was
|
||||
created by renaming an existing file (but the change has not been
|
||||
committed), this restriction was unnecessarily tight.
|
||||
|
||||
* "git add -N dir/file && git write-tree" produced an incorrect tree
|
||||
when there are other paths in the same directory that sorts after
|
||||
"file".
|
||||
|
||||
* "git fetch http://user:pass@host/repo..." scrubbed the userinfo
|
||||
part, but "git push" didn't.
|
||||
|
||||
* An age old bug that caused "git diff --ignore-space-at-eol"
|
||||
misbehave has been fixed.
|
||||
|
||||
* "git notes merge" had a code to see if a path exists (and fails if
|
||||
it does) and then open the path for writing (when it doesn't).
|
||||
Replace it with open with O_EXCL.
|
||||
|
||||
* "git pack-objects" and "git index-pack" mostly operate with off_t
|
||||
when talking about the offset of objects in a packfile, but there
|
||||
were a handful of places that used "unsigned long" to hold that
|
||||
value, leading to an unintended truncation.
|
||||
|
||||
* Recent update to "git daemon" tries to enable the socket-level
|
||||
KEEPALIVE, but when it is spawned via inetd, the standard input
|
||||
file descriptor may not necessarily be connected to a socket.
|
||||
Suppress an ENOTSOCK error from setsockopt().
|
||||
|
||||
* Recent FreeBSD stopped making perl available at /usr/bin/perl;
|
||||
switch the default the built-in path to /usr/local/bin/perl on not
|
||||
too ancient FreeBSD releases.
|
||||
|
||||
* "git status" learned to suggest "merge --abort" during a conflicted
|
||||
merge, just like it already suggests "rebase --abort" during a
|
||||
conflicted rebase.
|
||||
|
||||
* The .c/.h sources are marked as such in our .gitattributes file so
|
||||
that "git diff -W" and friends would work better.
|
||||
|
||||
* Existing autoconf generated test for the need to link with pthread
|
||||
library did not check all the functions from pthread libraries;
|
||||
recent FreeBSD has some functions in libc but not others, and we
|
||||
mistakenly thought linking with libc is enough when it is not.
|
||||
|
||||
* Allow http daemon tests in Travis CI tests.
|
||||
|
||||
* Users of the parse_options_concat() API function need to allocate
|
||||
extra slots in advance and fill them with OPT_END() when they want
|
||||
to decide the set of supported options dynamically, which makes the
|
||||
code error-prone and hard to read. This has been corrected by tweaking
|
||||
the API to allocate and return a new copy of "struct option" array.
|
||||
|
||||
* The use of strbuf in "git rm" to build filename to remove was a bit
|
||||
suboptimal, which has been fixed.
|
||||
|
||||
* "git commit --help" said "--no-verify" is only about skipping the
|
||||
pre-commit hook, and failed to say that it also skipped the
|
||||
commit-msg hook.
|
||||
|
||||
* "git merge" in Git v2.9 was taught to forbid merging an unrelated
|
||||
lines of history by default, but that is exactly the kind of thing
|
||||
the "--rejoin" mode of "git subtree" (in contrib/) wants to do.
|
||||
"git subtree" has been taught to use the "--allow-unrelated-histories"
|
||||
option to override the default.
|
||||
|
||||
* The build procedure for "git persistent-https" helper (in contrib/)
|
||||
has been updated so that it can be built with more recent versions
|
||||
of Go.
|
||||
|
||||
* There is an optimization used in "git diff $treeA $treeB" to borrow
|
||||
an already checked-out copy in the working tree when it is known to
|
||||
be the same as the blob being compared, expecting that open/mmap of
|
||||
such a file is faster than reading it from the object store, which
|
||||
involves inflating and applying delta. This however kicked in even
|
||||
when the checked-out copy needs to go through the convert-to-git
|
||||
conversion (including the clean filter), which defeats the whole
|
||||
point of the optimization. The optimization has been disabled when
|
||||
the conversion is necessary.
|
||||
|
||||
* "git -c grep.patternType=extended log --basic-regexp" misbehaved
|
||||
because the internal API to access the grep machinery was not
|
||||
designed well.
|
||||
|
||||
* Windows port was failing some tests in t4130, due to the lack of
|
||||
inum in the returned values by its lstat(2) emulation.
|
||||
|
||||
* The characters in the label shown for tags/refs for commits in
|
||||
"gitweb" output are now properly escaped for proper HTML output.
|
||||
|
||||
* FreeBSD can lie when asked mtime of a directory, which made the
|
||||
untracked cache code to fall back to a slow-path, which in turn
|
||||
caused tests in t7063 to fail because it wanted to verify the
|
||||
behaviour of the fast-path.
|
||||
|
||||
* Squelch compiler warnings for netmalloc (in compat/) library.
|
||||
|
||||
* The API documentation for hashmap was unclear if hashmap_entry
|
||||
can be safely discarded without any other consideration. State
|
||||
that it is safe to do so.
|
||||
|
||||
* Not-so-recent rewrite of "git am" that started making internal
|
||||
calls into the commit machinery had an unintended regression, in
|
||||
that no matter how many seconds it took to apply many patches, the
|
||||
resulting committer timestamp for the resulting commits were all
|
||||
the same.
|
||||
|
||||
* "git difftool <paths>..." started in a subdirectory failed to
|
||||
interpret the paths relative to that directory, which has been
|
||||
fixed.
|
||||
|
||||
Also contains minor documentation updates and code clean-ups.
|
@ -1,83 +0,0 @@
|
||||
Git v2.9.4 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.9.3
|
||||
------------------
|
||||
|
||||
* There are certain house-keeping tasks that need to be performed at
|
||||
the very beginning of any Git program, and programs that are not
|
||||
built-in commands had to do them exactly the same way as "git"
|
||||
potty does. It was easy to make mistakes in one-off standalone
|
||||
programs (like test helpers). A common "main()" function that
|
||||
calls cmd_main() of individual program has been introduced to
|
||||
make it harder to make mistakes.
|
||||
|
||||
* "git merge" with renormalization did not work well with
|
||||
merge-recursive, due to "safer crlf" conversion kicking in when it
|
||||
shouldn't.
|
||||
|
||||
* The reflog output format is documented better, and a new format
|
||||
--date=unix to report the seconds-since-epoch (without timezone)
|
||||
has been added.
|
||||
|
||||
* "git push --force-with-lease" already had enough logic to allow
|
||||
ensuring that such a push results in creation of a ref (i.e. the
|
||||
receiving end did not have another push from sideways that would be
|
||||
discarded by our force-pushing), but didn't expose this possibility
|
||||
to the users. It does so now.
|
||||
|
||||
* "import-tars" fast-import script (in contrib/) used to ignore a
|
||||
hardlink target and replaced it with an empty file, which has been
|
||||
corrected to record the same blob as the other file the hardlink is
|
||||
shared with.
|
||||
|
||||
* "git mv dir non-existing-dir/" did not work in some environments
|
||||
the same way as existing mainstream platforms. The code now moves
|
||||
"dir" to "non-existing-dir", without relying on rename("A", "B/")
|
||||
that strips the trailing slash of '/'.
|
||||
|
||||
* The "t/" hierarchy is prone to get an unusual pathname; "make test"
|
||||
has been taught to make sure they do not contain paths that cannot
|
||||
be checked out on Windows (and the mechanism can be reusable to
|
||||
catch pathnames that are not portable to other platforms as need
|
||||
arises).
|
||||
|
||||
* When "git merge-recursive" works on history with many criss-cross
|
||||
merges in "verbose" mode, the names the command assigns to the
|
||||
virtual merge bases could have overwritten each other by unintended
|
||||
reuse of the same piece of memory.
|
||||
|
||||
* "git checkout --detach <branch>" used to give the same advice
|
||||
message as that is issued when "git checkout <tag>" (or anything
|
||||
that is not a branch name) is given, but asking with "--detach" is
|
||||
an explicit enough sign that the user knows what is going on. The
|
||||
advice message has been squelched in this case.
|
||||
|
||||
* "git difftool" by default ignores the error exit from the backend
|
||||
commands it spawns, because often they signal that they found
|
||||
differences by exiting with a non-zero status code just like "diff"
|
||||
does; the exit status codes 126 and above however are special in
|
||||
that they are used to signal that the command is not executable,
|
||||
does not exist, or killed by a signal. "git difftool" has been
|
||||
taught to notice these exit status codes.
|
||||
|
||||
* On Windows, help.browser configuration variable used to be ignored,
|
||||
which has been corrected.
|
||||
|
||||
* The "git -c var[=val] cmd" facility to append a configuration
|
||||
variable definition at the end of the search order was described in
|
||||
git(1) manual page, but not in git-config(1), which was more likely
|
||||
place for people to look for when they ask "can I make a one-shot
|
||||
override, and if so how?"
|
||||
|
||||
* The tempfile (hence its user lockfile) API lets the caller to open
|
||||
a file descriptor to a temporary file, write into it and then
|
||||
finalize it by first closing the filehandle and then either
|
||||
removing or renaming the temporary file. When the process spawns a
|
||||
subprocess after obtaining the file descriptor, and if the
|
||||
subprocess has not exited when the attempt to remove or rename is
|
||||
made, the last step fails on Windows, because the subprocess has
|
||||
the file descriptor still open. Open tempfile with O_CLOEXEC flag
|
||||
to avoid this (on Windows, this is mapped to O_NOINHERIT).
|
||||
|
||||
Also contains 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
|
||||
@ -121,16 +116,6 @@ its behaviour. Try to make sure your explanation can be understood
|
||||
without external resources. Instead of giving a URL to a mailing list
|
||||
archive, summarize the relevant points of the discussion.
|
||||
|
||||
If you want to reference a previous commit in the history of a stable
|
||||
branch, use the format "abbreviated sha1 (subject, date)",
|
||||
with the subject enclosed in a pair of double-quotes, like this:
|
||||
|
||||
Commit f86a374 ("pack-bitmap.c: fix a memleak", 2015-03-30)
|
||||
noticed that ...
|
||||
|
||||
The "Copy commit summary" command of gitk can be used to obtain this
|
||||
format.
|
||||
|
||||
|
||||
(3) Generate your patch using Git tools out of your commits.
|
||||
|
||||
@ -385,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
|
||||
|
||||
|
@ -28,13 +28,12 @@ include::line-range-format.txt[]
|
||||
-S <revs-file>::
|
||||
Use revisions from revs-file instead of calling linkgit:git-rev-list[1].
|
||||
|
||||
--reverse <rev>..<rev>::
|
||||
--reverse::
|
||||
Walk history forward instead of backward. Instead of showing
|
||||
the revision in which a line appeared, this shows the last
|
||||
revision in which a line has existed. This requires a range of
|
||||
revision like START..END where the path to blame exists in
|
||||
START. `git blame --reverse START` is taken as `git blame
|
||||
--reverse START..HEAD` for convenience.
|
||||
START.
|
||||
|
||||
-p::
|
||||
--porcelain::
|
||||
@ -70,13 +69,6 @@ include::line-range-format.txt[]
|
||||
iso format is used. For supported values, 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
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
DATE FORMATS
|
||||
------------
|
||||
|
||||
The `GIT_AUTHOR_DATE`, `GIT_COMMITTER_DATE` environment variables
|
||||
The GIT_AUTHOR_DATE, GIT_COMMITTER_DATE environment variables
|
||||
ifdef::git-commit[]
|
||||
and the `--date` option
|
||||
endif::git-commit[]
|
||||
|
@ -75,7 +75,7 @@ diff.ignoreSubmodules::
|
||||
commands such as 'git diff-files'. 'git checkout' also honors
|
||||
this setting when reporting uncommitted changes. Setting it to
|
||||
'all' disables the submodule summary normally shown by 'git commit'
|
||||
and 'git status' when `status.submoduleSummary` is set unless it is
|
||||
and 'git status' when 'status.submoduleSummary' is set unless it is
|
||||
overridden by using the --ignore-submodules command-line option.
|
||||
The 'git submodule' commands are not affected by this setting.
|
||||
|
||||
@ -105,16 +105,12 @@ diff.orderFile::
|
||||
|
||||
diff.renameLimit::
|
||||
The number of files to consider when performing the copy/rename
|
||||
detection; equivalent to the 'git diff' option `-l`.
|
||||
detection; equivalent to the 'git diff' option '-l'.
|
||||
|
||||
diff.renames::
|
||||
Whether and how Git detects renames. If set to "false",
|
||||
rename detection is disabled. If set to "true", basic rename
|
||||
detection is enabled. If set to "copies" or "copy", Git will
|
||||
detect copies, as well. Defaults to true. Note that this
|
||||
affects only 'git diff' Porcelain like linkgit:git-diff[1] and
|
||||
linkgit:git-log[1], and not lower level commands such as
|
||||
linkgit:git-diff-files[1].
|
||||
Tells Git to detect renames. If set to any boolean value, it
|
||||
will enable basic rename detection. If set to "copies" or
|
||||
"copy", it will detect copies, as well.
|
||||
|
||||
diff.suppressBlankEmpty::
|
||||
A boolean to inhibit the standard behavior of printing a space
|
||||
@ -122,11 +118,10 @@ diff.suppressBlankEmpty::
|
||||
|
||||
diff.submodule::
|
||||
Specify the format in which differences in submodules are
|
||||
shown. The "short" format just shows the names of the commits
|
||||
at the beginning and end of the range. The "log" format lists
|
||||
the commits in the range like linkgit:git-submodule[1] `summary`
|
||||
does. The "diff" format shows an inline diff of the changed
|
||||
contents of the submodule. Defaults to "short".
|
||||
shown. The "log" format lists the commits in the range like
|
||||
linkgit:git-submodule[1] `summary` does. The "short" format
|
||||
format just shows the names of the commits at the beginning
|
||||
and end of the range. Defaults to short.
|
||||
|
||||
diff.wordRegex::
|
||||
A POSIX Extended Regular Expression used to determine what is a "word"
|
||||
@ -171,12 +166,6 @@ diff.tool::
|
||||
|
||||
include::mergetools-diff.txt[]
|
||||
|
||||
diff.indentHeuristic::
|
||||
diff.compactionHeuristic::
|
||||
Set one of these options to `true` to enable one of two
|
||||
experimental heuristics that shift diff hunk boundaries to
|
||||
make patches easier to read.
|
||||
|
||||
diff.algorithm::
|
||||
Choose a diff algorithm. The variants are as follows:
|
||||
+
|
||||
@ -193,9 +182,3 @@ diff.algorithm::
|
||||
low-occurrence common elements".
|
||||
--
|
||||
+
|
||||
|
||||
diff.wsErrorHighlight::
|
||||
A comma separated list of `old`, `new`, `context`, that
|
||||
specifies how whitespace errors on lines are highlighted
|
||||
with `color.diff.whitespace`. Can be overridden by the
|
||||
command line option `--ws-error-highlight=<kind>`
|
||||
|
@ -46,11 +46,11 @@ That is, from the left to the right:
|
||||
. sha1 for "dst"; 0\{40\} if creation, unmerged or "look at work tree".
|
||||
. a space.
|
||||
. status, followed by optional "score" number.
|
||||
. a tab or a NUL when `-z` option is used.
|
||||
. a tab or a NUL when '-z' option is used.
|
||||
. path for "src"
|
||||
. a tab or a NUL when `-z` option is used; only exists for C or R.
|
||||
. a tab or a NUL when '-z' option is used; only exists for C or R.
|
||||
. path for "dst"; only exists for C or R.
|
||||
. an LF or a NUL when `-z` option is used, to terminate the record.
|
||||
. an LF or a NUL when '-z' option is used, to terminate the record.
|
||||
|
||||
Possible status letters are:
|
||||
|
||||
@ -86,7 +86,7 @@ diff format for merges
|
||||
----------------------
|
||||
|
||||
"git-diff-tree", "git-diff-files" and "git-diff --raw"
|
||||
can take `-c` or `--cc` option
|
||||
can take '-c' or '--cc' option
|
||||
to generate diff output also for merge commits. The output differs
|
||||
from the format described above in the following way:
|
||||
|
||||
|
@ -2,11 +2,11 @@ Generating patches with -p
|
||||
--------------------------
|
||||
|
||||
When "git-diff-index", "git-diff-tree", or "git-diff-files" are run
|
||||
with a `-p` option, "git diff" without the `--raw` option, or
|
||||
with a '-p' option, "git diff" without the '--raw' option, or
|
||||
"git log" with the "-p" option, they
|
||||
do not produce the output described above; instead they produce a
|
||||
patch file. You can customize the creation of such patches via the
|
||||
`GIT_EXTERNAL_DIFF` and the `GIT_DIFF_OPTS` environment variables.
|
||||
GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.
|
||||
|
||||
What the -p option produces is slightly different from the traditional
|
||||
diff format:
|
||||
@ -114,11 +114,11 @@ index fabadb8,cc95eb0..4866510
|
||||
------------
|
||||
|
||||
1. It is preceded with a "git diff" header, that looks like
|
||||
this (when `-c` option is used):
|
||||
this (when '-c' option is used):
|
||||
|
||||
diff --combined file
|
||||
+
|
||||
or like this (when `--cc` option is used):
|
||||
or like this (when '--cc' option is used):
|
||||
|
||||
diff --cc file
|
||||
|
||||
|
@ -1,7 +0,0 @@
|
||||
--indent-heuristic::
|
||||
--no-indent-heuristic::
|
||||
--compaction-heuristic::
|
||||
--no-compaction-heuristic::
|
||||
These are to help debugging and tuning experimental heuristics
|
||||
(which are off by default) that shift diff hunk boundaries to
|
||||
make patches easier to read.
|
@ -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>::
|
||||
@ -63,8 +63,6 @@ ifndef::git-format-patch[]
|
||||
Synonym for `-p --raw`.
|
||||
endif::git-format-patch[]
|
||||
|
||||
include::diff-heuristic-options.txt[]
|
||||
|
||||
--minimal::
|
||||
Spend extra time to make sure the smallest possible
|
||||
diff is produced.
|
||||
@ -205,16 +203,13 @@ any of those replacements occurred.
|
||||
of the `--diff-filter` option on what the status letters mean.
|
||||
|
||||
--submodule[=<format>]::
|
||||
Specify how differences in submodules are shown. When specifying
|
||||
`--submodule=short` the 'short' format is used. This format just
|
||||
shows the names of the commits at the beginning and end of the range.
|
||||
When `--submodule` or `--submodule=log` is specified, the 'log'
|
||||
format is used. This format lists the commits in the range like
|
||||
linkgit:git-submodule[1] `summary` does. When `--submodule=diff`
|
||||
is specified, the 'diff' format is used. This format shows an
|
||||
inline diff of the changes in the submodule contents between the
|
||||
commit range. Defaults to `diff.submodule` or the 'short' format
|
||||
if the config option is unset.
|
||||
Specify how differences in submodules are shown. When `--submodule`
|
||||
or `--submodule=log` is given, the 'log' format is used. This format lists
|
||||
the commits in the range like linkgit:git-submodule[1] `summary` does.
|
||||
Omitting the `--submodule` option or specifying `--submodule=short`,
|
||||
uses the 'short' format. This format just shows the names of the commits
|
||||
at the beginning and end of the range. Can be tweaked via the
|
||||
`diff.submodule` configuration variable.
|
||||
|
||||
--color[=<when>]::
|
||||
Show colored diff.
|
||||
@ -276,7 +271,7 @@ 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.
|
||||
|
||||
@ -291,8 +286,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
|
||||
@ -308,8 +303,6 @@ ifndef::git-format-patch[]
|
||||
lines are highlighted. E.g. `--ws-error-highlight=new,old`
|
||||
highlights whitespace errors on both deleted and added lines.
|
||||
`all` can be used as a short-hand for `old,new,context`.
|
||||
The `diff.wsErrorHighlight` configuration variable can be
|
||||
used to specify the default behaviour.
|
||||
|
||||
endif::git-format-patch[]
|
||||
|
||||
@ -419,9 +412,6 @@ ifndef::git-format-patch[]
|
||||
paths are selected if there is any file that matches
|
||||
other criteria in the comparison; if there is no file
|
||||
that matches other criteria, nothing is selected.
|
||||
+
|
||||
Also, these upper-case letters can be downcased to exclude. E.g.
|
||||
`--diff-filter=ad` excludes added and deleted paths.
|
||||
|
||||
-S<string>::
|
||||
Look for differences that change the number of occurrences of
|
||||
@ -569,16 +559,5 @@ endif::git-format-patch[]
|
||||
--no-prefix::
|
||||
Do not show any source or destination prefix.
|
||||
|
||||
--line-prefix=<prefix>::
|
||||
Prepend an additional prefix to every line of output.
|
||||
|
||||
--ita-invisible-in-index::
|
||||
By default entries added by "git add -N" appear as an existing
|
||||
empty file in "git diff" and a new file in "git diff --cached".
|
||||
This option makes the entry appear as a new file in "git diff"
|
||||
and non-existent in "git diff --cached". This option could be
|
||||
reverted with `--ita-visible-in-index`. Both options are
|
||||
experimental and could be removed in future.
|
||||
|
||||
For more detailed explanation on these common options, see also
|
||||
linkgit:gitdiffcore[7].
|
||||
|
@ -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.
|
||||
|
@ -14,20 +14,6 @@
|
||||
linkgit:git-clone[1]), deepen or shorten the history to the specified
|
||||
number of commits. Tags for the deepened commits are not fetched.
|
||||
|
||||
--deepen=<depth>::
|
||||
Similar to --depth, except it specifies the number of commits
|
||||
from the current shallow boundary instead of from the tip of
|
||||
each remote branch history.
|
||||
|
||||
--shallow-since=<date>::
|
||||
Deepen or shorten the history of a shallow repository to
|
||||
include all reachable commits after <date>.
|
||||
|
||||
--shallow-exclude=<revision>::
|
||||
Deepen or shorten the history of a shallow repository to
|
||||
exclude commits reachable from a specified remote branch or tag.
|
||||
This option can be specified multiple times.
|
||||
|
||||
--unshallow::
|
||||
If the source repository is complete, convert a shallow
|
||||
repository to a complete one, removing all the limitations
|
||||
@ -66,7 +52,7 @@ ifndef::git-pull[]
|
||||
|
||||
-p::
|
||||
--prune::
|
||||
Before fetching, remove any remote-tracking references that no
|
||||
After fetching, remove any remote-tracking references that no
|
||||
longer exist on the remote. Tags are not subject to pruning
|
||||
if they are fetched only because of the default tag
|
||||
auto-following or due to a --tags option. However, if tags
|
||||
@ -102,7 +88,7 @@ ifndef::git-pull[]
|
||||
to whatever else would otherwise be fetched. Using this
|
||||
option alone does not subject tags to pruning, even if --prune
|
||||
is used (though tags may be pruned anyway if they are also the
|
||||
destination of an explicit refspec; see `--prune`).
|
||||
destination of an explicit refspec; see '--prune').
|
||||
|
||||
--recurse-submodules[=yes|on-demand|no]::
|
||||
This option controls if and under what conditions new commits of
|
||||
@ -115,16 +101,9 @@ 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).
|
||||
using the '--recurse-submodules=no' option).
|
||||
|
||||
--submodule-prefix=<path>::
|
||||
Prepend <path> to paths printed in informative messages
|
||||
@ -151,7 +130,7 @@ endif::git-pull[]
|
||||
|
||||
--upload-pack <upload-pack>::
|
||||
When given, and the repository to fetch from is handled
|
||||
by 'git fetch-pack', `--exec=<upload-pack>` is passed to
|
||||
by 'git fetch-pack', '--exec=<upload-pack>' is passed to
|
||||
the command to specify non-default path for the command
|
||||
run on the other end.
|
||||
|
||||
@ -172,11 +151,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.
|
||||
|
@ -11,7 +11,7 @@ SYNOPSIS
|
||||
'git add' [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p]
|
||||
[--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]
|
||||
[--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing]
|
||||
[--chmod=(+|-)x] [--] [<pathspec>...]
|
||||
[--] [<pathspec>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -165,11 +165,6 @@ for "git add --no-all <pathspec>...", i.e. ignored removed files.
|
||||
be ignored, no matter if they are already present in the work
|
||||
tree or not.
|
||||
|
||||
--chmod=(+|-)x::
|
||||
Override the executable bit of the added files. The executable
|
||||
bit is only changed in the index, the files on disk are left
|
||||
unchanged.
|
||||
|
||||
\--::
|
||||
This option can be used to separate command-line options from
|
||||
the list of files, (useful when filenames might be mistaken
|
||||
|
@ -116,8 +116,7 @@ default. You can use `--no-utf8` to override this.
|
||||
By default the command will try to detect the patch format
|
||||
automatically. This option allows the user to bypass the automatic
|
||||
detection and specify the patch format that the patch(es) should be
|
||||
interpreted as. Valid formats are mbox, mboxrd,
|
||||
stgit, stgit-series and hg.
|
||||
interpreted as. Valid formats are mbox, stgit, stgit-series and hg.
|
||||
|
||||
-i::
|
||||
--interactive::
|
||||
@ -199,12 +198,12 @@ When initially invoking `git am`, you give it the names of the mailboxes
|
||||
to process. Upon seeing the first patch that does not apply, it
|
||||
aborts in the middle. You can recover from this in one of two ways:
|
||||
|
||||
. skip the current patch by re-running the command with the `--skip`
|
||||
. skip the current patch by re-running the command with the '--skip'
|
||||
option.
|
||||
|
||||
. hand resolve the conflict in the working directory, and update
|
||||
the index file to bring it into a state that the patch should
|
||||
have produced. Then run the command with the `--continue` option.
|
||||
have produced. Then run the command with the '--continue' option.
|
||||
|
||||
The command refuses to process new mailboxes until the current
|
||||
operation is finished, so if you decide to start over from scratch,
|
||||
|
@ -23,7 +23,6 @@ familiar command name for people coming from other SCM systems.
|
||||
OPTIONS
|
||||
-------
|
||||
include::blame-options.txt[]
|
||||
include::diff-heuristic-options.txt[]
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
|
@ -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,
|
||||
|
@ -366,7 +366,7 @@ skip" to do the same thing. (In fact the special exit code 125 makes
|
||||
|
||||
Or if you want more control, you can inspect the current state using
|
||||
for example "git bisect visualize". It will launch gitk (or "git log"
|
||||
if the `DISPLAY` environment variable is not set) to help you find a
|
||||
if the DISPLAY environment variable is not set) to help you find a
|
||||
better bisection point.
|
||||
|
||||
Either way, if you have a string of untestable commits, it might
|
||||
|
@ -205,7 +205,7 @@ $ git bisect visualize
|
||||
|
||||
`view` may also be used as a synonym for `visualize`.
|
||||
|
||||
If the `DISPLAY` environment variable is not set, 'git log' is used
|
||||
If the 'DISPLAY' environment variable is not set, 'git log' is used
|
||||
instead. You can also give command-line options such as `-p` and
|
||||
`--stat`.
|
||||
|
||||
@ -358,7 +358,7 @@ OPTIONS
|
||||
--no-checkout::
|
||||
+
|
||||
Do not checkout the new working tree at each iteration of the bisection
|
||||
process. Instead just update a special reference named `BISECT_HEAD` to make
|
||||
process. Instead just update a special reference named 'BISECT_HEAD' to make
|
||||
it point to the commit that should be tested.
|
||||
+
|
||||
This option may be useful when the test you would perform in each step
|
||||
|
@ -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>..<rev>]
|
||||
[--] <file>
|
||||
[--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>] [--] <file>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -89,8 +88,6 @@ include::blame-options.txt[]
|
||||
abbreviated object name, use <n>+1 digits. Note that 1 column
|
||||
is used for a caret to mark the boundary commit.
|
||||
|
||||
include::diff-heuristic-options.txt[]
|
||||
|
||||
|
||||
THE PORCELAIN FORMAT
|
||||
--------------------
|
||||
|
@ -39,10 +39,10 @@ named commit). With `--merged`, only branches merged into the named
|
||||
commit (i.e. the branches whose tip commits are reachable from the named
|
||||
commit) will be listed. With `--no-merged` only branches not merged into
|
||||
the named commit will be listed. If the <commit> argument is missing it
|
||||
defaults to `HEAD` (i.e. the tip of the current branch).
|
||||
defaults to 'HEAD' (i.e. the tip of the current branch).
|
||||
|
||||
The command's second form creates a new branch head named <branchname>
|
||||
which points to the current `HEAD`, or <start-point> if given.
|
||||
which points to the current 'HEAD', or <start-point> if given.
|
||||
|
||||
Note that this will create the new branch, but it will not switch the
|
||||
working tree to it; use "git checkout <newbranch>" to switch to the
|
||||
@ -172,7 +172,7 @@ This option is only applicable in non-verbose mode.
|
||||
+
|
||||
This behavior is the default when the start point is a remote-tracking branch.
|
||||
Set the branch.autoSetupMerge configuration variable to `false` if you
|
||||
want `git checkout` and `git branch` to always behave as if `--no-track`
|
||||
want `git checkout` and `git branch` to always behave as if '--no-track'
|
||||
were given. Set it to `always` if you want this behavior when the
|
||||
start-point is either a local or remote-tracking branch.
|
||||
|
||||
|
@ -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'
|
||||
|
@ -9,22 +9,18 @@ git-cat-file - Provide content or type and size information for repository objec
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git cat-file' (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | -p | <type> | --textconv | --filters ) [--path=<path>] <object>
|
||||
'git cat-file' (--batch | --batch-check) [ --textconv | --filters ] [--follow-symlinks]
|
||||
'git cat-file' (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | -p | <type> | --textconv ) <object>
|
||||
'git cat-file' (--batch | --batch-check) [--follow-symlinks]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
In its first form, the command provides the content or the type of an object in
|
||||
the repository. The type is required unless `-t` or `-p` is used to find the
|
||||
object type, or `-s` is used to find the object size, or `--textconv` or
|
||||
`--filters` is used (which imply type "blob").
|
||||
the repository. The type is required unless '-t' or '-p' is used to find the
|
||||
object type, or '-s' is used to find the object size, or '--textconv' is used
|
||||
(which implies type "blob").
|
||||
|
||||
In the second form, a list of objects (separated by linefeeds) is provided on
|
||||
stdin, and the SHA-1, type, and size of each object is printed on stdout. The
|
||||
output format can be overridden using the optional `<format>` argument. If
|
||||
either `--textconv` or `--filters` was specified, the input is expected to
|
||||
list the object names followed by the path name, separated by a single white
|
||||
space, so that the appropriate drivers can be determined.
|
||||
stdin, and the SHA-1, type, and size of each object is printed on stdout.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
@ -58,35 +54,19 @@ OPTIONS
|
||||
|
||||
--textconv::
|
||||
Show the content as transformed by a textconv filter. In this case,
|
||||
<object> has to be of the form <tree-ish>:<path>, or :<path> in
|
||||
order to apply the filter to the content recorded in the index at
|
||||
<path>.
|
||||
|
||||
--filters::
|
||||
Show the content as converted by the filters configured in
|
||||
the current working tree for the given <path> (i.e. smudge filters,
|
||||
end-of-line conversion, etc). In this case, <object> has to be of
|
||||
the form <tree-ish>:<path>, or :<path>.
|
||||
|
||||
--path=<path>::
|
||||
For use with --textconv or --filters, to allow specifying an object
|
||||
name and a path separately, e.g. when it is difficult to figure out
|
||||
the revision from which the blob came.
|
||||
<object> has be of the form <tree-ish>:<path>, or :<path> in order
|
||||
to apply the filter to the content recorded in the index at <path>.
|
||||
|
||||
--batch::
|
||||
--batch=<format>::
|
||||
Print object information and contents for each object provided
|
||||
on stdin. May not be combined with any other options or arguments
|
||||
except `--textconv` or `--filters`, in which case the input lines
|
||||
also need to specify the path, separated by white space. See the
|
||||
section `BATCH OUTPUT` below for details.
|
||||
on stdin. May not be combined with any other options or arguments.
|
||||
See the section `BATCH OUTPUT` below for details.
|
||||
|
||||
--batch-check::
|
||||
--batch-check=<format>::
|
||||
Print object information for each object provided on stdin. May
|
||||
not be combined with any other options or arguments except
|
||||
`--textconv` or `--filters`, in which case the input lines also
|
||||
need to specify the path, separated by white space. See the
|
||||
not be combined with any other options or arguments. See the
|
||||
section `BATCH OUTPUT` below for details.
|
||||
|
||||
--batch-all-objects::
|
||||
@ -164,13 +144,13 @@ respectively print:
|
||||
|
||||
OUTPUT
|
||||
------
|
||||
If `-t` is specified, one of the <type>.
|
||||
If '-t' is specified, one of the <type>.
|
||||
|
||||
If `-s` is specified, the size of the <object> in bytes.
|
||||
If '-s' is specified, the size of the <object> in bytes.
|
||||
|
||||
If `-e` is specified, no output.
|
||||
If '-e' is specified, no output.
|
||||
|
||||
If `-p` is specified, the contents of <object> are pretty-printed.
|
||||
If '-p' is specified, the contents of <object> are pretty-printed.
|
||||
|
||||
If <type> is specified, the raw (though uncompressed) contents of the <object>
|
||||
will be returned.
|
||||
|
@ -112,7 +112,7 @@ EXIT STATUS
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:gitignore[5]
|
||||
linkgit:git-config[1]
|
||||
linkgit:gitconfig[5]
|
||||
linkgit:git-ls-files[1]
|
||||
|
||||
GIT
|
||||
|
@ -118,8 +118,8 @@ $ git check-ref-format --branch @{-1}
|
||||
* Determine the reference name to use for a new branch:
|
||||
+
|
||||
------------
|
||||
$ ref=$(git check-ref-format --normalize "refs/heads/$newbranch")||
|
||||
{ echo "we do not like '$newbranch' as a branch name." >&2 ; exit 1 ; }
|
||||
$ ref=$(git check-ref-format --normalize "refs/heads/$newbranch") ||
|
||||
die "we do not like '$newbranch' as a branch name."
|
||||
------------
|
||||
|
||||
GIT
|
||||
|
@ -157,7 +157,7 @@ of it").
|
||||
When creating a new branch, set up "upstream" configuration. See
|
||||
"--track" in linkgit:git-branch[1] for details.
|
||||
+
|
||||
If no `-b` option is given, the name of the new branch will be
|
||||
If no '-b' option is given, the name of the new branch will be
|
||||
derived from the remote-tracking branch, by looking at the local part of
|
||||
the refspec configured for the corresponding remote, and then stripping
|
||||
the initial part up to the "*".
|
||||
@ -165,7 +165,7 @@ This would tell us to use "hack" as the local branch when branching
|
||||
off of "origin/hack" (or "remotes/origin/hack", or even
|
||||
"refs/remotes/origin/hack"). If the given name has no slash, or the above
|
||||
guessing results in an empty name, the guessing is aborted. You can
|
||||
explicitly give a name with `-b` in such a case.
|
||||
explicitly give a name with '-b' in such a case.
|
||||
|
||||
--no-track::
|
||||
Do not set up "upstream" configuration, even if the
|
||||
@ -419,18 +419,6 @@ $ git reflog -2 HEAD # or
|
||||
$ git log -g -2 HEAD
|
||||
------------
|
||||
|
||||
ARGUMENT DISAMBIGUATION
|
||||
-----------------------
|
||||
|
||||
When there is only one argument given and it is not `--` (e.g. "git
|
||||
checkout abc"), and when the argument is both a valid `<tree-ish>`
|
||||
(e.g. a branch "abc" exists) and a valid `<pathspec>` (e.g. a file
|
||||
or a directory whose name is "abc" exists), Git would usually ask
|
||||
you to disambiguate. Because checking out a branch is so common an
|
||||
operation, however, "git checkout abc" takes "abc" as a `<tree-ish>`
|
||||
in such a situation. Use `git checkout -- <pathspec>` if you want
|
||||
to checkout these paths out of the index.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
|
@ -47,7 +47,7 @@ OPTIONS
|
||||
For a more complete list of ways to spell commits, see
|
||||
linkgit:gitrevisions[7].
|
||||
Sets of commits can be passed but no traversal is done by
|
||||
default, as if the `--no-walk` option was specified, see
|
||||
default, as if the '--no-walk' option was specified, see
|
||||
linkgit:git-rev-list[1]. Note that specifying a range will
|
||||
feed all <commit>... arguments to a single revision walk
|
||||
(see a later example that uses 'maint master..next').
|
||||
@ -128,7 +128,7 @@ effect to your index in a row.
|
||||
|
||||
--allow-empty-message::
|
||||
By default, cherry-picking a commit with an empty message will fail.
|
||||
This option overrides that behavior, allowing commits with empty
|
||||
This option overrides that behaviour, allowing commits with empty
|
||||
messages to be cherry picked.
|
||||
|
||||
--keep-redundant-commits::
|
||||
|
@ -16,7 +16,7 @@ DESCRIPTION
|
||||
Cleans the working tree by recursively removing files that are not
|
||||
under version control, starting from the current directory.
|
||||
|
||||
Normally, only files unknown to Git are removed, but if the `-x`
|
||||
Normally, only files unknown to Git are removed, but if the '-x'
|
||||
option is specified, ignored files are also removed. This can, for
|
||||
example, be useful to remove all build products.
|
||||
|
||||
|
@ -14,8 +14,8 @@ SYNOPSIS
|
||||
[-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]
|
||||
[--dissociate] [--separate-git-dir <git dir>]
|
||||
[--depth <depth>] [--[no-]single-branch]
|
||||
[--recursive | --recurse-submodules] [--[no-]shallow-submodules]
|
||||
[--jobs <n>] [--] <repository> [<directory>]
|
||||
[--recursive | --recurse-submodules] [--] <repository>
|
||||
[<directory>]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -90,16 +90,13 @@ If you want to break the dependency of a repository cloned with `-s` on
|
||||
its source repository, you can simply run `git repack -a` to copy all
|
||||
objects from the source repository into a pack in the cloned repository.
|
||||
|
||||
--reference[-if-able] <repository>::
|
||||
--reference <repository>::
|
||||
If the reference repository is on the local machine,
|
||||
automatically setup `.git/objects/info/alternates` to
|
||||
obtain objects from the reference repository. Using
|
||||
an already existing repository as an alternate will
|
||||
require fewer objects to be copied from the repository
|
||||
being cloned, reducing network and local storage costs.
|
||||
When using the `--reference-if-able`, a non existing
|
||||
directory is skipped with a warning instead of aborting
|
||||
the clone.
|
||||
+
|
||||
*NOTE*: see the NOTE for the `--shared` option, and also the
|
||||
`--dissociate` option.
|
||||
@ -118,7 +115,8 @@ objects from the source repository into a pack in the cloned repository.
|
||||
--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::
|
||||
@ -194,16 +192,7 @@ objects from the source repository into a pack in the cloned repository.
|
||||
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. If you want to clone submodules shallowly,
|
||||
also pass `--shallow-submodules`.
|
||||
|
||||
--shallow-since=<date>::
|
||||
Create a shallow clone with a history after the specified time.
|
||||
|
||||
--shallow-exclude=<revision>::
|
||||
Create a shallow clone with a history, excluding commits
|
||||
reachable from a specified remote branch or tag. This option
|
||||
can be specified multiple times.
|
||||
tips of all branches.
|
||||
|
||||
--[no-]single-branch::
|
||||
Clone only the history leading to the tip of a single branch,
|
||||
@ -224,9 +213,6 @@ objects from the source repository into a pack in the cloned repository.
|
||||
repository does not have a worktree/checkout (i.e. if any of
|
||||
`--no-checkout`/`-n`, `--bare`, or `--mirror` is given)
|
||||
|
||||
--[no-]shallow-submodules::
|
||||
All submodules which are cloned will be shallow with a depth of 1.
|
||||
|
||||
--separate-git-dir=<git dir>::
|
||||
Instead of placing the cloned repository where it is supposed
|
||||
to be, place the cloned repository at the specified directory,
|
||||
@ -234,10 +220,6 @@ objects from the source repository into a pack in the cloned repository.
|
||||
The result is Git repository can be separated from working
|
||||
tree.
|
||||
|
||||
-j <n>::
|
||||
--jobs <n>::
|
||||
The number of submodules fetched at the same time.
|
||||
Defaults to the `submodule.fetchJobs` option.
|
||||
|
||||
<repository>::
|
||||
The (possibly remote) repository to clone from. See the
|
||||
|
@ -44,7 +44,7 @@ OPTIONS
|
||||
An existing tree object
|
||||
|
||||
-p <parent>::
|
||||
Each `-p` indicates the id of a parent commit object.
|
||||
Each '-p' indicates the id of a parent commit object.
|
||||
|
||||
-m <message>::
|
||||
A paragraph in the commit log message. This can be given more than
|
||||
@ -61,8 +61,8 @@ OPTIONS
|
||||
stuck to the option without a space.
|
||||
|
||||
--no-gpg-sign::
|
||||
Do not GPG-sign commit, to countermand a `--gpg-sign` option
|
||||
given earlier on the command line.
|
||||
Countermand `commit.gpgSign` configuration variable that is
|
||||
set to force each and every commit to be signed.
|
||||
|
||||
|
||||
Commit Information
|
||||
|
@ -29,8 +29,7 @@ The content to be added can be specified in several ways:
|
||||
2. by using 'git rm' to remove files from the working tree
|
||||
and the index, again before using the 'commit' command;
|
||||
|
||||
3. by listing files as arguments to the 'commit' command
|
||||
(without --interactive or --patch switch), in which
|
||||
3. by listing files as arguments to the 'commit' command, in which
|
||||
case the commit will ignore changes staged in the index, and instead
|
||||
record the current content of the listed files (which must already
|
||||
be known to Git);
|
||||
@ -42,8 +41,7 @@ The content to be added can be specified in several ways:
|
||||
actual commit;
|
||||
|
||||
5. by using the --interactive or --patch switches with the 'commit' command
|
||||
to decide one by one which files or hunks should be part of the commit
|
||||
in addition to contents in the index,
|
||||
to decide one by one which files or hunks should be part of the commit,
|
||||
before finalizing the operation. See the ``Interactive Mode'' section of
|
||||
linkgit:git-add[1] to learn how to operate these modes.
|
||||
|
||||
@ -77,7 +75,7 @@ OPTIONS
|
||||
|
||||
-c <commit>::
|
||||
--reedit-message=<commit>::
|
||||
Like '-C', but with `-c` the editor is invoked, so that
|
||||
Like '-C', but with '-c' the editor is invoked, so that
|
||||
the user can further edit the commit message.
|
||||
|
||||
--fixup=<commit>::
|
||||
@ -203,7 +201,7 @@ default::
|
||||
Otherwise `whitespace`.
|
||||
--
|
||||
+
|
||||
The default can be changed by the `commit.cleanup` configuration
|
||||
The default can be changed by the 'commit.cleanup' configuration
|
||||
variable (see linkgit:git-config[1]).
|
||||
|
||||
-e::
|
||||
@ -262,7 +260,7 @@ FROM UPSTREAM REBASE" section in linkgit:git-rebase[1].)
|
||||
staged for other paths. This is the default mode of operation of
|
||||
'git commit' if any paths are given on the command line,
|
||||
in which case this option can be omitted.
|
||||
If this option is specified together with `--amend`, then
|
||||
If this option is specified together with '--amend', then
|
||||
no paths need to be specified, which can be used to amend
|
||||
the last commit without committing changes that have
|
||||
already been staged.
|
||||
@ -292,8 +290,7 @@ configuration variable documented in linkgit:git-config[1].
|
||||
what changes the commit has.
|
||||
Note that this diff output doesn't have its
|
||||
lines prefixed with '#'. This diff will not be a part
|
||||
of the commit message. See the `commit.verbose` configuration
|
||||
variable in linkgit:git-config[1].
|
||||
of the commit message.
|
||||
+
|
||||
If specified twice, show in addition the unified diff between
|
||||
what would be committed and the worktree files, i.e. the unstaged
|
||||
@ -452,8 +449,8 @@ include::i18n.txt[]
|
||||
ENVIRONMENT AND CONFIGURATION VARIABLES
|
||||
---------------------------------------
|
||||
The editor used to edit the commit log message will be chosen from the
|
||||
`GIT_EDITOR` environment variable, the core.editor configuration variable, the
|
||||
`VISUAL` environment variable, or the `EDITOR` environment variable (in that
|
||||
GIT_EDITOR environment variable, the core.editor configuration variable, the
|
||||
VISUAL environment variable, or the EDITOR environment variable (in that
|
||||
order). See linkgit:git-var[1] for details.
|
||||
|
||||
HOOKS
|
||||
|
@ -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] [--name-only] --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] [--name-only] -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
|
||||
@ -31,40 +31,40 @@ You can query/set/replace/unset options with this command. The name is
|
||||
actually the section and the key separated by a dot, and the value will be
|
||||
escaped.
|
||||
|
||||
Multiple lines can be added to an option by using the `--add` option.
|
||||
Multiple lines can be added to an option by using the '--add' option.
|
||||
If you want to update or unset an option which can occur on multiple
|
||||
lines, a POSIX regexp `value_regex` needs to be given. Only the
|
||||
existing values that match the regexp are updated or unset. If
|
||||
you want to handle the lines that do *not* match the regex, just
|
||||
prepend a single exclamation mark in front (see also <<EXAMPLES>>).
|
||||
|
||||
The type specifier can be either `--int` or `--bool`, to make
|
||||
The type specifier can be either '--int' or '--bool', to make
|
||||
'git config' ensure that the variable(s) are of the given type and
|
||||
convert the value to the canonical form (simple decimal number for int,
|
||||
a "true" or "false" string for bool), or `--path`, which does some
|
||||
path expansion (see `--path` below). If no type specifier is passed, no
|
||||
a "true" or "false" string for bool), or '--path', which does some
|
||||
path expansion (see '--path' below). If no type specifier is passed, no
|
||||
checks or transformations are performed on the value.
|
||||
|
||||
When reading, the values are read from the system, global and
|
||||
repository local configuration files by default, and options
|
||||
`--system`, `--global`, `--local` and `--file <filename>` can be
|
||||
'--system', '--global', '--local' and '--file <filename>' can be
|
||||
used to tell the command to read from only that location (see <<FILES>>).
|
||||
|
||||
When writing, the new value is written to the repository local
|
||||
configuration file by default, and options `--system`, `--global`,
|
||||
`--file <filename>` can be used to tell the command to write to
|
||||
that location (you can say `--local` but that is the default).
|
||||
configuration file by default, and options '--system', '--global',
|
||||
'--file <filename>' can be used to tell the command to write to
|
||||
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
|
||||
@ -138,7 +139,7 @@ See also <<FILES>>.
|
||||
Use the given config file instead of the one specified by GIT_CONFIG.
|
||||
|
||||
--blob blob::
|
||||
Similar to `--file` but use the given blob instead of a file. E.g.
|
||||
Similar to '--file' but use the given blob instead of a file. E.g.
|
||||
you can use 'master:.gitmodules' to read values from the file
|
||||
'.gitmodules' in the master branch. See "SPECIFYING REVISIONS"
|
||||
section in linkgit:gitrevisions[7] for a more complete list of
|
||||
@ -193,12 +194,6 @@ See also <<FILES>>.
|
||||
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
|
||||
@ -220,19 +215,17 @@ See also <<FILES>>.
|
||||
-e::
|
||||
--edit::
|
||||
Opens an editor to modify the specified config file; either
|
||||
`--system`, `--global`, or repository (default).
|
||||
'--system', '--global', or repository (default).
|
||||
|
||||
--[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
|
||||
-----
|
||||
|
||||
If not set explicitly with `--file`, there are four files where
|
||||
If not set explicitly with '--file', there are four files where
|
||||
'git config' will search for configuration options:
|
||||
|
||||
$(prefix)/etc/gitconfig::
|
||||
@ -263,16 +256,13 @@ The files are read in the order given above, with last value found taking
|
||||
precedence over values read earlier. When multiple values are taken then all
|
||||
values of a key from all files will be used.
|
||||
|
||||
You may override individual configuration parameters when running any git
|
||||
command by using the `-c` option. See linkgit:git[1] for details.
|
||||
|
||||
All writing options will per default write to the repository specific
|
||||
configuration file. Note that this also affects options like `--replace-all`
|
||||
and `--unset`. *'git config' will only ever change one file at a time*.
|
||||
configuration file. Note that this also affects options like '--replace-all'
|
||||
and '--unset'. *'git config' will only ever change one file at a time*.
|
||||
|
||||
You can override these rules either by command-line options or by environment
|
||||
variables. The `--global` and the `--system` options will limit the file used
|
||||
to the global or system-wide file respectively. The `GIT_CONFIG` environment
|
||||
variables. The '--global' and the '--system' options will limit the file used
|
||||
to the global or system-wide file respectively. The GIT_CONFIG environment
|
||||
variable has a similar effect, but you can specify any filename you want.
|
||||
|
||||
|
||||
|
@ -38,11 +38,6 @@ objects nor valid packs
|
||||
+
|
||||
size-garbage: disk space consumed by garbage files, in KiB (unless -H is
|
||||
specified)
|
||||
+
|
||||
alternate: absolute path of alternate object databases; may appear
|
||||
multiple times, one line per path. Note that if the path contains
|
||||
non-printable characters, it may be surrounded by double-quotes and
|
||||
contain C-style backslashed escape sequences.
|
||||
|
||||
-H::
|
||||
--human-readable::
|
||||
|
@ -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
|
||||
----------------------
|
||||
|
@ -44,7 +44,7 @@ OPTIONS
|
||||
FILES
|
||||
-----
|
||||
|
||||
If not set explicitly with `--file`, there are two files where
|
||||
If not set explicitly with '--file', there are two files where
|
||||
git-credential-store will search for credentials in order of precedence:
|
||||
|
||||
~/.git-credentials::
|
||||
|
@ -22,7 +22,7 @@ DESCRIPTION
|
||||
deprecated; it does not work with cvsps version 3 and later. If you are
|
||||
performing a one-shot import of a CVS repository consider using
|
||||
http://cvs2svn.tigris.org/cvs2git.html[cvs2git] or
|
||||
http://www.catb.org/esr/cvs-fast-export/[cvs-fast-export].
|
||||
https://github.com/BartMassey/parsecvs[parsecvs].
|
||||
|
||||
Imports a CVS repository into Git. It will either create a new
|
||||
repository, or incrementally import into an existing one.
|
||||
@ -74,10 +74,10 @@ OPTIONS
|
||||
akin to the way 'git clone' uses 'origin' by default.
|
||||
|
||||
-o <branch-for-HEAD>::
|
||||
When no remote is specified (via -r) the `HEAD` branch
|
||||
When no remote is specified (via -r) the 'HEAD' branch
|
||||
from CVS is imported to the 'origin' branch within the Git
|
||||
repository, as `HEAD` already has a special meaning for Git.
|
||||
When a remote is specified the `HEAD` branch is named
|
||||
repository, as 'HEAD' already has a special meaning for Git.
|
||||
When a remote is specified the 'HEAD' branch is named
|
||||
remotes/<remote>/master mirroring 'git clone' behaviour.
|
||||
Use this option if you want to import into a different
|
||||
branch.
|
||||
@ -103,7 +103,7 @@ the old cvs2git tool.
|
||||
|
||||
-p <options-for-cvsps>::
|
||||
Additional options for cvsps.
|
||||
The options `-u` and '-A' are implicit and should not be used here.
|
||||
The options '-u' and '-A' are implicit and should not be used here.
|
||||
+
|
||||
If you need to pass multiple options, separate them with a comma.
|
||||
|
||||
@ -122,7 +122,7 @@ If you need to pass multiple options, separate them with a comma.
|
||||
|
||||
-M <regex>::
|
||||
Attempt to detect merges based on the commit message with a custom
|
||||
regex. It can be used with `-m` to enable the default regexes
|
||||
regex. It can be used with '-m' to enable the default regexes
|
||||
as well. You must escape forward slashes.
|
||||
+
|
||||
The regex must capture the source branch name in $1.
|
||||
@ -186,7 +186,7 @@ messages, bug-tracking systems, email archives, and the like.
|
||||
|
||||
OUTPUT
|
||||
------
|
||||
If `-v` is specified, the script reports what it is doing.
|
||||
If '-v' is specified, the script reports what it is doing.
|
||||
|
||||
Otherwise, success is indicated the Unix way, i.e. by simply exiting with
|
||||
a zero exit status.
|
||||
|
@ -54,7 +54,7 @@ Print usage information and exit
|
||||
You can specify a list of allowed directories. If no directories
|
||||
are given, all are allowed. This is an additional restriction, gitcvs
|
||||
access still needs to be enabled by the `gitcvs.enabled` config option
|
||||
unless `--export-all` was given, too.
|
||||
unless '--export-all' was given, too.
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
@ -332,7 +332,7 @@ To get a checkout with the Eclipse CVS client:
|
||||
3. Browse the 'modules' available. It will give you a list of the heads in
|
||||
the repository. You will not be able to browse the tree from there. Only
|
||||
the heads.
|
||||
4. Pick `HEAD` when it asks what branch/tag to check out. Untick the
|
||||
4. Pick 'HEAD' when it asks what branch/tag to check out. Untick the
|
||||
"launch commit wizard" to avoid committing the .project file.
|
||||
|
||||
Protocol notes: If you are using anonymous access via pserver, just select that.
|
||||
@ -402,12 +402,12 @@ Exports and tagging (tags and branches) are not supported at this stage.
|
||||
CRLF Line Ending Conversions
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
By default the server leaves the `-k` mode blank for all files,
|
||||
By default the server leaves the '-k' mode blank for all files,
|
||||
which causes the CVS client to treat them as a text files, subject
|
||||
to end-of-line conversion on some platforms.
|
||||
|
||||
You can make the server use the end-of-line conversion attributes to
|
||||
set the `-k` modes for files by setting the `gitcvs.usecrlfattr`
|
||||
set the '-k' modes for files by setting the `gitcvs.usecrlfattr`
|
||||
config variable. See linkgit:gitattributes[5] for more information
|
||||
about end-of-line conversion.
|
||||
|
||||
@ -415,9 +415,9 @@ Alternatively, if `gitcvs.usecrlfattr` config is not enabled
|
||||
or the attributes do not allow automatic detection for a filename, then
|
||||
the server uses the `gitcvs.allBinary` config for the default setting.
|
||||
If `gitcvs.allBinary` is set, then file not otherwise
|
||||
specified will default to '-kb' mode. Otherwise the `-k` mode
|
||||
specified will default to '-kb' mode. Otherwise the '-k' mode
|
||||
is left blank. But if `gitcvs.allBinary` is set to "guess", then
|
||||
the correct `-k` mode will be guessed based on the contents of
|
||||
the correct '-k' mode will be guessed based on the contents of
|
||||
the file.
|
||||
|
||||
For best consistency with 'cvs', it is probably best to override the
|
||||
|
@ -30,7 +30,7 @@ that service if it is enabled.
|
||||
|
||||
It verifies that the directory has the magic file "git-daemon-export-ok", and
|
||||
it will refuse to export any Git directory that hasn't explicitly been marked
|
||||
for export this way (unless the `--export-all` parameter is specified). If you
|
||||
for export this way (unless the '--export-all' parameter is specified). If you
|
||||
pass some directory paths as 'git daemon' arguments, you can further restrict
|
||||
the offers to a whitelist comprising of those.
|
||||
|
||||
@ -90,10 +90,10 @@ OPTIONS
|
||||
is not supported, then --listen=hostname is also not supported and
|
||||
--listen must be given an IPv4 address.
|
||||
Can be given more than once.
|
||||
Incompatible with `--inetd` option.
|
||||
Incompatible with '--inetd' option.
|
||||
|
||||
--port=<n>::
|
||||
Listen on an alternative port. Incompatible with `--inetd` option.
|
||||
Listen on an alternative port. Incompatible with '--inetd' option.
|
||||
|
||||
--init-timeout=<n>::
|
||||
Timeout (in seconds) between the moment the connection is established
|
||||
@ -188,7 +188,7 @@ Git configuration files in that directory are readable by `<user>`.
|
||||
arguments. The external command can decide to decline the
|
||||
service by exiting with a non-zero status (or to allow it by
|
||||
exiting with a zero status). It can also look at the $REMOTE_ADDR
|
||||
and `$REMOTE_PORT` environment variables to learn about the
|
||||
and $REMOTE_PORT environment variables to learn about the
|
||||
requestor when making this decision.
|
||||
+
|
||||
The external command can optionally write a single line to its
|
||||
@ -296,7 +296,7 @@ they correspond to these IP addresses.
|
||||
selectively enable/disable services per repository::
|
||||
To enable 'git archive --remote' and disable 'git fetch' against
|
||||
a repository, have the following in the configuration file in the
|
||||
repository (that is the file 'config' next to `HEAD`, 'refs' and
|
||||
repository (that is the file 'config' next to 'HEAD', 'refs' and
|
||||
'objects').
|
||||
+
|
||||
----------------------------------------------------------------
|
||||
|
@ -154,7 +154,7 @@ is found, its name will be output and searching will stop.
|
||||
If an exact match was not found, 'git describe' will walk back
|
||||
through the commit history to locate an ancestor commit which
|
||||
has been tagged. The ancestor's tag will be output along with an
|
||||
abbreviation of the input commit-ish's SHA-1. If `--first-parent` was
|
||||
abbreviation of the input commit-ish's SHA-1. If '--first-parent' was
|
||||
specified then the walk will only consider the first parent of each
|
||||
commit.
|
||||
|
||||
|
@ -40,13 +40,13 @@ include::diff-format.txt[]
|
||||
Operating Modes
|
||||
---------------
|
||||
You can choose whether you want to trust the index file entirely
|
||||
(using the `--cached` flag) or ask the diff logic to show any files
|
||||
(using the '--cached' flag) or ask the diff logic to show any files
|
||||
that don't match the stat state as being "tentatively changed". Both
|
||||
of these operations are very useful indeed.
|
||||
|
||||
Cached Mode
|
||||
-----------
|
||||
If `--cached` is specified, it allows you to ask:
|
||||
If '--cached' is specified, it allows you to ask:
|
||||
|
||||
show me the differences between HEAD and the current index
|
||||
contents (the ones I'd write using 'git write-tree')
|
||||
|
@ -43,11 +43,11 @@ include::diff-options.txt[]
|
||||
show tree entry itself as well as subtrees. Implies -r.
|
||||
|
||||
--root::
|
||||
When `--root` is specified the initial commit will be shown as a big
|
||||
When '--root' is specified the initial commit will be shown as a big
|
||||
creation event. This is equivalent to a diff against the NULL tree.
|
||||
|
||||
--stdin::
|
||||
When `--stdin` is specified, the command does not take
|
||||
When '--stdin' is specified, the command does not take
|
||||
<tree-ish> arguments from the command line. Instead, it
|
||||
reads lines containing either two <tree>, one <commit>, or a
|
||||
list of <commit> from its standard input. (Use a single space
|
||||
@ -70,13 +70,13 @@ commits (but not trees).
|
||||
By default, 'git diff-tree --stdin' does not show
|
||||
differences for merge commits. With this flag, it shows
|
||||
differences to that commit from all of its parents. See
|
||||
also `-c`.
|
||||
also '-c'.
|
||||
|
||||
-s::
|
||||
By default, 'git diff-tree --stdin' shows differences,
|
||||
either in machine-readable form (without `-p`) or in patch
|
||||
form (with `-p`). This output can be suppressed. It is
|
||||
only useful with `-v` flag.
|
||||
either in machine-readable form (without '-p') or in patch
|
||||
form (with '-p'). This output can be suppressed. It is
|
||||
only useful with '-v' flag.
|
||||
|
||||
-v::
|
||||
This flag causes 'git diff-tree --stdin' to also show
|
||||
@ -91,17 +91,17 @@ include::pretty-options.txt[]
|
||||
-c::
|
||||
This flag changes the way a merge commit is displayed
|
||||
(which means it is useful only when the command is given
|
||||
one <tree-ish>, or `--stdin`). It shows the differences
|
||||
one <tree-ish>, or '--stdin'). It shows the differences
|
||||
from each of the parents to the merge result simultaneously
|
||||
instead of showing pairwise diff between a parent and the
|
||||
result one at a time (which is what the `-m` option does).
|
||||
result one at a time (which is what the '-m' option does).
|
||||
Furthermore, it lists only files which were modified
|
||||
from all parents.
|
||||
|
||||
--cc::
|
||||
This flag changes the way a merge commit patch is displayed,
|
||||
in a similar way to the `-c` option. It implies the `-c`
|
||||
and `-p` options and further compresses the patch output
|
||||
in a similar way to the '-c' option. It implies the '-c'
|
||||
and '-p' options and further compresses the patch output
|
||||
by omitting uninteresting hunks whose the contents in the parents
|
||||
have only two variants and the merge result picks one of them
|
||||
without modification. When all hunks are uninteresting, the commit
|
||||
|
@ -98,7 +98,7 @@ instead. `--no-symlinks` is the default on Windows.
|
||||
invoked diff tool returns a non-zero exit code.
|
||||
+
|
||||
'git-difftool' will forward the exit code of the invoked tool when
|
||||
`--trust-exit-code` is used.
|
||||
'--trust-exit-code' is used.
|
||||
|
||||
See linkgit:git-diff[1] for the full list of supported options.
|
||||
|
||||
|
@ -136,8 +136,6 @@ Performance and Compression Tuning
|
||||
Maximum size of each output packfile.
|
||||
The default is unlimited.
|
||||
|
||||
fastimport.unpackLimit::
|
||||
See linkgit:git-config[1]
|
||||
|
||||
Performance
|
||||
-----------
|
||||
@ -1056,7 +1054,7 @@ relative-marks::
|
||||
no-relative-marks::
|
||||
force::
|
||||
Act as though the corresponding command-line option with
|
||||
a leading `--` was passed on the command line
|
||||
a leading '--' was passed on the command line
|
||||
(see OPTIONS, above).
|
||||
|
||||
import-marks::
|
||||
@ -1107,7 +1105,7 @@ options the user may specify to git fast-import itself.
|
||||
|
||||
The `<option>` part of the command may contain any of the options
|
||||
listed in the OPTIONS section that do not change import semantics,
|
||||
without the leading `--` and is treated in the same way.
|
||||
without the leading '--' and is treated in the same way.
|
||||
|
||||
Option commands must be the first commands on the input (not counting
|
||||
feature commands), to give an option command after any non-option
|
||||
|
@ -41,13 +41,13 @@ OPTIONS
|
||||
option, then the refs from stdin are processed after those
|
||||
on the command line.
|
||||
+
|
||||
If `--stateless-rpc` is specified together with this option then
|
||||
If '--stateless-rpc' is specified together with this option then
|
||||
the list of refs must be in packet format (pkt-line). Each ref must
|
||||
be in a separate packet, and the list must end with a flush packet.
|
||||
|
||||
-q::
|
||||
--quiet::
|
||||
Pass `-q` flag to 'git unpack-objects'; this makes the
|
||||
Pass '-q' flag to 'git unpack-objects'; this makes the
|
||||
cloning process less verbose.
|
||||
|
||||
-k::
|
||||
@ -87,20 +87,6 @@ be in a separate packet, and the list must end with a flush packet.
|
||||
'git-upload-pack' treats the special depth 2147483647 as
|
||||
infinite even if there is an ancestor-chain that long.
|
||||
|
||||
--shallow-since=<date>::
|
||||
Deepen or shorten the history of a shallow'repository to
|
||||
include all reachable commits after <date>.
|
||||
|
||||
--shallow-exclude=<revision>::
|
||||
Deepen or shorten the history of a shallow repository to
|
||||
exclude commits reachable from a specified remote branch or tag.
|
||||
This option can be specified multiple times.
|
||||
|
||||
--deepen-relative::
|
||||
Argument --depth specifies the number of commits from the
|
||||
current shallow boundary instead of from the tip of each
|
||||
remote branch history.
|
||||
|
||||
--no-progress::
|
||||
Do not show the progress.
|
||||
|
||||
@ -118,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
|
||||
--------
|
||||
|
@ -99,57 +99,6 @@ The latter use of the `remote.<repository>.fetch` values can be
|
||||
overridden by giving the `--refmap=<refspec>` parameter(s) on the
|
||||
command line.
|
||||
|
||||
OUTPUT
|
||||
------
|
||||
|
||||
The output of "git fetch" depends on the transport method used; this
|
||||
section describes the output when fetching over the Git protocol
|
||||
(either locally or via ssh) and Smart HTTP protocol.
|
||||
|
||||
The status of the fetch is output in tabular form, with each line
|
||||
representing the status of a single ref. Each line is of the form:
|
||||
|
||||
-------------------------------
|
||||
<flag> <summary> <from> -> <to> [<reason>]
|
||||
-------------------------------
|
||||
|
||||
The status of up-to-date refs is shown only if the --verbose option is
|
||||
used.
|
||||
|
||||
In compact output mode, specified with configuration variable
|
||||
fetch.output, if either entire `<from>` or `<to>` is found in the
|
||||
other string, it will be substituted with `*` in the other string. For
|
||||
example, `master -> origin/master` becomes `master -> origin/*`.
|
||||
|
||||
flag::
|
||||
A single character indicating the status of the ref:
|
||||
(space);; for a successfully fetched fast-forward;
|
||||
`+`;; for a successful forced update;
|
||||
`-`;; for a successfully pruned ref;
|
||||
`t`;; for a successful tag update;
|
||||
`*`;; for a successfully fetched new ref;
|
||||
`!`;; for a ref that was rejected or failed to update; and
|
||||
`=`;; for a ref that was up to date and did not need fetching.
|
||||
|
||||
summary::
|
||||
For a successfully fetched ref, the summary shows the old and new
|
||||
values of the ref in a form suitable for using as an argument to
|
||||
`git log` (this is `<old>..<new>` in most cases, and
|
||||
`<old>...<new>` for forced non-fast-forward updates).
|
||||
|
||||
from::
|
||||
The name of the remote ref being fetched from, minus its
|
||||
`refs/<type>/` prefix. In the case of deletion, the name of
|
||||
the remote ref is "(none)".
|
||||
|
||||
to::
|
||||
The name of the local ref being updated, minus its
|
||||
`refs/<type>/` prefix.
|
||||
|
||||
reason::
|
||||
A human-readable explanation. In the case of successfully fetched
|
||||
refs, no explanation is needed. For a failed ref, the reason for
|
||||
failure is described.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
@ -52,7 +52,7 @@ if different from the rewritten ones, will be stored in the namespace
|
||||
|
||||
Note that since this operation is very I/O expensive, it might
|
||||
be a good idea to redirect the temporary directory off-disk with the
|
||||
`-d` option, e.g. on tmpfs. Reportedly the speedup is very noticeable.
|
||||
'-d' option, e.g. on tmpfs. Reportedly the speedup is very noticeable.
|
||||
|
||||
|
||||
Filters
|
||||
@ -61,7 +61,7 @@ Filters
|
||||
The filters are applied in the order as listed below. The <command>
|
||||
argument is always evaluated in the shell context using the 'eval' command
|
||||
(with the notable exception of the commit filter, for technical reasons).
|
||||
Prior to that, the `$GIT_COMMIT` environment variable will be set to contain
|
||||
Prior to that, the $GIT_COMMIT environment variable will be set to contain
|
||||
the id of the commit being rewritten. Also, GIT_AUTHOR_NAME,
|
||||
GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL,
|
||||
and GIT_COMMITTER_DATE are taken from the current commit and exported to
|
||||
@ -171,7 +171,7 @@ to other tags will be rewritten to point to the underlying commit.
|
||||
untouched. This switch allow git-filter-branch to ignore such
|
||||
commits. Though, this switch only applies for commits that have one
|
||||
and only one parent, it will hence keep merges points. Also, this
|
||||
option is not compatible with the use of `--commit-filter`. Though you
|
||||
option is not compatible with the use of '--commit-filter'. Though you
|
||||
just need to use the function 'git_commit_non_empty_tree "$@"' instead
|
||||
of the `git commit-tree "$@"` idiom in your commit filter to make that
|
||||
happen.
|
||||
@ -197,7 +197,7 @@ to other tags will be rewritten to point to the underlying commit.
|
||||
<rev-list options>...::
|
||||
Arguments for 'git rev-list'. All positive refs included by
|
||||
these options are rewritten. You may also specify options
|
||||
such as `--all`, but you must use `--` to separate them from
|
||||
such as '--all', but you must use '--' to separate them from
|
||||
the 'git filter-branch' options. Implies <<Remap_to_ancestor>>.
|
||||
|
||||
|
||||
@ -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
|
||||
|
@ -60,10 +60,10 @@ merge.summary::
|
||||
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.
|
||||
|
@ -76,7 +76,7 @@ OPTIONS
|
||||
specified commit (HEAD if not specified).
|
||||
|
||||
--contains [<object>]::
|
||||
Only list refs which contain the specified commit (HEAD if not
|
||||
Only list tags which contain the specified commit (HEAD if not
|
||||
specified).
|
||||
|
||||
FIELD NAMES
|
||||
@ -133,18 +133,14 @@ color::
|
||||
|
||||
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.
|
||||
%(align:...) and %(end). The "align:" is followed by `<width>`
|
||||
and `<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. 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
|
||||
@ -179,7 +175,7 @@ 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).
|
||||
values the `--date` option to linkgit::git-rev-list[1] takes).
|
||||
|
||||
|
||||
EXAMPLES
|
||||
|
@ -19,8 +19,7 @@ SYNOPSIS
|
||||
[--start-number <n>] [--numbered-files]
|
||||
[--in-reply-to=Message-Id] [--suffix=.<sfx>]
|
||||
[--ignore-if-in-upstream]
|
||||
[--rfc] [--subject-prefix=Subject-Prefix]
|
||||
[(--reroll-count|-v) <n>]
|
||||
[--subject-prefix=Subject-Prefix] [(--reroll-count|-v) <n>]
|
||||
[--to=<email>] [--cc=<email>]
|
||||
[--[no-]cover-letter] [--quiet] [--notes[=<ref>]]
|
||||
[<common diff options>]
|
||||
@ -58,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
|
||||
@ -147,9 +142,9 @@ series, where the head is chosen from the cover letter, the
|
||||
`--in-reply-to`, and the first patch mail, in this order. 'deep'
|
||||
threading makes every mail a reply to the previous one.
|
||||
+
|
||||
The default is `--no-thread`, unless the `format.thread` configuration
|
||||
The default is `--no-thread`, unless the 'format.thread' configuration
|
||||
is set. If `--thread` is specified without a style, it defaults to the
|
||||
style specified by `format.thread` if any, or else `shallow`.
|
||||
style specified by 'format.thread' if any, or else `shallow`.
|
||||
+
|
||||
Beware that the default for 'git send-email' is to thread emails
|
||||
itself. If you want `git format-patch` to take care of threading, you
|
||||
@ -173,11 +168,6 @@ will want to ensure that threading is disabled for `git send-email`.
|
||||
allows for useful naming of a patch series, and can be
|
||||
combined with the `--numbered` option.
|
||||
|
||||
--rfc::
|
||||
Alias for `--subject-prefix="RFC PATCH"`. RFC means "Request For
|
||||
Comments"; use this when sending an experimental patch for
|
||||
discussion rather than application.
|
||||
|
||||
-v <n>::
|
||||
--reroll-count=<n>::
|
||||
Mark the series as the <n>-th iteration of the topic. The
|
||||
@ -271,11 +261,6 @@ you can use `--suffix=-patch` to get `0001-description-of-my-change-patch`.
|
||||
Output an all-zero hash in each patch's From header instead
|
||||
of the hash of the commit.
|
||||
|
||||
--base=<commit>::
|
||||
Record the base tree information to identify the state the
|
||||
patch series applies to. See the BASE TREE INFORMATION section
|
||||
below for details.
|
||||
|
||||
--root::
|
||||
Treat the revision argument as a <revision range>, even if it
|
||||
is just a single commit (that would normally be treated as a
|
||||
@ -531,61 +516,6 @@ This should help you to submit patches inline using KMail.
|
||||
5. Back in the compose window: add whatever other text you wish to the
|
||||
message, complete the addressing and subject fields, and press send.
|
||||
|
||||
BASE TREE INFORMATION
|
||||
---------------------
|
||||
|
||||
The base tree information block is used for maintainers or third party
|
||||
testers to know the exact state the patch series applies to. It consists
|
||||
of the 'base commit', which is a well-known commit that is part of the
|
||||
stable part of the project history everybody else works off of, and zero
|
||||
or more 'prerequisite patches', which are well-known patches in flight
|
||||
that is not yet part of the 'base commit' that need to be applied on top
|
||||
of 'base commit' in topological order before the patches can be applied.
|
||||
|
||||
The 'base commit' is shown as "base-commit: " followed by the 40-hex of
|
||||
the commit object name. A 'prerequisite patch' is shown as
|
||||
"prerequisite-patch-id: " followed by the 40-hex 'patch id', which can
|
||||
be obtained by passing the patch through the `git patch-id --stable`
|
||||
command.
|
||||
|
||||
Imagine that on top of the public commit P, you applied well-known
|
||||
patches X, Y and Z from somebody else, and then built your three-patch
|
||||
series A, B, C, the history would be like:
|
||||
|
||||
................................................
|
||||
---P---X---Y---Z---A---B---C
|
||||
................................................
|
||||
|
||||
With `git format-patch --base=P -3 C` (or variants thereof, e.g. with
|
||||
`--cover-letter` of using `Z..C` instead of `-3 C` to specify the
|
||||
range), the base tree information block is shown at the end of the
|
||||
first message the command outputs (either the first patch, or the
|
||||
cover letter), like this:
|
||||
|
||||
------------
|
||||
base-commit: P
|
||||
prerequisite-patch-id: X
|
||||
prerequisite-patch-id: Y
|
||||
prerequisite-patch-id: Z
|
||||
------------
|
||||
|
||||
For non-linear topology, such as
|
||||
|
||||
................................................
|
||||
---P---X---A---M---C
|
||||
\ /
|
||||
Y---Z---B
|
||||
................................................
|
||||
|
||||
You can also use `git format-patch --base=P -3 C` to generate patches
|
||||
for A, B and C, and the identifiers for P, X, Y, Z are appended at the
|
||||
end of the first message.
|
||||
|
||||
If set `--base=auto` in cmdline, it will track base commit automatically,
|
||||
the base commit will be the merge base of tip commit of the remote-tracking
|
||||
branch and revision-range specified in cmdline.
|
||||
For a local branch, you need to track a remote branch by `git branch
|
||||
--set-upstream-to` before using this option.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
@ -11,8 +11,7 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git fsck' [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
|
||||
[--[no-]full] [--strict] [--verbose] [--lost-found]
|
||||
[--[no-]dangling] [--[no-]progress] [--connectivity-only]
|
||||
[--[no-]name-objects] [<object>*]
|
||||
[--[no-]dangling] [--[no-]progress] [--connectivity-only] [<object>*]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -83,12 +82,6 @@ index file, all SHA-1 references in `refs` namespace, and all reflogs
|
||||
a blob, the contents are written into the file, rather than
|
||||
its object name.
|
||||
|
||||
--name-objects::
|
||||
When displaying names of reachable objects, in addition to the
|
||||
SHA-1 also display a name that describes *how* they are reachable,
|
||||
compatible with linkgit:git-rev-parse[1], e.g.
|
||||
`HEAD@{1234567890}~25^2:src/`.
|
||||
|
||||
--[no-]progress::
|
||||
Progress status is reported on the standard error stream by
|
||||
default when it is attached to a terminal, unless
|
||||
@ -102,7 +95,7 @@ DISCUSSION
|
||||
git-fsck tests SHA-1 and general object sanity, and it does full tracking
|
||||
of the resulting reachability and everything else. It prints out any
|
||||
corruption it finds (missing or bad objects), and if you use the
|
||||
`--unreachable` flag it will also print out objects that exist but that
|
||||
'--unreachable' flag it will also print out objects that exist but that
|
||||
aren't reachable from any of the specified head nodes (or the default
|
||||
set, as mentioned above).
|
||||
|
||||
|
@ -82,13 +82,13 @@ automatic consolidation of packs.
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
The optional configuration variable `gc.reflogExpire` can be
|
||||
The optional configuration variable 'gc.reflogExpire' can be
|
||||
set to indicate how long historical entries within each branch's
|
||||
reflog should remain available in this repository. The setting is
|
||||
expressed as a length of time, for example '90 days' or '3 months'.
|
||||
It defaults to '90 days'.
|
||||
|
||||
The optional configuration variable `gc.reflogExpireUnreachable`
|
||||
The optional configuration variable 'gc.reflogExpireUnreachable'
|
||||
can be set to indicate how long historical reflog entries which
|
||||
are not part of the current branch should remain available in
|
||||
this repository. These types of entries are generally created as
|
||||
@ -107,30 +107,30 @@ branches:
|
||||
reflogExpireUnreachable = 3 days
|
||||
------------
|
||||
|
||||
The optional configuration variable `gc.rerereResolved` indicates
|
||||
The optional configuration variable 'gc.rerereResolved' indicates
|
||||
how long records of conflicted merge you resolved earlier are
|
||||
kept. This defaults to 60 days.
|
||||
|
||||
The optional configuration variable `gc.rerereUnresolved` indicates
|
||||
The optional configuration variable 'gc.rerereUnresolved' indicates
|
||||
how long records of conflicted merge you have not resolved are
|
||||
kept. This defaults to 15 days.
|
||||
|
||||
The optional configuration variable `gc.packRefs` determines if
|
||||
The optional configuration variable 'gc.packRefs' determines if
|
||||
'git gc' runs 'git pack-refs'. This can be set to "notbare" to enable
|
||||
it within all non-bare repos or it can be set to a boolean value.
|
||||
This defaults to true.
|
||||
|
||||
The optional configuration variable `gc.aggressiveWindow` controls how
|
||||
The optional configuration variable 'gc.aggressiveWindow' controls how
|
||||
much time is spent optimizing the delta compression of the objects in
|
||||
the repository when the --aggressive option is specified. The larger
|
||||
the value, the more time is spent optimizing the delta compression. See
|
||||
the documentation for the --window' option in linkgit:git-repack[1] for
|
||||
more details. This defaults to 250.
|
||||
|
||||
Similarly, the optional configuration variable `gc.aggressiveDepth`
|
||||
Similarly, the optional configuration variable 'gc.aggressiveDepth'
|
||||
controls --depth option in linkgit:git-repack[1]. This defaults to 250.
|
||||
|
||||
The optional configuration variable `gc.pruneExpire` controls how old
|
||||
The optional configuration variable 'gc.pruneExpire' controls how old
|
||||
the unreferenced loose objects have to be before they are pruned. The
|
||||
default is "2 weeks ago".
|
||||
|
||||
|
@ -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>...]
|
||||
@ -41,29 +40,21 @@ CONFIGURATION
|
||||
-------------
|
||||
|
||||
grep.lineNumber::
|
||||
If set to true, enable `-n` option by default.
|
||||
If set to true, enable '-n' option by default.
|
||||
|
||||
grep.patternType::
|
||||
Set the default matching behavior. Using a value of 'basic', 'extended',
|
||||
'fixed', or 'perl' will enable the `--basic-regexp`, `--extended-regexp`,
|
||||
`--fixed-strings`, or `--perl-regexp` option accordingly, while the
|
||||
'fixed', or 'perl' will enable the '--basic-regexp', '--extended-regexp',
|
||||
'--fixed-strings', or '--perl-regexp' option accordingly, while the
|
||||
value 'default' will return to the default matching behavior.
|
||||
|
||||
grep.extendedRegexp::
|
||||
If set to true, enable `--extended-regexp` option by default. This
|
||||
option is ignored when the `grep.patternType` option is set to a value
|
||||
If set to true, enable '--extended-regexp' option by default. This
|
||||
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.
|
||||
If set to true, enable '--full-name' option by default.
|
||||
|
||||
|
||||
OPTIONS
|
||||
@ -236,10 +227,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.
|
||||
|
||||
|
@ -35,7 +35,7 @@ blame::
|
||||
|
||||
browser::
|
||||
Start a tree browser showing all files in the specified
|
||||
commit (or `HEAD` by default). Files selected through the
|
||||
commit (or 'HEAD' by default). Files selected through the
|
||||
browser are opened in the blame viewer.
|
||||
|
||||
citool::
|
||||
|
@ -18,10 +18,10 @@ With no options and no COMMAND or GUIDE given, the synopsis of the 'git'
|
||||
command and a list of the most commonly used Git commands are printed
|
||||
on the standard output.
|
||||
|
||||
If the option `--all` or `-a` is given, all available commands are
|
||||
If the option '--all' or '-a' is given, all available commands are
|
||||
printed on the standard output.
|
||||
|
||||
If the option `--guide` or `-g` is given, a list of the useful
|
||||
If the option '--guide' or '-g' is given, a list of the useful
|
||||
Git guides is also printed on the standard output.
|
||||
|
||||
If a command, or a guide, is given, a manual page for that command or
|
||||
@ -57,10 +57,10 @@ OPTIONS
|
||||
--man::
|
||||
Display manual page for the command in the 'man' format. This
|
||||
option may be used to override a value set in the
|
||||
`help.format` configuration variable.
|
||||
'help.format' configuration variable.
|
||||
+
|
||||
By default the 'man' program will be used to display the manual page,
|
||||
but the `man.viewer` configuration variable may be used to choose
|
||||
but the 'man.viewer' configuration variable may be used to choose
|
||||
other display programs (see below).
|
||||
|
||||
-w::
|
||||
@ -69,7 +69,7 @@ other display programs (see below).
|
||||
format. A web browser will be used for that purpose.
|
||||
+
|
||||
The web browser can be specified using the configuration variable
|
||||
`help.browser`, or `web.browser` if the former is not set. If none of
|
||||
'help.browser', or 'web.browser' if the former is not set. If none of
|
||||
these config variables is set, the 'git web{litdd}browse' helper script
|
||||
(called by 'git help') will pick a suitable default. See
|
||||
linkgit:git-web{litdd}browse[1] for more information about this.
|
||||
@ -80,7 +80,7 @@ CONFIGURATION VARIABLES
|
||||
help.format
|
||||
~~~~~~~~~~~
|
||||
|
||||
If no command-line option is passed, the `help.format` configuration
|
||||
If no command-line option is passed, the 'help.format' configuration
|
||||
variable will be checked. The following values are supported for this
|
||||
variable; they make 'git help' behave as their corresponding command-
|
||||
line option:
|
||||
@ -92,7 +92,7 @@ line option:
|
||||
help.browser, web.browser and browser.<tool>.path
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The `help.browser`, `web.browser` and `browser.<tool>.path` will also
|
||||
The 'help.browser', 'web.browser' and 'browser.<tool>.path' will also
|
||||
be checked if the 'web' format is chosen (either by command-line
|
||||
option or configuration variable). See '-w|--web' in the OPTIONS
|
||||
section above and linkgit:git-web{litdd}browse[1].
|
||||
@ -100,7 +100,7 @@ section above and linkgit:git-web{litdd}browse[1].
|
||||
man.viewer
|
||||
~~~~~~~~~~
|
||||
|
||||
The `man.viewer` configuration variable will be checked if the 'man'
|
||||
The 'man.viewer' configuration variable will be checked if the 'man'
|
||||
format is chosen. The following values are currently supported:
|
||||
|
||||
* "man": use the 'man' program as usual,
|
||||
@ -110,9 +110,9 @@ format is chosen. The following values are currently supported:
|
||||
tab (see 'Note about konqueror' below).
|
||||
|
||||
Values for other tools can be used if there is a corresponding
|
||||
`man.<tool>.cmd` configuration entry (see below).
|
||||
'man.<tool>.cmd' configuration entry (see below).
|
||||
|
||||
Multiple values may be given to the `man.viewer` configuration
|
||||
Multiple values may be given to the 'man.viewer' configuration
|
||||
variable. Their corresponding programs will be tried in the order
|
||||
listed in the configuration file.
|
||||
|
||||
@ -128,14 +128,14 @@ will try to use konqueror first. But this may fail (for example, if
|
||||
DISPLAY is not set) and in that case emacs' woman mode will be tried.
|
||||
|
||||
If everything fails, or if no viewer is configured, the viewer specified
|
||||
in the `GIT_MAN_VIEWER` environment variable will be tried. If that
|
||||
in the GIT_MAN_VIEWER environment variable will be tried. If that
|
||||
fails too, the 'man' program will be tried anyway.
|
||||
|
||||
man.<tool>.path
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
You can explicitly provide a full path to your preferred man viewer by
|
||||
setting the configuration variable `man.<tool>.path`. For example, you
|
||||
setting the configuration variable 'man.<tool>.path'. For example, you
|
||||
can configure the absolute path to konqueror by setting
|
||||
'man.konqueror.path'. Otherwise, 'git help' assumes the tool is
|
||||
available in PATH.
|
||||
@ -143,9 +143,9 @@ available in PATH.
|
||||
man.<tool>.cmd
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
When the man viewer, specified by the `man.viewer` configuration
|
||||
When the man viewer, specified by the 'man.viewer' configuration
|
||||
variables, is not among the supported ones, then the corresponding
|
||||
`man.<tool>.cmd` configuration variable will be looked up. If this
|
||||
'man.<tool>.cmd' configuration variable will be looked up. If this
|
||||
variable exists then the specified tool will be treated as a custom
|
||||
command and a shell eval will be used to run the command with the man
|
||||
page passed as arguments.
|
||||
@ -153,7 +153,7 @@ page passed as arguments.
|
||||
Note about konqueror
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
When 'konqueror' is specified in the `man.viewer` configuration
|
||||
When 'konqueror' is specified in the 'man.viewer' configuration
|
||||
variable, we launch 'kfmclient' to try to open the man page on an
|
||||
already opened konqueror in a new tab if possible.
|
||||
|
||||
@ -176,7 +176,7 @@ Note about git config --global
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Note that all these configuration variables should probably be set
|
||||
using the `--global` flag, for example like this:
|
||||
using the '--global' flag, for example like this:
|
||||
|
||||
------------------------------------------------
|
||||
$ git config --global help.format web
|
||||
|
@ -21,7 +21,7 @@ pushing using the smart HTTP protocol.
|
||||
It verifies that the directory has the magic file
|
||||
"git-daemon-export-ok", and it will refuse to export any Git directory
|
||||
that hasn't explicitly been marked for export this way (unless the
|
||||
`GIT_HTTP_EXPORT_ALL` environmental variable is set).
|
||||
GIT_HTTP_EXPORT_ALL environmental variable is set).
|
||||
|
||||
By default, only the `upload-pack` service is enabled, which serves
|
||||
'git fetch-pack' and 'git ls-remote' clients, which are invoked from
|
||||
@ -241,7 +241,7 @@ $HTTP["url"] =~ "^/git/private" {
|
||||
|
||||
ENVIRONMENT
|
||||
-----------
|
||||
'git http-backend' relies upon the `CGI` environment variables set
|
||||
'git http-backend' relies upon the CGI environment variables set
|
||||
by the invoking web server, including:
|
||||
|
||||
* PATH_INFO (if GIT_PROJECT_ROOT is set, otherwise PATH_TRANSLATED)
|
||||
@ -251,7 +251,7 @@ by the invoking web server, including:
|
||||
* QUERY_STRING
|
||||
* REQUEST_METHOD
|
||||
|
||||
The `GIT_HTTP_EXPORT_ALL` environmental variable may be passed to
|
||||
The GIT_HTTP_EXPORT_ALL environmental variable may be passed to
|
||||
'git-http-backend' to bypass the check for the "git-daemon-export-ok"
|
||||
file in each repository before allowing export of that repository.
|
||||
|
||||
@ -269,7 +269,7 @@ GIT_COMMITTER_EMAIL to '$\{REMOTE_USER}@http.$\{REMOTE_ADDR\}',
|
||||
ensuring that any reflogs created by 'git-receive-pack' contain some
|
||||
identifying information of the remote user who performed the push.
|
||||
|
||||
All `CGI` environment variables are available to each of the hooks
|
||||
All CGI environment variables are available to each of the hooks
|
||||
invoked by the 'git-receive-pack'.
|
||||
|
||||
GIT
|
||||
|
@ -81,13 +81,13 @@ destination side.
|
||||
exist in the set of remote refs; the ref matched <src>
|
||||
locally is used as the name of the destination.
|
||||
|
||||
Without `--force`, the <src> ref is stored at the remote only if
|
||||
Without '--force', the <src> ref is stored at the remote only if
|
||||
<dst> does not exist, or <dst> is a proper subset (i.e. an
|
||||
ancestor) of <src>. This check, known as "fast-forward check",
|
||||
is performed in order to avoid accidentally overwriting the
|
||||
remote ref and lose other peoples' commits from there.
|
||||
|
||||
With `--force`, the fast-forward check is disabled for all refs.
|
||||
With '--force', the fast-forward check is disabled for all refs.
|
||||
|
||||
Optionally, a <ref> parameter can be prefixed with a plus '+' sign
|
||||
to disable the fast-forward check only on that ref.
|
||||
|
@ -87,8 +87,6 @@ OPTIONS
|
||||
Specifying 0 will cause Git to auto-detect the number of CPU's
|
||||
and use maximum 3 threads.
|
||||
|
||||
--max-input-size=<size>::
|
||||
Die, if the pack is larger than <size>.
|
||||
|
||||
Note
|
||||
----
|
||||
|
@ -47,7 +47,7 @@ Only print error and warning messages; all other output will be suppressed.
|
||||
|
||||
--bare::
|
||||
|
||||
Create a bare repository. If `GIT_DIR` environment is not set, it is set to the
|
||||
Create a bare repository. If GIT_DIR environment is not set, it is set to the
|
||||
current working directory.
|
||||
|
||||
--template=<template_directory>::
|
||||
@ -130,12 +130,7 @@ The template directory will be one of the following (in order):
|
||||
- the default template directory: `/usr/share/git-core/templates`.
|
||||
|
||||
The default template directory includes some directory structure, suggested
|
||||
"exclude patterns" (see linkgit:gitignore[5]), and sample hook files.
|
||||
|
||||
The sample hooks are all disabled by default, To enable one of the
|
||||
sample hooks rename it by removing its `.sample` suffix.
|
||||
|
||||
See linkgit:githooks[5] for more general info on hook execution.
|
||||
"exclude patterns" (see linkgit:gitignore[5]), and sample hook files (see linkgit:githooks[5]).
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
@ -80,8 +80,8 @@ You may specify configuration in your .git/config
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
If the configuration variable `instaweb.browser` is not set,
|
||||
`web.browser` will be used instead if it is defined. See
|
||||
If the configuration variable 'instaweb.browser' is not set,
|
||||
'web.browser' will be used instead if it is defined. See
|
||||
linkgit:git-web{litdd}browse[1] for more information about this.
|
||||
|
||||
SEE ALSO
|
||||
|
@ -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
|
||||
-----------
|
||||
@ -48,27 +48,22 @@ with only spaces at the end of the commit message part, one blank line
|
||||
will be added before the new trailer.
|
||||
|
||||
Existing trailers are extracted from the input message by looking for
|
||||
a group of one or more lines that (i) are all trailers, or (ii) contains at
|
||||
least one Git-generated trailer and consists of at least 25% trailers.
|
||||
The group must be preceded by one or more empty (or whitespace-only) lines.
|
||||
a group of one or more lines that contain a colon (by default), where
|
||||
the group is preceded by one or more empty (or whitespace-only) lines.
|
||||
The group must either be at the end of the message or be the last
|
||||
non-whitespace lines before a line that starts with '---'. Such three
|
||||
minus signs start the patch part of the message.
|
||||
|
||||
When reading trailers, there can be whitespaces after the
|
||||
When reading trailers, there can be whitespaces before and after the
|
||||
token, the separator and the value. There can also be whitespaces
|
||||
inside the token and the value. The value may be split over multiple lines with
|
||||
each subsequent line starting with whitespace, like the "folding" in RFC 822.
|
||||
inside the token and the value.
|
||||
|
||||
Note that 'trailers' do not follow and are not intended to follow many
|
||||
rules for RFC 822 headers. For example they do not follow
|
||||
the encoding rules and probably many other rules.
|
||||
rules for RFC 822 headers. For example they do not follow the line
|
||||
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.
|
||||
@ -221,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:
|
||||
+
|
||||
|
@ -29,14 +29,12 @@ OPTIONS
|
||||
(works only for a single file).
|
||||
|
||||
--no-decorate::
|
||||
--decorate[=short|full|auto|no]::
|
||||
--decorate[=short|full|no]::
|
||||
Print out the ref names of any commits that are shown. If 'short' is
|
||||
specified, the ref name prefixes 'refs/heads/', 'refs/tags/' and
|
||||
'refs/remotes/' will not be printed. If 'full' is specified, the
|
||||
full ref name (including prefix) will be printed. If 'auto' is
|
||||
specified, then if the output is going to a terminal, the ref names
|
||||
are shown as if 'short' were given, otherwise no ref names are
|
||||
shown. The default option is 'short'.
|
||||
full ref name (including prefix) will be printed. The default option
|
||||
is 'short'.
|
||||
|
||||
--source::
|
||||
Print out the ref name given on the command line by which each
|
||||
@ -198,16 +196,12 @@ log.showRoot::
|
||||
`git log -p` output would be shown without a diff attached.
|
||||
The default is `true`.
|
||||
|
||||
log.showSignature::
|
||||
If `true`, `git log` and related commands will act as if the
|
||||
`--show-signature` option was passed to them.
|
||||
|
||||
mailmap.*::
|
||||
See linkgit:git-shortlog[1].
|
||||
|
||||
notes.displayRef::
|
||||
Which refs, in addition to the default set by `core.notesRef`
|
||||
or `GIT_NOTES_REF`, to read notes from when showing commit
|
||||
or 'GIT_NOTES_REF', to read notes from when showing commit
|
||||
messages with the `log` family of commands. See
|
||||
linkgit:git-notes[1].
|
||||
+
|
||||
@ -216,7 +210,7 @@ multiple times. A warning will be issued for refs that do not exist,
|
||||
but a glob that does not match any refs is silently ignored.
|
||||
+
|
||||
This setting can be disabled by the `--no-notes` option,
|
||||
overridden by the `GIT_NOTES_DISPLAY_REF` environment variable,
|
||||
overridden by the 'GIT_NOTES_DISPLAY_REF' environment variable,
|
||||
and overridden by the `--notes=<ref>` option.
|
||||
|
||||
GIT
|
||||
|
@ -12,14 +12,12 @@ 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>]
|
||||
[--exclude-standard]
|
||||
[--error-unmatch] [--with-tree=<tree-ish>]
|
||||
[--full-name] [--recurse-submodules]
|
||||
[--abbrev] [--] [<file>...]
|
||||
[--full-name] [--abbrev] [--] [<file>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -138,10 +136,6 @@ a space) at the start of each line:
|
||||
option forces paths to be output relative to the project
|
||||
top directory.
|
||||
|
||||
--recurse-submodules::
|
||||
Recursively calls ls-files on each submodule in the repository.
|
||||
Currently there is only support for the --cached mode.
|
||||
|
||||
--abbrev[=<n>]::
|
||||
Instead of showing the full 40-byte hexadecimal object
|
||||
lines, show only a partial prefix.
|
||||
@ -153,23 +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".
|
||||
Since Git 2.10 "text=auto eol=lf" and "text=auto eol=crlf" are supported.
|
||||
+
|
||||
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.
|
||||
|
||||
@ -179,14 +156,11 @@ followed by the ("attr/<eolattr>").
|
||||
|
||||
Output
|
||||
------
|
||||
'git ls-files' just outputs the filenames unless `--stage` is specified in
|
||||
'git ls-files' just outputs the filenames unless '--stage' is specified in
|
||||
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] [--upload-pack=<exec>]
|
||||
[--exit-code] <repository> [<refs>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -30,13 +29,6 @@ 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.
|
||||
|
||||
--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 +46,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
|
||||
|
@ -20,16 +20,16 @@ in the current working directory. Note that:
|
||||
|
||||
- the behaviour is slightly different from that of "/bin/ls" in that the
|
||||
'<path>' denotes just a list of patterns to match, e.g. so specifying
|
||||
directory name (without `-r`) will behave differently, and order of the
|
||||
directory name (without '-r') will behave differently, and order of the
|
||||
arguments does not matter.
|
||||
|
||||
- the behaviour is similar to that of "/bin/ls" in that the '<path>' is
|
||||
taken as relative to the current working directory. E.g. when you are
|
||||
in a directory 'sub' that has a directory 'dir', you can run 'git
|
||||
ls-tree -r HEAD dir' to list the contents of the tree (that is
|
||||
'sub/dir' in `HEAD`). You don't want to give a tree that is not at the
|
||||
'sub/dir' in 'HEAD'). You don't want to give a tree that is not at the
|
||||
root level (e.g. `git ls-tree -r HEAD:sub dir`) in this case, as that
|
||||
would result in asking for 'sub/sub/dir' in the `HEAD` commit.
|
||||
would result in asking for 'sub/sub/dir' in the 'HEAD' commit.
|
||||
However, the current working directory can be ignored by passing
|
||||
--full-tree option.
|
||||
|
||||
@ -46,7 +46,7 @@ OPTIONS
|
||||
|
||||
-t::
|
||||
Show tree entries even when going to recurse them. Has no effect
|
||||
if `-r` was not passed. `-d` implies `-t`.
|
||||
if '-r' was not passed. '-d' implies '-t'.
|
||||
|
||||
-l::
|
||||
--long::
|
||||
|
@ -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.
|
||||
|
@ -8,8 +8,7 @@ git-mailsplit - Simple UNIX mbox splitter program
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git mailsplit' [-b] [-f<nn>] [-d<prec>] [--keep-cr] [--mboxrd]
|
||||
-o<directory> [--] [(<mbox>|<Maildir>)...]
|
||||
'git mailsplit' [-b] [-f<nn>] [-d<prec>] [--keep-cr] -o<directory> [--] [(<mbox>|<Maildir>)...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -48,10 +47,6 @@ OPTIONS
|
||||
--keep-cr::
|
||||
Do not remove `\r` from lines ending with `\r\n`.
|
||||
|
||||
--mboxrd::
|
||||
Input is of the "mboxrd" format and "^>+From " line escaping is
|
||||
reversed.
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
|
@ -80,8 +80,8 @@ which is reachable from both 'A' and 'B' through the parent relationship.
|
||||
|
||||
For example, with this topology:
|
||||
|
||||
o---o---o---B
|
||||
/
|
||||
o---o---o---B
|
||||
/
|
||||
---o---1---o---o---o---A
|
||||
|
||||
the merge base between 'A' and 'B' is '1'.
|
||||
@ -116,11 +116,11 @@ the best common ancestor of all commits.
|
||||
When the history involves criss-cross merges, there can be more than one
|
||||
'best' common ancestor for two commits. For example, with this topology:
|
||||
|
||||
---1---o---A
|
||||
\ /
|
||||
X
|
||||
/ \
|
||||
---2---o---o---B
|
||||
---1---o---A
|
||||
\ /
|
||||
X
|
||||
/ \
|
||||
---2---o---o---B
|
||||
|
||||
both '1' and '2' are merge-bases of A and B. Neither one is better than
|
||||
the other (both are 'best' merge bases). When the `--all` option is not given,
|
||||
@ -154,13 +154,13 @@ topic origin/master`, the history of remote-tracking branch
|
||||
`origin/master` may have been rewound and rebuilt, leading to a
|
||||
history of this shape:
|
||||
|
||||
o---B1
|
||||
/
|
||||
o---B1
|
||||
/
|
||||
---o---o---B2--o---o---o---B (origin/master)
|
||||
\
|
||||
B3
|
||||
\
|
||||
Derived (topic)
|
||||
\
|
||||
B3
|
||||
\
|
||||
Derived (topic)
|
||||
|
||||
where `origin/master` used to point at commits B3, B2, B1 and now it
|
||||
points at B, and your `topic` branch was started on top of it back
|
||||
|
@ -11,7 +11,6 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git merge' [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
|
||||
[-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
|
||||
[--[no-]allow-unrelated-histories]
|
||||
[--[no-]rerere-autoupdate] [-m <msg>] [<commit>...]
|
||||
'git merge' <msg> HEAD <commit>...
|
||||
'git merge' --abort
|
||||
|
@ -79,13 +79,6 @@ success of the resolution after the custom tool has exited.
|
||||
Prompt before each invocation of the merge resolution program
|
||||
to give the user a chance to skip the path.
|
||||
|
||||
-O<orderfile>::
|
||||
Process files in the order specified in the
|
||||
<orderfile>, which has one shell glob pattern per line.
|
||||
This overrides the `diff.orderFile` configuration variable
|
||||
(see linkgit:git-config[1]). To cancel `diff.orderFile`,
|
||||
use `-O/dev/null`.
|
||||
|
||||
TEMPORARY FILES
|
||||
---------------
|
||||
`git mergetool` creates `*.orig` backup files while resolving merges.
|
||||
|
@ -32,7 +32,7 @@ OPTIONS
|
||||
--batch::
|
||||
Allow building of more than one tree object before exiting. Each
|
||||
tree is separated by as single blank line. The final new-line is
|
||||
optional. Note - if the `-z` option is used, lines are terminated
|
||||
optional. Note - if the '-z' option is used, lines are terminated
|
||||
with NUL.
|
||||
|
||||
GIT
|
||||
|
@ -32,10 +32,10 @@ OPTIONS
|
||||
--force::
|
||||
Force renaming or moving of a file even if the target exists
|
||||
-k::
|
||||
Skip move or rename actions which would lead to an error
|
||||
Skip move or rename actions which would lead to an error
|
||||
condition. An error happens when a source is neither existing nor
|
||||
controlled by Git, or when it would overwrite an existing
|
||||
file unless `-f` is given.
|
||||
file unless '-f' is given.
|
||||
-n::
|
||||
--dry-run::
|
||||
Do nothing; only show what would happen
|
||||
|
@ -152,7 +152,7 @@ OPTIONS
|
||||
|
||||
-c <object>::
|
||||
--reedit-message=<object>::
|
||||
Like '-C', but with `-c` the editor is invoked, so that
|
||||
Like '-C', but with '-c' the editor is invoked, so that
|
||||
the user can further edit the note message.
|
||||
|
||||
--allow-empty::
|
||||
@ -161,7 +161,7 @@ OPTIONS
|
||||
|
||||
--ref <ref>::
|
||||
Manipulate the notes tree in <ref>. This overrides
|
||||
`GIT_NOTES_REF` and the "core.notesRef" configuration. The ref
|
||||
'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.
|
||||
@ -333,10 +333,10 @@ notes.<name>.mergeStrategy::
|
||||
notes.displayRef::
|
||||
Which ref (or refs, if a glob or specified more than once), in
|
||||
addition to the default set by `core.notesRef` or
|
||||
`GIT_NOTES_REF`, to read notes from when showing commit
|
||||
'GIT_NOTES_REF', to read notes from when showing commit
|
||||
messages with the 'git log' family of commands.
|
||||
This setting can be overridden on the command line or by the
|
||||
`GIT_NOTES_DISPLAY_REF` environment variable.
|
||||
'GIT_NOTES_DISPLAY_REF' environment variable.
|
||||
See linkgit:git-log[1].
|
||||
|
||||
notes.rewrite.<command>::
|
||||
@ -345,7 +345,7 @@ notes.rewrite.<command>::
|
||||
notes from the original to the rewritten commit. Defaults to
|
||||
`true`. See also "`notes.rewriteRef`" below.
|
||||
+
|
||||
This setting can be overridden by the `GIT_NOTES_REWRITE_REF`
|
||||
This setting can be overridden by the 'GIT_NOTES_REWRITE_REF'
|
||||
environment variable.
|
||||
|
||||
notes.rewriteMode::
|
||||
@ -366,33 +366,33 @@ notes.rewriteRef::
|
||||
Does not have a default value; you must configure this variable to
|
||||
enable note rewriting.
|
||||
+
|
||||
Can be overridden with the `GIT_NOTES_REWRITE_REF` environment variable.
|
||||
Can be overridden with the 'GIT_NOTES_REWRITE_REF' environment variable.
|
||||
|
||||
|
||||
ENVIRONMENT
|
||||
-----------
|
||||
|
||||
`GIT_NOTES_REF`::
|
||||
'GIT_NOTES_REF'::
|
||||
Which ref to manipulate notes from, instead of `refs/notes/commits`.
|
||||
This overrides the `core.notesRef` setting.
|
||||
|
||||
`GIT_NOTES_DISPLAY_REF`::
|
||||
'GIT_NOTES_DISPLAY_REF'::
|
||||
Colon-delimited list of refs or globs indicating which refs,
|
||||
in addition to the default from `core.notesRef` or
|
||||
`GIT_NOTES_REF`, to read notes from when showing commit
|
||||
'GIT_NOTES_REF', to read notes from when showing commit
|
||||
messages.
|
||||
This overrides the `notes.displayRef` setting.
|
||||
+
|
||||
A warning will be issued for refs that do not exist, but a glob that
|
||||
does not match any refs is silently ignored.
|
||||
|
||||
`GIT_NOTES_REWRITE_MODE`::
|
||||
'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`.
|
||||
This overrides the `core.rewriteMode` setting.
|
||||
|
||||
`GIT_NOTES_REWRITE_REF`::
|
||||
'GIT_NOTES_REWRITE_REF'::
|
||||
When rewriting commits, which notes to copy from the original
|
||||
to the rewritten commit. Must be a colon-delimited list of
|
||||
refs or globs.
|
||||
@ -402,4 +402,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
|
||||
|
@ -104,7 +104,7 @@ $ git p4 sync //path/in/your/perforce/depot
|
||||
------------
|
||||
This imports the specified depot into
|
||||
'refs/remotes/p4/master' in an existing Git repository. The
|
||||
`--branch` option can be used to specify a different branch to
|
||||
'--branch' option can be used to specify a different branch to
|
||||
be used for the p4 content.
|
||||
|
||||
If a Git repository includes branches 'refs/remotes/origin/p4', these
|
||||
@ -114,7 +114,7 @@ from a Git remote, this can be useful in a multi-developer environment.
|
||||
|
||||
If there are multiple branches, doing 'git p4 sync' will automatically
|
||||
use the "BRANCH DETECTION" algorithm to try to partition new changes
|
||||
into the right branch. This can be overridden with the `--branch`
|
||||
into the right branch. This can be overridden with the '--branch'
|
||||
option to specify just a single branch to update.
|
||||
|
||||
|
||||
@ -134,7 +134,7 @@ Submit
|
||||
~~~~~~
|
||||
Submitting changes from a Git repository back to the p4 repository
|
||||
requires a separate p4 client workspace. This should be specified
|
||||
using the `P4CLIENT` environment variable or the Git configuration
|
||||
using the 'P4CLIENT' environment variable or the Git configuration
|
||||
variable 'git-p4.client'. The p4 client must exist, but the client root
|
||||
will be created and populated if it does not already exist.
|
||||
|
||||
@ -150,10 +150,10 @@ $ git p4 submit topicbranch
|
||||
------------
|
||||
|
||||
The upstream reference is generally 'refs/remotes/p4/master', but can
|
||||
be overridden using the `--origin=` command-line option.
|
||||
be overridden using the '--origin=' command-line option.
|
||||
|
||||
The p4 changes will be created as the user invoking 'git p4 submit'. The
|
||||
`--preserve-user` option will cause ownership to be modified
|
||||
'--preserve-user' option will cause ownership to be modified
|
||||
according to the author of the Git commit. This option requires admin
|
||||
privileges in p4, which can be granted using 'p4 protect'.
|
||||
|
||||
@ -166,7 +166,7 @@ General options
|
||||
All commands except clone accept these options.
|
||||
|
||||
--git-dir <dir>::
|
||||
Set the `GIT_DIR` environment variable. See linkgit:git[1].
|
||||
Set the 'GIT_DIR' environment variable. See linkgit:git[1].
|
||||
|
||||
-v::
|
||||
--verbose::
|
||||
@ -221,7 +221,7 @@ Git repository:
|
||||
where they will be treated as remote-tracking branches by
|
||||
linkgit:git-branch[1] and other commands. This option instead
|
||||
puts p4 branches in 'refs/heads/p4/'. Note that future
|
||||
sync operations must specify `--import-local` as well so that
|
||||
sync operations must specify '--import-local' as well so that
|
||||
they can find the p4 branches in refs/heads.
|
||||
|
||||
--max-changes <n>::
|
||||
@ -245,7 +245,7 @@ Git repository:
|
||||
default, involves removing the entire depot path. With this
|
||||
option, the full p4 depot path is retained in Git. For example,
|
||||
path '//depot/main/foo/bar.c', when imported from
|
||||
'//depot/main/', becomes 'foo/bar.c'. With `--keep-path`, the
|
||||
'//depot/main/', becomes 'foo/bar.c'. With '--keep-path', the
|
||||
Git path is instead 'depot/main/foo/bar.c'.
|
||||
|
||||
--use-client-spec::
|
||||
@ -275,7 +275,7 @@ These options can be used to modify 'git p4 submit' behavior.
|
||||
--origin <commit>::
|
||||
Upstream location from which commits are identified to submit to
|
||||
p4. By default, this is the most recent p4 commit reachable
|
||||
from `HEAD`.
|
||||
from 'HEAD'.
|
||||
|
||||
-M::
|
||||
Detect renames. See linkgit:git-diff[1]. Renames will be
|
||||
@ -341,7 +341,7 @@ p4 revision specifier on the end:
|
||||
Import all changes from both named depot paths into a single
|
||||
repository. Only files below these directories are included.
|
||||
There is not a subdirectory in Git for each "proj1" and "proj2".
|
||||
You must use the `--destination` option when specifying more
|
||||
You must use the '--destination' option when specifying more
|
||||
than one depot path. The revision specifier must be specified
|
||||
identically on each depot path. If there are files in the
|
||||
depot paths with the same name, the path with the most recently
|
||||
@ -355,7 +355,7 @@ CLIENT SPEC
|
||||
The p4 client specification is maintained with the 'p4 client' command
|
||||
and contains among other fields, a View that specifies how the depot
|
||||
is mapped into the client repository. The 'clone' and 'sync' commands
|
||||
can consult the client spec when given the `--use-client-spec` option or
|
||||
can consult the client spec when given the '--use-client-spec' option or
|
||||
when the useClientSpec variable is true. After 'git p4 clone', the
|
||||
useClientSpec variable is automatically set in the repository
|
||||
configuration file. This allows future 'git p4 submit' commands to
|
||||
@ -390,7 +390,7 @@ different areas in the tree, and indicate related content. 'git p4'
|
||||
can use these mappings to determine branch relationships.
|
||||
|
||||
If you have a repository where all the branches of interest exist as
|
||||
subdirectories of a single depot path, you can use `--detect-branches`
|
||||
subdirectories of a single depot path, you can use '--detect-branches'
|
||||
when cloning or syncing to have 'git p4' automatically find
|
||||
subdirectories in p4, and to generate these as branches in Git.
|
||||
|
||||
@ -507,7 +507,7 @@ git-p4.labelImportRegexp::
|
||||
git-p4.useClientSpec::
|
||||
Specify that the p4 client spec should be used to identify p4
|
||||
depot paths of interest. This is equivalent to specifying the
|
||||
option `--use-client-spec`. See the "CLIENT SPEC" section above.
|
||||
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::
|
||||
@ -515,18 +515,20 @@ git-p4.pathEncoding::
|
||||
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.
|
||||
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:
|
||||
Only Git LFS [1] is implemented right now. Download
|
||||
and install the Git LFS command line extension to use this option
|
||||
and configure it like this:
|
||||
+
|
||||
-------------
|
||||
git config git-p4.largeFileSystem GitLFS
|
||||
-------------
|
||||
+
|
||||
[1] https://git-lfs.github.com/
|
||||
|
||||
git-p4.largeFileExtensions::
|
||||
All files matching a file extension in the list will be processed
|
||||
@ -551,17 +553,6 @@ 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.
|
||||
|
||||
git-p4.mapUser::
|
||||
Map a P4 user to a name and email address in Git. Use a string
|
||||
with the following format to create a mapping:
|
||||
+
|
||||
-------------
|
||||
git config --add git-p4.mapUser "p4user = First Last <mail@address.com>"
|
||||
-------------
|
||||
+
|
||||
A mapping will override any user information from P4. Mappings for
|
||||
multiple P4 user can be defined.
|
||||
|
||||
Submit variables
|
||||
~~~~~~~~~~~~~~~~
|
||||
git-p4.detectRenames::
|
||||
|
@ -104,14 +104,13 @@ base-name::
|
||||
out of memory with a large window, but still be able to take
|
||||
advantage of the large window for the smaller objects. The
|
||||
size can be suffixed with "k", "m", or "g".
|
||||
`--window-memory=0` makes memory usage unlimited. The default
|
||||
is taken from the `pack.windowMemory` configuration variable.
|
||||
`--window-memory=0` makes memory usage unlimited, which is the
|
||||
default.
|
||||
|
||||
--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.
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user