Compare commits
60 Commits
Author | SHA1 | Date | |
---|---|---|---|
df5be6dc3f | |||
1a3609e402 | |||
e7fab62b73 | |||
c44088ecc4 | |||
fe29a9b7b0 | |||
a2b26ffb1a | |||
8ba8ed568e | |||
24036686c4 | |||
73aafe9bc2 | |||
a88dbd2f8c | |||
c42c0f1297 | |||
07259e74ec | |||
c716fe4bd9 | |||
17f1c0b8c7 | |||
9a6bbee800 | |||
a5ab8d0317 | |||
bb92255ebe | |||
bdfef0492c | |||
eb288bc455 | |||
68440496c7 | |||
9ac92fed5b | |||
7cdafcaacf | |||
e904deb89d | |||
d3ac8c3f27 | |||
66d2a6159f | |||
2ddcccf97a | |||
65d30a19de | |||
5532ebdeb7 | |||
76a681ce9c | |||
dd53ea7220 | |||
f82a97eb91 | |||
7f3551dd68 | |||
d2c84dad1c | |||
379e51d1ae | |||
817ddd64c2 | |||
cc756edda6 | |||
7530a6287e | |||
35edce2056 | |||
55953c77c0 | |||
ad15592529 | |||
a8dee3ca61 | |||
9102f958ee | |||
91bd46588e | |||
6d8684161e | |||
3a85dc7d53 | |||
7c3745fc61 | |||
288a74bcd2 | |||
a62f9d1ace | |||
4778452597 | |||
a7b1ad3b05 | |||
525e7fba78 | |||
e1d911dd4c | |||
0060fd1511 | |||
a52ed76142 | |||
68061e3470 | |||
019683025f | |||
e075dba372 | |||
11e934d56e | |||
816f806786 | |||
f94804c1f2 |
@ -6,8 +6,6 @@
|
||||
|
||||
# Use tabs whenever we need to fill whitespace that spans at least from one tab
|
||||
# stop to the next one.
|
||||
#
|
||||
# These settings are mirrored in .editorconfig. Keep them in sync.
|
||||
UseTab: Always
|
||||
TabWidth: 8
|
||||
IndentWidth: 8
|
||||
|
@ -1,16 +0,0 @@
|
||||
[*]
|
||||
charset = utf-8
|
||||
insert_final_newline = true
|
||||
|
||||
# The settings for C (*.c and *.h) files are mirrored in .clang-format. Keep
|
||||
# them in sync.
|
||||
[*.{c,h,sh,perl,pl,pm}]
|
||||
indent_style = tab
|
||||
tab_width = 8
|
||||
|
||||
[*.py]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[COMMIT_EDITMSG]
|
||||
max_line_length = 72
|
12
.gitattributes
vendored
12
.gitattributes
vendored
@ -1,15 +1,9 @@
|
||||
* whitespace=!indent,trail,space
|
||||
*.[ch] whitespace=indent,trail,space diff=cpp
|
||||
*.sh whitespace=indent,trail,space eol=lf
|
||||
*.perl eol=lf diff=perl
|
||||
*.pl eof=lf diff=perl
|
||||
*.pm eol=lf diff=perl
|
||||
*.py eol=lf diff=python
|
||||
/Documentation/**/*.txt eol=lf
|
||||
*.perl eol=lf
|
||||
*.pm eol=lf
|
||||
/Documentation/git-*.txt eol=lf
|
||||
/command-list.txt eol=lf
|
||||
/GIT-VERSION-GEN eol=lf
|
||||
/mergetools/* eol=lf
|
||||
/Documentation/git-merge.txt conflict-marker-size=32
|
||||
/Documentation/gitk.txt conflict-marker-size=32
|
||||
/Documentation/user-manual.txt conflict-marker-size=32
|
||||
/t/t????-*.sh conflict-marker-size=32
|
||||
|
17
.gitignore
vendored
17
.gitignore
vendored
@ -1,12 +1,8 @@
|
||||
/fuzz_corpora
|
||||
/fuzz-pack-headers
|
||||
/fuzz-pack-idx
|
||||
/GIT-BUILD-OPTIONS
|
||||
/GIT-CFLAGS
|
||||
/GIT-LDFLAGS
|
||||
/GIT-PREFIX
|
||||
/GIT-PERL-DEFINES
|
||||
/GIT-PERL-HEADER
|
||||
/GIT-PYTHON-VARS
|
||||
/GIT-SCRIPT-DEFINES
|
||||
/GIT-USER-AGENT
|
||||
@ -38,7 +34,6 @@
|
||||
/git-clone
|
||||
/git-column
|
||||
/git-commit
|
||||
/git-commit-graph
|
||||
/git-commit-tree
|
||||
/git-config
|
||||
/git-count-objects
|
||||
@ -81,7 +76,6 @@
|
||||
/git-init-db
|
||||
/git-interpret-trailers
|
||||
/git-instaweb
|
||||
/git-legacy-rebase
|
||||
/git-log
|
||||
/git-ls-files
|
||||
/git-ls-remote
|
||||
@ -103,9 +97,8 @@
|
||||
/git-mergetool--lib
|
||||
/git-mktag
|
||||
/git-mktree
|
||||
/git-multi-pack-index
|
||||
/git-mv
|
||||
/git-name-rev
|
||||
/git-mv
|
||||
/git-notes
|
||||
/git-p4
|
||||
/git-pack-redundant
|
||||
@ -118,14 +111,12 @@
|
||||
/git-pull
|
||||
/git-push
|
||||
/git-quiltimport
|
||||
/git-range-diff
|
||||
/git-read-tree
|
||||
/git-rebase
|
||||
/git-rebase--am
|
||||
/git-rebase--common
|
||||
/git-rebase--helper
|
||||
/git-rebase--interactive
|
||||
/git-rebase--merge
|
||||
/git-rebase--preserve-merges
|
||||
/git-receive-pack
|
||||
/git-reflog
|
||||
/git-remote
|
||||
@ -149,7 +140,6 @@
|
||||
/git-rm
|
||||
/git-send-email
|
||||
/git-send-pack
|
||||
/git-serve
|
||||
/git-sh-i18n
|
||||
/git-sh-i18n--envsubst
|
||||
/git-sh-setup
|
||||
@ -189,7 +179,7 @@
|
||||
/gitweb/gitweb.cgi
|
||||
/gitweb/static/gitweb.js
|
||||
/gitweb/static/gitweb.min.*
|
||||
/command-list.h
|
||||
/common-cmds.h
|
||||
*.tar.gz
|
||||
*.dsc
|
||||
*.deb
|
||||
@ -213,7 +203,6 @@
|
||||
/config.mak.autogen
|
||||
/config.mak.append
|
||||
/configure
|
||||
/.vscode/
|
||||
/tags
|
||||
/TAGS
|
||||
/cscope*
|
||||
|
28
.mailmap
28
.mailmap
@ -21,30 +21,25 @@ Anders Kaseorg <andersk@MIT.EDU> <andersk@mit.edu>
|
||||
Aneesh Kumar K.V <aneesh.kumar@gmail.com>
|
||||
Amos Waterland <apw@debian.org> <apw@rossby.metr.ou.edu>
|
||||
Amos Waterland <apw@debian.org> <apw@us.ibm.com>
|
||||
Ben Peart <benpeart@microsoft.com> <Ben.Peart@microsoft.com>
|
||||
Ben Peart <benpeart@microsoft.com> <peartben@gmail.com>
|
||||
Ben Walton <bdwalton@gmail.com> <bwalton@artsci.utoronto.ca>
|
||||
Benoit Sigoure <tsunanet@gmail.com> <tsuna@lrde.epita.fr>
|
||||
Bernt Hansen <bernt@norang.ca> <bernt@alumni.uwaterloo.ca>
|
||||
Brandon Casey <drafnel@gmail.com> <casey@nrlssc.navy.mil>
|
||||
brian m. carlson <sandals@crustytoothpaste.net>
|
||||
brian m. carlson <sandals@crustytoothpaste.net> <sandals@crustytoothpaste.ath.cx>
|
||||
brian m. carlson <sandals@crustytoothpaste.ath.cx> Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
|
||||
brian m. carlson <sandals@crustytoothpaste.ath.cx> <sandals@crustytoothpaste.net>
|
||||
Bryan Larsen <bryan@larsen.st> <bryan.larsen@gmail.com>
|
||||
Bryan Larsen <bryan@larsen.st> <bryanlarsen@yahoo.com>
|
||||
Cheng Renquan <crquan@gmail.com>
|
||||
Chris Shoemaker <c.shoemaker@cox.net>
|
||||
Chris Wright <chrisw@sous-sol.org> <chrisw@osdl.org>
|
||||
Christian Ludwig <chrissicool@gmail.com> <chrissicool@googlemail.com>
|
||||
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>
|
||||
Christopher Díaz Riveros <chrisadr@gentoo.org> Christopher Diaz Riveros
|
||||
Csaba Henk <csaba@gluster.com> <csaba@lowlife.hu>
|
||||
Dan Johnson <computerdruid@gmail.com>
|
||||
Dana L. How <danahow@gmail.com> <how@deathvalley.cswitch.com>
|
||||
Dana L. How <danahow@gmail.com> Dana How
|
||||
Daniel Barkalow <barkalow@iabervon.org>
|
||||
Daniel Knittl-Frank <knittl89@googlemail.com> knittl
|
||||
Daniel Trstenjak <daniel.trstenjak@gmail.com> <daniel.trstenjak@online.de>
|
||||
Daniel Trstenjak <daniel.trstenjak@gmail.com> <trsten@science-computing.de>
|
||||
David Brown <git@davidb.org> <davidb@quicinc.com>
|
||||
@ -54,7 +49,6 @@ 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>
|
||||
Derrick Stolee <dstolee@microsoft.com> <stolee@gmail.com>
|
||||
Deskin Miller <deskinm@umich.edu>
|
||||
Dirk Süsserott <newsletter@dirk.my1.cc>
|
||||
Eric Blake <eblake@redhat.com> <ebb9@byu.net>
|
||||
@ -63,7 +57,6 @@ 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>
|
||||
Fangyi Zhou <fangyi.zhou@yuriko.moe> Zhou Fangyi
|
||||
Florian Achleitner <florian.achleitner.2.6.31@gmail.com> <florian.achleitner2.6.31@gmail.com>
|
||||
Franck Bui-Huu <vagabon.xyz@gmail.com> <fbuihuu@gmail.com>
|
||||
Frank Lichtenheld <frank@lichtenheld.de> <djpig@debian.org>
|
||||
@ -93,8 +86,6 @@ Jason McMullan <mcmullan@netapp.com>
|
||||
Jason Riedy <ejr@eecs.berkeley.edu> <ejr@EECS.Berkeley.EDU>
|
||||
Jason Riedy <ejr@eecs.berkeley.edu> <ejr@cs.berkeley.edu>
|
||||
Jay Soffian <jaysoffian@gmail.com> <jaysoffian+git@gmail.com>
|
||||
Jean-Noël Avila <jn.avila@free.fr> Jean-Noel Avila
|
||||
Jean-Noël Avila <jn.avila@free.fr> Jean-Noël AVILA
|
||||
Jeff King <peff@peff.net> <peff@github.com>
|
||||
Jeff Muizelaar <jmuizelaar@mozilla.com> <jeff@infidigm.net>
|
||||
Jens Axboe <axboe@kernel.dk> <axboe@suse.de>
|
||||
@ -102,7 +93,6 @@ Jens Axboe <axboe@kernel.dk> <jens.axboe@oracle.com>
|
||||
Jens Lindström <jl@opera.com> Jens Lindstrom <jl@opera.com>
|
||||
Jim Meyering <jim@meyering.net> <meyering@redhat.com>
|
||||
Joachim Berdal Haga <cjhaga@fys.uio.no>
|
||||
Joachim Jablon <joachim.jablon@people-doc.com> <ewjoachim@gmail.com>
|
||||
Johannes Schindelin <Johannes.Schindelin@gmx.de> <johannes.schindelin@gmx.de>
|
||||
Johannes Sixt <j6t@kdbg.org> <J.Sixt@eudaptics.com>
|
||||
Johannes Sixt <j6t@kdbg.org> <j.sixt@viscovery.net>
|
||||
@ -155,15 +145,12 @@ Mark Levedahl <mdl123@verizon.net> <mlevedahl@gmail.com>
|
||||
Mark Rada <marada@uwaterloo.ca>
|
||||
Martin Langhoff <martin@laptop.org> <martin@catalyst.net.nz>
|
||||
Martin von Zweigbergk <martinvonz@gmail.com> <martin.von.zweigbergk@gmail.com>
|
||||
Masaya Suzuki <masayasuzuki@google.com> <draftcode@gmail.com>
|
||||
Matt Draisey <matt@draisey.ca> <mattdraisey@sympatico.ca>
|
||||
Matt Kraai <kraai@ftbfs.org> <matt.kraai@amo.abbott.com>
|
||||
Matt McCutchen <matt@mattmccutchen.net> <hashproduct@gmail.com>
|
||||
Matthias Kestenholz <matthias@spinlock.ch> <mk@spinlock.ch>
|
||||
Matthias Rüster <matthias.ruester@gmail.com> Matthias Ruester
|
||||
Matthias Urlichs <matthias@urlichs.de> <smurf@kiste.(none)>
|
||||
Matthias Urlichs <matthias@urlichs.de> <smurf@smurf.noris.de>
|
||||
Matthieu Moy <git@matthieu-moy.fr> <Matthieu.Moy@imag.fr>
|
||||
Michael Coleman <tutufan@gmail.com>
|
||||
Michael J Gruber <git@grubix.eu> <michaeljgruber+gmane@fastmail.fm>
|
||||
Michael J Gruber <git@grubix.eu> <git@drmicha.warpmail.net>
|
||||
@ -187,11 +174,7 @@ Nick Stokoe <nick@noodlefactory.co.uk> Nick Woolley <nick@noodlefactory.co.uk>
|
||||
Nick Stokoe <nick@noodlefactory.co.uk> Nick Woolley <nickwoolley@yahoo.co.uk>
|
||||
Nicolas Morey-Chaisemartin <devel-git@morey-chaisemartin.com> <nicolas.morey@free.fr>
|
||||
Nicolas Morey-Chaisemartin <devel-git@morey-chaisemartin.com> <nmorey@kalray.eu>
|
||||
Nicolas Morey-Chaisemartin <devel-git@morey-chaisemartin.com> <nicolas@morey-chaisemartin.com>
|
||||
Nicolas Morey-Chaisemartin <devel-git@morey-chaisemartin.com> <NMoreyChaisemartin@suse.com>
|
||||
Nicolas Morey-Chaisemartin <devel-git@morey-chaisemartin.com> <nmoreychaisemartin@suse.com>
|
||||
Nicolas Sebrecht <nicolas.s.dev@gmx.fr> <ni.s@laposte.net>
|
||||
Orgad Shaneh <orgads@gmail.com> <orgad.shaneh@audiocodes.com>
|
||||
Paolo Bonzini <bonzini@gnu.org> <paolo.bonzini@lu.unisi.ch>
|
||||
Pascal Obry <pascal@obry.net> <pascal.obry@gmail.com>
|
||||
Pascal Obry <pascal@obry.net> <pascal.obry@wanadoo.fr>
|
||||
@ -211,7 +194,6 @@ Philipp A. Hartmann <pah@qo.cx> <ph@sorgh.de>
|
||||
Philippe Bruhat <book@cpan.org>
|
||||
Ralf Thielow <ralf.thielow@gmail.com> <ralf.thielow@googlemail.com>
|
||||
Ramsay Jones <ramsay@ramsayjones.plus.com> <ramsay@ramsay1.demon.co.uk>
|
||||
Randall S. Becker <randall.becker@nexbridge.ca> <rsbecker@nexbridge.com>
|
||||
René Scharfe <l.s.r@web.de> <rene.scharfe@lsrfire.ath.cx>
|
||||
René Scharfe <l.s.r@web.de> Rene Scharfe
|
||||
Richard Hansen <rhansen@rhansen.org> <hansenr@google.com>
|
||||
@ -231,8 +213,6 @@ Sean Estabrooks <seanlkml@sympatico.ca>
|
||||
Sebastian Schuberth <sschuberth@gmail.com> <sschuberth@visageimaging.com>
|
||||
Seth Falcon <seth@userprimary.net> <sfalcon@fhcrc.org>
|
||||
Shawn O. Pearce <spearce@spearce.org>
|
||||
Wei Shuyu <wsy@dogben.com> Shuyu Wei
|
||||
Sidhant Sharma <tigerkid001@gmail.com> Sidhant Sharma [:tk]
|
||||
Simon Hausmann <hausmann@kde.org> <simon@lst.de>
|
||||
Simon Hausmann <hausmann@kde.org> <shausman@trolltech.com>
|
||||
Stefan Beller <stefanbeller@gmail.com> <stefanbeller@googlemail.com>
|
||||
@ -250,7 +230,6 @@ Steven Walter <stevenrwalter@gmail.com> <swalter@lpdev.prtdev.lexmark.com>
|
||||
Sven Verdoolaege <skimo@kotnet.org> <Sven.Verdoolaege@cs.kuleuven.ac.be>
|
||||
Sven Verdoolaege <skimo@kotnet.org> <skimo@liacs.nl>
|
||||
SZEDER Gábor <szeder.dev@gmail.com> <szeder@ira.uka.de>
|
||||
Tao Qingyun <taoqy@ls-a.me> <845767657@qq.com>
|
||||
Tay Ray Chuan <rctay89@gmail.com>
|
||||
Ted Percival <ted@midg3t.net> <ted.percival@quest.com>
|
||||
Theodore Ts'o <tytso@mit.edu>
|
||||
@ -274,8 +253,7 @@ Uwe Kleine-König <u.kleine-koenig@pengutronix.de> <ukleinek@informatik.uni-frei
|
||||
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> <uzeisberger@io.fsforth.de>
|
||||
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> <zeisberg@informatik.uni-freiburg.de>
|
||||
Ville Skyttä <ville.skytta@iki.fi> <scop@xemacs.org>
|
||||
Vitaly "_Vi" Shukela <vi0oss@gmail.com> <public_vi@tut.by>
|
||||
Vitaly "_Vi" Shukela <vi0oss@gmail.com> Vitaly _Vi Shukela
|
||||
Vitaly "_Vi" Shukela <public_vi@tut.by>
|
||||
W. Trevor King <wking@tremily.us> <wking@drexel.edu>
|
||||
William Pursell <bill.pursell@gmail.com>
|
||||
YONETANI Tomokazu <y0n3t4n1@gmail.com> <qhwt+git@les.ath.cx>
|
||||
|
22
.travis.yml
22
.travis.yml
@ -1,5 +1,7 @@
|
||||
language: c
|
||||
|
||||
sudo: false
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/travis-cache
|
||||
@ -12,9 +14,16 @@ compiler:
|
||||
- clang
|
||||
- gcc
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- language-pack-is
|
||||
- git-svn
|
||||
- apache2
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- env: jobname=GIT_TEST_GETTEXT_POISON
|
||||
- env: jobname=GETTEXT_POISON
|
||||
os: linux
|
||||
compiler:
|
||||
addons:
|
||||
@ -40,11 +49,22 @@ matrix:
|
||||
- env: jobname=StaticAnalysis
|
||||
os: linux
|
||||
compiler:
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- coccinelle
|
||||
before_install:
|
||||
script: ci/run-static-analysis.sh
|
||||
after_failure:
|
||||
- env: jobname=Documentation
|
||||
os: linux
|
||||
compiler:
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- asciidoc
|
||||
- xmlto
|
||||
before_install:
|
||||
script: ci/test-documentation.sh
|
||||
after_failure:
|
||||
|
||||
|
1
Documentation/.gitignore
vendored
1
Documentation/.gitignore
vendored
@ -12,4 +12,3 @@ cmds-*.txt
|
||||
mergetools-*.txt
|
||||
manpage-base-url.xsl
|
||||
SubmittingPatches.txt
|
||||
tmp-doc-diff/
|
||||
|
@ -118,24 +118,6 @@ For shell scripts specifically (not exhaustive):
|
||||
do this
|
||||
fi
|
||||
|
||||
- If a command sequence joined with && or || or | spans multiple
|
||||
lines, put each command on a separate line and put && and || and |
|
||||
operators at the end of each line, rather than the start. This
|
||||
means you don't need to use \ to join lines, since the above
|
||||
operators imply the sequence isn't finished.
|
||||
|
||||
(incorrect)
|
||||
grep blob verify_pack_result \
|
||||
| awk -f print_1.awk \
|
||||
| sort >actual &&
|
||||
...
|
||||
|
||||
(correct)
|
||||
grep blob verify_pack_result |
|
||||
awk -f print_1.awk |
|
||||
sort >actual &&
|
||||
...
|
||||
|
||||
- We prefer "test" over "[ ... ]".
|
||||
|
||||
- We do not write the noiseword "function" in front of shell
|
||||
@ -376,10 +358,7 @@ For C programs:
|
||||
string_list for sorted string lists, a hash map (mapping struct
|
||||
objects) named "struct decorate", amongst other things.
|
||||
|
||||
- When you come up with an API, document its functions and structures
|
||||
in the header file that exposes the API to its callers. Use what is
|
||||
in "strbuf.h" as a model for the appropriate tone and level of
|
||||
detail.
|
||||
- When you come up with an API, document it.
|
||||
|
||||
- The first #include in C files, except in platform specific compat/
|
||||
implementations, must be either "git-compat-util.h", "cache.h" or
|
||||
|
@ -73,14 +73,11 @@ TECH_DOCS += technical/hash-function-transition
|
||||
TECH_DOCS += technical/http-protocol
|
||||
TECH_DOCS += technical/index-format
|
||||
TECH_DOCS += technical/long-running-process-protocol
|
||||
TECH_DOCS += technical/multi-pack-index
|
||||
TECH_DOCS += technical/pack-format
|
||||
TECH_DOCS += technical/pack-heuristics
|
||||
TECH_DOCS += technical/pack-protocol
|
||||
TECH_DOCS += technical/partial-clone
|
||||
TECH_DOCS += technical/protocol-capabilities
|
||||
TECH_DOCS += technical/protocol-common
|
||||
TECH_DOCS += technical/protocol-v2
|
||||
TECH_DOCS += technical/racy-git
|
||||
TECH_DOCS += technical/send-pack-pipeline
|
||||
TECH_DOCS += technical/shallow
|
||||
@ -187,7 +184,7 @@ ASCIIDOC = asciidoctor
|
||||
ASCIIDOC_CONF =
|
||||
ASCIIDOC_HTML = xhtml5
|
||||
ASCIIDOC_DOCBOOK = docbook45
|
||||
ASCIIDOC_EXTRA += -acompat-mode -atabsize=8
|
||||
ASCIIDOC_EXTRA += -acompat-mode
|
||||
ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
|
||||
ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;'
|
||||
DBLATEX_COMMON =
|
||||
@ -286,7 +283,7 @@ docdep_prereqs = \
|
||||
mergetools-list.made $(mergetools_txt) \
|
||||
cmd-list.made $(cmds_txt)
|
||||
|
||||
doc.dep : $(docdep_prereqs) $(wildcard *.txt) $(wildcard config/*.txt) build-docdep.perl
|
||||
doc.dep : $(docdep_prereqs) $(wildcard *.txt) build-docdep.perl
|
||||
$(QUIET_GEN)$(RM) $@+ $@ && \
|
||||
$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
|
||||
mv $@+ $@
|
||||
@ -345,7 +342,7 @@ $(OBSOLETE_HTML): %.html : %.txto asciidoc.conf
|
||||
mv $@+ $@
|
||||
|
||||
manpage-base-url.xsl: manpage-base-url.xsl.in
|
||||
$(QUIET_GEN)sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
|
||||
sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
|
||||
|
||||
%.1 %.5 %.7 : %.xml manpage-base-url.xsl
|
||||
$(QUIET_XMLTO)$(RM) $@ && \
|
||||
|
@ -25,7 +25,7 @@ Fixes since v1.7.11.6
|
||||
references" nor "Reload" did not update what is shown as the
|
||||
contents of it, when the user overwrote the tag with "git tag -f".
|
||||
|
||||
* "git for-each-ref" did not correctly support more than one --sort
|
||||
* "git for-each-ref" did not currectly support more than one --sort
|
||||
option.
|
||||
|
||||
* "git log .." errored out saying it is both rev range and a path
|
||||
|
54
Documentation/RelNotes/2.14.6.txt
Normal file
54
Documentation/RelNotes/2.14.6.txt
Normal file
@ -0,0 +1,54 @@
|
||||
Git v2.14.6 Release Notes
|
||||
=========================
|
||||
|
||||
This release addresses the security issues CVE-2019-1348,
|
||||
CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352,
|
||||
CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387.
|
||||
|
||||
Fixes since v2.14.5
|
||||
-------------------
|
||||
|
||||
* CVE-2019-1348:
|
||||
The --export-marks option of git fast-import is exposed also via
|
||||
the in-stream command feature export-marks=... and it allows
|
||||
overwriting arbitrary paths.
|
||||
|
||||
* CVE-2019-1349:
|
||||
When submodules are cloned recursively, under certain circumstances
|
||||
Git could be fooled into using the same Git directory twice. We now
|
||||
require the directory to be empty.
|
||||
|
||||
* CVE-2019-1350:
|
||||
Incorrect quoting of command-line arguments allowed remote code
|
||||
execution during a recursive clone in conjunction with SSH URLs.
|
||||
|
||||
* CVE-2019-1351:
|
||||
While the only permitted drive letters for physical drives on
|
||||
Windows are letters of the US-English alphabet, this restriction
|
||||
does not apply to virtual drives assigned via subst <letter>:
|
||||
<path>. Git mistook such paths for relative paths, allowing writing
|
||||
outside of the worktree while cloning.
|
||||
|
||||
* CVE-2019-1352:
|
||||
Git was unaware of NTFS Alternate Data Streams, allowing files
|
||||
inside the .git/ directory to be overwritten during a clone.
|
||||
|
||||
* CVE-2019-1353:
|
||||
When running Git in the Windows Subsystem for Linux (also known as
|
||||
"WSL") while accessing a working directory on a regular Windows
|
||||
drive, none of the NTFS protections were active.
|
||||
|
||||
* CVE-2019-1354:
|
||||
Filenames on Linux/Unix can contain backslashes. On Windows,
|
||||
backslashes are directory separators. Git did not use to refuse to
|
||||
write out tracked files with such filenames.
|
||||
|
||||
* CVE-2019-1387:
|
||||
Recursive clones are currently affected by a vulnerability that is
|
||||
caused by too-lax validation of submodule names, allowing very
|
||||
targeted attacks via remote code execution in recursive clones.
|
||||
|
||||
Credit for finding these vulnerabilities goes to Microsoft Security
|
||||
Response Center, in particular to Nicolas Joly. The `fast-import`
|
||||
fixes were provided by Jeff King, the other fixes by Johannes
|
||||
Schindelin with help from Garima Singh.
|
11
Documentation/RelNotes/2.15.4.txt
Normal file
11
Documentation/RelNotes/2.15.4.txt
Normal file
@ -0,0 +1,11 @@
|
||||
Git v2.15.4 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.14.6 to address
|
||||
the security issues CVE-2019-1348, CVE-2019-1349, CVE-2019-1350,
|
||||
CVE-2019-1351, CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, and
|
||||
CVE-2019-1387; see the release notes for that version for details.
|
||||
|
||||
In conjunction with a vulnerability that was fixed in v2.20.2,
|
||||
`.gitmodules` is no longer allowed to contain entries of the form
|
||||
`submodule.<name>.update=!command`.
|
8
Documentation/RelNotes/2.16.6.txt
Normal file
8
Documentation/RelNotes/2.16.6.txt
Normal file
@ -0,0 +1,8 @@
|
||||
Git v2.16.6 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.14.6 and in
|
||||
v2.15.4 addressing the security issues CVE-2019-1348, CVE-2019-1349,
|
||||
CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, CVE-2019-1353,
|
||||
CVE-2019-1354, and CVE-2019-1387; see the release notes for those
|
||||
versions for details.
|
@ -342,7 +342,7 @@ Fixes since v2.16
|
||||
validate the data and connected-ness of objects in the received
|
||||
pack; the code to perform this check has been taught about the
|
||||
narrow clone's convention that missing objects that are reachable
|
||||
from objects in a pack that came from a promisor remote is OK.
|
||||
from objects in a pack that came from a promissor remote is OK.
|
||||
|
||||
* There was an unused file-scope static variable left in http.c when
|
||||
building for versions of libCURL that is older than 7.19.4, which
|
||||
|
12
Documentation/RelNotes/2.17.3.txt
Normal file
12
Documentation/RelNotes/2.17.3.txt
Normal file
@ -0,0 +1,12 @@
|
||||
Git v2.17.3 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.14.6 and in
|
||||
v2.15.4 addressing the security issues CVE-2019-1348, CVE-2019-1349,
|
||||
CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, CVE-2019-1353,
|
||||
CVE-2019-1354, and CVE-2019-1387; see the release notes for those
|
||||
versions for details.
|
||||
|
||||
In addition, `git fsck` was taught to identify `.gitmodules` entries
|
||||
of the form `submodule.<name>.update=!command`, which have been
|
||||
disallowed in v2.15.4.
|
16
Documentation/RelNotes/2.17.4.txt
Normal file
16
Documentation/RelNotes/2.17.4.txt
Normal file
@ -0,0 +1,16 @@
|
||||
Git v2.17.4 Release Notes
|
||||
=========================
|
||||
|
||||
This release is to address the security issue: CVE-2020-5260
|
||||
|
||||
Fixes since v2.17.3
|
||||
-------------------
|
||||
|
||||
* With a crafted URL that contains a newline in it, the credential
|
||||
helper machinery can be fooled to give credential information for
|
||||
a wrong host. The attack has been made impossible by forbidding
|
||||
a newline character in any value passed via the credential
|
||||
protocol.
|
||||
|
||||
Credit for finding the vulnerability goes to Felix Wilhelm of Google
|
||||
Project Zero.
|
22
Documentation/RelNotes/2.17.5.txt
Normal file
22
Documentation/RelNotes/2.17.5.txt
Normal file
@ -0,0 +1,22 @@
|
||||
Git v2.17.5 Release Notes
|
||||
=========================
|
||||
|
||||
This release is to address a security issue: CVE-2020-11008
|
||||
|
||||
Fixes since v2.17.4
|
||||
-------------------
|
||||
|
||||
* With a crafted URL that contains a newline or empty host, or lacks
|
||||
a scheme, the credential helper machinery can be fooled into
|
||||
providing credential information that is not appropriate for the
|
||||
protocol in use and host being contacted.
|
||||
|
||||
Unlike the vulnerability CVE-2020-5260 fixed in v2.17.4, the
|
||||
credentials are not for a host of the attacker's choosing; instead,
|
||||
they are for some unspecified host (based on how the configured
|
||||
credential helper handles an absent "host" parameter).
|
||||
|
||||
The attack has been made impossible by refusing to work with
|
||||
under-specified credential patterns.
|
||||
|
||||
Credit for finding the vulnerability goes to Carlo Arenas.
|
@ -1,583 +0,0 @@
|
||||
Git 2.18 Release Notes
|
||||
======================
|
||||
|
||||
Updates since v2.17
|
||||
-------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* Rename detection logic that is used in "merge" and "cherry-pick" has
|
||||
learned to guess when all of x/a, x/b and x/c have moved to z/a,
|
||||
z/b and z/c, it is likely that x/d added in the meantime would also
|
||||
want to move to z/d by taking the hint that the entire directory
|
||||
'x' moved to 'z'. A bug causing dirty files involved in a rename
|
||||
to be overwritten during merge has also been fixed as part of this
|
||||
work. Incidentally, this also avoids updating a file in the
|
||||
working tree after a (non-trivial) merge whose result matches what
|
||||
our side originally had.
|
||||
|
||||
* "git filter-branch" learned to use a different exit code to allow
|
||||
the callers to tell the case where there was no new commits to
|
||||
rewrite from other error cases.
|
||||
|
||||
* When built with more recent cURL, GIT_SSL_VERSION can now specify
|
||||
"tlsv1.3" as its value.
|
||||
|
||||
* "git gui" learned that "~/.ssh/id_ecdsa.pub" and
|
||||
"~/.ssh/id_ed25519.pub" are also possible SSH key files.
|
||||
(merge 2e2f0288ef bb/git-gui-ssh-key-files later to maint).
|
||||
|
||||
* "git gui" performs commit upon CTRL/CMD+ENTER but the
|
||||
CTRL/CMD+KP_ENTER (i.e. enter key on the numpad) did not have the
|
||||
same key binding. It now does.
|
||||
(merge 28a1d94a06 bp/git-gui-bind-kp-enter later to maint).
|
||||
|
||||
* "git gui" has been taught to work with old versions of tk (like
|
||||
8.5.7) that do not support "ttk::style theme use" as a way to query
|
||||
the current theme.
|
||||
(merge 4891961105 cb/git-gui-ttk-style later to maint).
|
||||
|
||||
* "git rebase" has learned to honor "--signoff" option when using
|
||||
backends other than "am" (but not "--preserve-merges").
|
||||
|
||||
* "git branch --list" during an interrupted "rebase -i" now lets
|
||||
users distinguish the case where a detached HEAD is being rebased
|
||||
and a normal branch is being rebased.
|
||||
|
||||
* "git mergetools" learned talking to guiffy.
|
||||
|
||||
* The scripts in contrib/emacs/ have outlived their usefulness and
|
||||
have been replaced with a stub that errors out and tells the user
|
||||
there are replacements.
|
||||
|
||||
* The new "working-tree-encoding" attribute can ask Git to convert the
|
||||
contents to the specified encoding when checking out to the working
|
||||
tree (and the other way around when checking in).
|
||||
|
||||
* The "git config" command uses separate options e.g. "--int",
|
||||
"--bool", etc. to specify what type the caller wants the value to
|
||||
be interpreted as. A new "--type=<typename>" option has been
|
||||
introduced, which would make it cleaner to define new types.
|
||||
|
||||
* "git config --get" learned the "--default" option, to help the
|
||||
calling script. Building on top of the above changes, the
|
||||
"git config" learns "--type=color" type. Taken together, you can
|
||||
do things like "git config --get foo.color --default blue" and get
|
||||
the ANSI color sequence for the color given to foo.color variable,
|
||||
or "blue" if the variable does not exist.
|
||||
|
||||
* "git ls-remote" learned an option to allow sorting its output based
|
||||
on the refnames being shown.
|
||||
|
||||
* The command line completion (in contrib/) has been taught that "git
|
||||
stash save" has been deprecated ("git stash push" is the preferred
|
||||
spelling in the new world) and does not offer it as a possible
|
||||
completion candidate when "git stash push" can be.
|
||||
|
||||
* "git gc --prune=nonsense" spent long time repacking and then
|
||||
silently failed when underlying "git prune --expire=nonsense"
|
||||
failed to parse its command line. This has been corrected.
|
||||
|
||||
* Error messages from "git push" can be painted for more visibility.
|
||||
|
||||
* "git http-fetch" (deprecated) had an optional and experimental
|
||||
"feature" to fetch only commits and/or trees, which nobody used.
|
||||
This has been removed.
|
||||
|
||||
* The functionality of "$GIT_DIR/info/grafts" has been superseded by
|
||||
the "refs/replace/" mechanism for some time now, but the internal
|
||||
code had support for it in many places, which has been cleaned up
|
||||
in order to drop support of the "grafts" mechanism.
|
||||
|
||||
* "git worktree add" learned to check out an existing branch.
|
||||
|
||||
* "git --no-pager cmd" did not have short-and-sweet single letter
|
||||
option. Now it does as "-P".
|
||||
(merge 7213c28818 js/no-pager-shorthand later to maint).
|
||||
|
||||
* "git rebase" learned "--rebase-merges" to transplant the whole
|
||||
topology of commit graph elsewhere.
|
||||
|
||||
* "git status" learned to pay attention to UI related diff
|
||||
configuration variables such as diff.renames.
|
||||
|
||||
* The command line completion mechanism (in contrib/) learned to load
|
||||
custom completion file for "git $command" where $command is a
|
||||
custom "git-$command" that the end user has on the $PATH when using
|
||||
newer version of bash-completion.
|
||||
|
||||
* "git send-email" can sometimes offer confirmation dialog "Send this
|
||||
email?" with choices 'Yes', 'No', 'Quit', and 'All'. A new action
|
||||
'Edit' has been added to this dialog's choice.
|
||||
|
||||
* With merge.renames configuration set to false, the recursive merge
|
||||
strategy can be told not to spend cycles trying to find renamed
|
||||
paths and merge them accordingly.
|
||||
|
||||
* "git status" learned to honor a new status.renames configuration to
|
||||
skip rename detection, which could be useful for those who want to
|
||||
do so without disabling the default rename detection done by the
|
||||
"git diff" command.
|
||||
|
||||
* Command line completion (in contrib/) learned to complete pathnames
|
||||
for various commands better.
|
||||
|
||||
* "git blame" learns to unhighlight uninteresting metadata from the
|
||||
originating commit on lines that are the same as the previous one,
|
||||
and also paint lines in different colors depending on the age of
|
||||
the commit.
|
||||
|
||||
* Transfer protocol v2 learned to support the partial clone.
|
||||
|
||||
* When a short hexadecimal string is used to name an object but there
|
||||
are multiple objects that share the string as the prefix of their
|
||||
names, the code lists these ambiguous candidates in a help message.
|
||||
These object names are now sorted according to their types for
|
||||
easier eyeballing.
|
||||
|
||||
* "git fetch $there $refspec" that talks over protocol v2 can take
|
||||
advantage of server-side ref filtering; the code has been extended
|
||||
so that this mechanism triggers also when fetching with configured
|
||||
refspec.
|
||||
|
||||
* Our HTTP client code used to advertise that we accept gzip encoding
|
||||
from the other side; instead, just let cURL library to advertise
|
||||
and negotiate the best one.
|
||||
|
||||
* "git p4" learned to "unshelve" shelved commit from P4.
|
||||
(merge 123f631761 ld/p4-unshelve later to maint).
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* A "git fetch" from a repository with insane number of refs into a
|
||||
repository that is already up-to-date still wasted too many cycles
|
||||
making many lstat(2) calls to see if these objects at the tips
|
||||
exist as loose objects locally. These lstat(2) calls are optimized
|
||||
away by enumerating all loose objects beforehand.
|
||||
It is unknown if the new strategy negatively affects existing use
|
||||
cases, fetching into a repository with many loose objects from a
|
||||
repository with small number of refs.
|
||||
|
||||
* Git can be built to use either v1 or v2 of the PCRE library, and so
|
||||
far, the build-time configuration USE_LIBPCRE=YesPlease instructed
|
||||
the build procedure to use v1, but now it means v2. USE_LIBPCRE1
|
||||
and USE_LIBPCRE2 can be used to explicitly choose which version to
|
||||
use, as before.
|
||||
|
||||
* The build procedure learned to optionally use symbolic links
|
||||
(instead of hardlinks and copies) to install "git-foo" for built-in
|
||||
commands, whose binaries are all identical.
|
||||
|
||||
* Conversion from uchar[20] to struct object_id continues.
|
||||
|
||||
* The way "git worktree prune" worked internally has been simplified,
|
||||
by assuming how "git worktree move" moves an existing worktree to a
|
||||
different place.
|
||||
|
||||
* Code clean-up for the "repository" abstraction.
|
||||
(merge 00a3da2a13 nd/remove-ignore-env-field later to maint).
|
||||
|
||||
* Code to find the length to uniquely abbreviate object names based
|
||||
on packfile content, which is a relatively recent addtion, has been
|
||||
optimized to use the same fan-out table.
|
||||
|
||||
* The mechanism to use parse-options API to automate the command line
|
||||
completion continues to get extended and polished.
|
||||
|
||||
* Copies of old scripted Porcelain commands in contrib/examples/ have
|
||||
been removed.
|
||||
|
||||
* Some tests that rely on the exact hardcoded values of object names
|
||||
have been updated in preparation for hash function migration.
|
||||
|
||||
* Perf-test update.
|
||||
|
||||
* Test helper update.
|
||||
|
||||
* The effort continues to refactor the internal global data structure
|
||||
to make it possible to open multiple repositories, work with and
|
||||
then close them,
|
||||
|
||||
* Small test-helper programs have been consolidated into a single
|
||||
binary.
|
||||
|
||||
* API clean-up around ref-filter code.
|
||||
|
||||
* Shell completion (in contrib) that gives list of paths have been
|
||||
optimized somewhat.
|
||||
|
||||
* The index file is updated to record the fsmonitor section after a
|
||||
full scan was made, to avoid wasting the effort that has already
|
||||
spent.
|
||||
|
||||
* Performance measuring framework in t/perf learned to help bisecting
|
||||
performance regressions.
|
||||
|
||||
* Some multi-word source filenames are being renamed to separate
|
||||
words with dashes instead of underscores.
|
||||
|
||||
* An reusable "memory pool" implementation has been extracted from
|
||||
fast-import.c, which in turn has become the first user of the
|
||||
mem-pool API.
|
||||
|
||||
* A build-time option has been added to allow Git to be told to refer
|
||||
to its associated files relative to the main binary, in the same
|
||||
way that has been possible on Windows for quite some time, for
|
||||
Linux, BSDs and Darwin.
|
||||
|
||||
* Precompute and store information necessary for ancestry traversal
|
||||
in a separate file to optimize graph walking.
|
||||
|
||||
* The effort to pass the repository in-core structure throughout the
|
||||
API continues. This round deals with the code that implements the
|
||||
refs/replace/ mechanism.
|
||||
|
||||
* The build procedure "make DEVELOPER=YesPlease" learned to enable a
|
||||
bit more warning options depending on the compiler used to help
|
||||
developers more. There also is "make DEVOPTS=tokens" knob
|
||||
available now, for those who want to help fixing warnings we
|
||||
usually ignore, for example.
|
||||
|
||||
* A new version of the transport protocol is being worked on.
|
||||
|
||||
* The code to interface to GPG has been restructured somewhat to make
|
||||
it cleaner to integrate with other types of signature systems later.
|
||||
|
||||
* The code has been taught to use the duplicated information stored
|
||||
in the commit-graph file to learn the tree object name for a commit
|
||||
to avoid opening and parsing the commit object when it makes sense
|
||||
to do so.
|
||||
|
||||
* "git gc" in a large repository takes a lot of time as it considers
|
||||
to repack all objects into one pack by default. The command has
|
||||
been taught to pretend as if the largest existing packfile is
|
||||
marked with ".keep" so that it is left untouched while objects in
|
||||
other packs and loose ones are repacked.
|
||||
|
||||
* The transport protocol v2 is getting updated further.
|
||||
|
||||
* The codepath around object-info API has been taught to take the
|
||||
repository object (which in turn tells the API which object store
|
||||
the objects are to be located).
|
||||
|
||||
* "git pack-objects" needs to allocate tons of "struct object_entry"
|
||||
while doing its work, and shrinking its size helps the performance
|
||||
quite a bit.
|
||||
|
||||
* The implementation of "git rebase -i --root" has been updated to use
|
||||
the sequencer machinery more.
|
||||
|
||||
* Developer support update, by using BUG() macro instead of die() to
|
||||
mark codepaths that should not happen more clearly.
|
||||
|
||||
* Developer support. Use newer GCC on one of the builds done at
|
||||
TravisCI.org to get more warnings and errors diagnosed.
|
||||
|
||||
* Conversion from uchar[20] to struct object_id continues.
|
||||
|
||||
* By code restructuring of submodule merge in merge-recursive,
|
||||
informational messages from the codepath are now given using the
|
||||
same mechanism as other output, and honor the merge.verbosity
|
||||
configuration. The code also learned to give a few new messages
|
||||
when a submodule three-way merge resolves cleanly when one side
|
||||
records a descendant of the commit chosen by the other side.
|
||||
|
||||
* Avoid unchecked snprintf() to make future code auditing easier.
|
||||
(merge ac4896f007 jk/snprintf-truncation later to maint).
|
||||
|
||||
* Many tests hardcode the raw object names, which would change once
|
||||
we migrate away from SHA-1. While some of them must test against
|
||||
exact object names, most of them do not have to use hardcoded
|
||||
constants in the test. The latter kind of tests have been updated
|
||||
to test the moral equivalent of the original without hardcoding the
|
||||
actual object names.
|
||||
|
||||
* The list of commands with their various attributes were spread
|
||||
across a few places in the build procedure, but it now is getting a
|
||||
bit more consolidated to allow more automation.
|
||||
|
||||
* Quite a many tests assumed that newly created refs are made as
|
||||
loose refs using the files backend, which have been updated to use
|
||||
proper plumbing like rev-parse and update-ref, to avoid breakage
|
||||
once we start using different ref backends.
|
||||
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
||||
|
||||
|
||||
Fixes since v2.17
|
||||
-----------------
|
||||
|
||||
* "git shortlog cruft" aborted with a BUG message when run outside a
|
||||
Git repository. The command has been taught to complain about
|
||||
extra and unwanted arguments on its command line instead in such a
|
||||
case.
|
||||
(merge 4aa0161e83 ma/shortlog-revparse later to maint).
|
||||
|
||||
* "git stash push -u -- <pathspec>" gave an unnecessary and confusing
|
||||
error message when there was no tracked files that match the
|
||||
<pathspec>, which has been fixed.
|
||||
(merge 353278687e tg/stash-untracked-with-pathspec-fix later to maint).
|
||||
|
||||
* "git tag --contains no-such-commit" gave a full list of options
|
||||
after giving an error message.
|
||||
(merge 3bb0923f06 ps/contains-id-error-message later to maint).
|
||||
|
||||
* "diff-highlight" filter (in contrib/) learned to understand "git log
|
||||
--graph" output better.
|
||||
(merge 4551fbba14 jk/diff-highlight-graph-fix later to maint).
|
||||
|
||||
* when refs that do not point at committish are given, "git
|
||||
filter-branch" gave a misleading error messages. This has been
|
||||
corrected.
|
||||
(merge f78ab355e7 yk/filter-branch-non-committish-refs later to maint).
|
||||
|
||||
* "git submodule status" misbehaved on a submodule that has been
|
||||
removed from the working tree.
|
||||
(merge 74b6bda32f rs/status-with-removed-submodule later to maint).
|
||||
|
||||
* When credential helper exits very quickly without reading its
|
||||
input, it used to cause Git to die with SIGPIPE, which has been
|
||||
fixed.
|
||||
(merge a0d51e8d0e eb/cred-helper-ignore-sigpipe later to maint).
|
||||
|
||||
* "git rebase --keep-empty" still removed an empty commit if the
|
||||
other side contained an empty commit (due to the "does an
|
||||
equivalent patch exist already?" check), which has been corrected.
|
||||
(merge 3d946165e1 pw/rebase-keep-empty-fixes later to maint).
|
||||
|
||||
* Some codepaths, including the refs API, get and keep relative
|
||||
paths, that go out of sync when the process does chdir(2). The
|
||||
chdir-notify API is introduced to let these codepaths adjust these
|
||||
cached paths to the new current directory.
|
||||
(merge fb9c2d2703 jk/relative-directory-fix later to maint).
|
||||
|
||||
* "cd sub/dir && git commit ../path" ought to record the changes to
|
||||
the file "sub/path", but this regressed long time ago.
|
||||
(merge 86238e07ef bw/commit-partial-from-subdirectory-fix later to maint).
|
||||
|
||||
* Recent introduction of "--log-destination" option to "git daemon"
|
||||
did not work well when the daemon was run under "--inetd" mode.
|
||||
(merge e67d906d73 lw/daemon-log-destination later to maint).
|
||||
|
||||
* Small fix to the autoconf build procedure.
|
||||
(merge 249482daf0 es/fread-reads-dir-autoconf-fix later to maint).
|
||||
|
||||
* Fix an unexploitable (because the oversized contents are not under
|
||||
attacker's control) buffer overflow.
|
||||
(merge d8579accfa bp/fsmonitor-bufsize-fix later to maint).
|
||||
|
||||
* Recent simplification of build procedure forgot a bit of tweak to
|
||||
the build procedure of contrib/mw-to-git/
|
||||
(merge d8698987f3 ab/simplify-perl-makefile later to maint).
|
||||
|
||||
* Moving a submodule that itself has submodule in it with "git mv"
|
||||
forgot to make necessary adjustment to the nested sub-submodules;
|
||||
now the codepath learned to recurse into the submodules.
|
||||
|
||||
* "git config --unset a.b", when "a.b" is the last variable in an
|
||||
otherwise empty section "a", left an empty section "a" behind, and
|
||||
worse yet, a subsequent "git config a.c value" did not reuse that
|
||||
empty shell and instead created a new one. These have been
|
||||
(partially) corrected.
|
||||
(merge c71d8bb38a js/empty-config-section-fix later to maint).
|
||||
|
||||
* "git worktree remove" learned that "-f" is a shorthand for
|
||||
"--force" option, just like for "git worktree add".
|
||||
(merge d228eea514 sb/worktree-remove-opt-force later to maint).
|
||||
|
||||
* The completion script (in contrib/) learned to clear cached list of
|
||||
command line options upon dot-sourcing it again in a more efficient
|
||||
way.
|
||||
(merge 94408dc71c sg/completion-clear-cached later to maint).
|
||||
|
||||
* "git svn" had a minor thinko/typo which has been fixed.
|
||||
(merge 51db271587 ab/git-svn-get-record-typofix later to maint).
|
||||
|
||||
* During a "rebase -i" session, the code could give older timestamp
|
||||
to commits created by later "pick" than an earlier "reword", which
|
||||
has been corrected.
|
||||
(merge 12f7babd6b js/ident-date-fix later to maint).
|
||||
|
||||
* "git submodule status" did not check the symbolic revision name it
|
||||
computed for the submodule HEAD is not the NULL, and threw it at
|
||||
printf routines, which has been corrected.
|
||||
(merge 0b5e2ea7cf nd/submodule-status-fix later to maint).
|
||||
|
||||
* When fed input that already has In-Reply-To: and/or References:
|
||||
headers and told to add the same information, "git send-email"
|
||||
added these headers separately, instead of appending to an existing
|
||||
one, which is a violation of the RFC. This has been corrected.
|
||||
(merge 256be1d3f0 sa/send-email-dedup-some-headers later to maint).
|
||||
|
||||
* "git fast-export" had a regression in v2.15.0 era where it skipped
|
||||
some merge commits in certain cases, which has been corrected.
|
||||
(merge be011bbe00 ma/fast-export-skip-merge-fix later to maint).
|
||||
|
||||
* The code did not propagate the terminal width to subprocesses via
|
||||
COLUMNS environment variable, which it now does. This caused
|
||||
trouble to "git column" helper subprocess when "git tag --column=row"
|
||||
tried to list the existing tags on a display with non-default width.
|
||||
(merge b5d5a567fb nd/term-columns later to maint).
|
||||
|
||||
* We learned that our source files with ".pl" and ".py" extensions
|
||||
are Perl and Python files respectively and changes to them are
|
||||
better viewed as such with appropriate diff drivers.
|
||||
(merge 7818b619e2 ab/perl-python-attrs later to maint).
|
||||
|
||||
* "git rebase -i" sometimes left intermediate "# This is a
|
||||
combination of N commits" message meant for the human consumption
|
||||
inside an editor in the final result in certain corner cases, which
|
||||
has been fixed.
|
||||
(merge 15ef69314d js/rebase-i-clean-msg-after-fixup-continue later to maint).
|
||||
|
||||
* A test to see if the filesystem normalizes UTF-8 filename has been
|
||||
updated to check what we need to know in a more direct way, i.e. a
|
||||
path created in NFC form can be accessed with NFD form (or vice
|
||||
versa) to cope with APFS as well as HFS.
|
||||
(merge 742ae10e35 tb/test-apfs-utf8-normalization later to maint).
|
||||
|
||||
* "git format-patch --cover --attach" created a broken MIME multipart
|
||||
message for the cover letter, which has been fixed by keeping the
|
||||
cover letter as plain text file.
|
||||
(merge 50cd54ef4e bc/format-patch-cover-no-attach later to maint).
|
||||
|
||||
* The split-index feature had a long-standing and dormant bug in
|
||||
certain use of the in-core merge machinery, which has been fixed.
|
||||
(merge 7db118303a en/unpack-trees-split-index-fix later to maint).
|
||||
|
||||
* Asciidoctor gives a reasonable imitation for AsciiDoc, but does not
|
||||
render illustration in a literal block correctly when indented with
|
||||
HT by default. The problem is fixed by forcing 8-space tabs.
|
||||
(merge 379805051d bc/asciidoctor-tab-width later to maint).
|
||||
|
||||
* Code clean-up to adjust to a more recent lockfile API convention that
|
||||
allows lockfile instances kept on the stack.
|
||||
(merge 0fa5a2ed8d ma/lockfile-cleanup later to maint).
|
||||
|
||||
* the_repository->index is not a allocated piece of memory but
|
||||
repo_clear() indiscriminately attempted to free(3) it, which has
|
||||
been corrected.
|
||||
(merge 74373b5f10 nd/repo-clear-keep-the-index later to maint).
|
||||
|
||||
* Code clean-up to avoid non-standard-conformant pointer arithmetic.
|
||||
(merge c112084af9 rs/no-null-ptr-arith-in-fast-export later to maint).
|
||||
|
||||
* Code clean-up to turn history traversal more robust in a
|
||||
semi-corrupt repository.
|
||||
(merge 8702b30fd7 jk/unavailable-can-be-missing later to maint).
|
||||
|
||||
* "git update-ref A B" is supposed to ensure that ref A does not yet
|
||||
exist when B is a NULL OID, but this check was not done correctly
|
||||
for pseudo-refs outside refs/ hierarchy, e.g. MERGE_HEAD.
|
||||
|
||||
* "git submodule update" and "git submodule add" supported the
|
||||
"--reference" option to borrow objects from a neighbouring local
|
||||
repository like "git clone" does, but lacked the more recent
|
||||
invention "--dissociate". Also "git submodule add" has been taught
|
||||
to take the "--progress" option.
|
||||
(merge a0ef29341a cf/submodule-progress-dissociate later to maint).
|
||||
|
||||
* Update credential-netrc helper (in contrib/) to allow customizing
|
||||
the GPG used to decrypt the encrypted .netrc file.
|
||||
(merge 786ef50a23 lm/credential-netrc later to maint).
|
||||
|
||||
* "git submodule update" attempts two different kinds of "git fetch"
|
||||
against the upstream repository to grab a commit bound at the
|
||||
submodule's path, but it incorrectly gave up if the first kind
|
||||
(i.e. a normal fetch) failed, making the second "last resort" one
|
||||
(i.e. fetching an exact commit object by object name) ineffective.
|
||||
This has been corrected.
|
||||
(merge e30d833671 sb/submodule-update-try-harder later to maint).
|
||||
|
||||
* Error behaviour of "git grep" when it cannot read the index was
|
||||
inconsistent with other commands that uses the index, which has
|
||||
been corrected to error out early.
|
||||
(merge b2aa84c789 sb/grep-die-on-unreadable-index later to maint).
|
||||
|
||||
* We used to call regfree() after regcomp() failed in some codepaths,
|
||||
which have been corrected.
|
||||
(merge 17154b1576 ma/regex-no-regfree-after-comp-fail later to maint).
|
||||
|
||||
* The import-tars script (in contrib/) has been taught to handle
|
||||
tarballs with overly long paths that use PAX extended headers.
|
||||
(merge 12ecea46e3 pa/import-tars-long-names later to maint).
|
||||
|
||||
* "git rev-parse Y..." etc. misbehaved when given endpoints were
|
||||
not committishes.
|
||||
(merge 0ed556d38f en/rev-parse-invalid-range later to maint).
|
||||
|
||||
* "git pull --recurse-submodules --rebase", when the submodule
|
||||
repository's history did not have anything common between ours and
|
||||
the upstream's, failed to execute. We need to fetch from them to
|
||||
continue even in such a case.
|
||||
(merge 4d36f88be7 jt/submodule-pull-recurse-rebase later to maint).
|
||||
|
||||
* "git remote update" can take both a single remote nickname and a
|
||||
nickname for remote groups, but only one of them was documented.
|
||||
(merge a97447a42a nd/remote-update-doc later to maint).
|
||||
|
||||
* "index-pack --strict" has been taught to make sure that it runs the
|
||||
final object integrity checks after making the freshly indexed
|
||||
packfile available to itself.
|
||||
(merge 3737746120 jk/index-pack-maint later to maint).
|
||||
|
||||
* Make zlib inflate codepath more robust against versions of zlib
|
||||
that clobber unused portion of outbuf.
|
||||
(merge b611396e97 jl/zlib-restore-nul-termination later to maint).
|
||||
|
||||
* Fix old merge glitch in Documentation during v2.13-rc0 era.
|
||||
(merge 28cb06020b mw/doc-merge-enumfix later to maint).
|
||||
|
||||
* The code to read compressed bitmap was not careful to avoid reading
|
||||
past the end of the file, which has been corrected.
|
||||
(merge 1140bf01ec jk/ewah-bounds-check later to maint).
|
||||
|
||||
* "make NO_ICONV=NoThanks" did not override NEEDS_LIBICONV
|
||||
(i.e. linkage of -lintl, -liconv, etc. that are platform-specific
|
||||
tweaks), which has been corrected.
|
||||
(merge fdb1fbbc7d es/make-no-iconv later to maint).
|
||||
|
||||
* Other minor doc, test and build updates and code cleanups.
|
||||
(merge 248f66ed8e nd/trace-with-env later to maint).
|
||||
(merge 14ced5562c ys/bisect-object-id-missing-conversion-fix later to maint).
|
||||
(merge 5988eb631a ab/doc-hash-brokenness later to maint).
|
||||
(merge a4d4e32a70 pk/test-avoid-pipe-hiding-exit-status later to maint).
|
||||
(merge 05e293c1ac jk/flockfile-stdio later to maint).
|
||||
(merge e9184b0789 jk/t5561-missing-curl later to maint).
|
||||
(merge b1801b85a3 nd/worktree-move later to maint).
|
||||
(merge bbd374dd20 ak/bisect-doc-typofix later to maint).
|
||||
(merge 4855f06fb3 mn/send-email-credential-doc later to maint).
|
||||
(merge 8523b1e355 en/doc-typoes later to maint).
|
||||
(merge 43b44ccfe7 js/t5404-path-fix later to maint).
|
||||
(merge decf711fc1 ps/test-chmtime-get later to maint).
|
||||
(merge 22d11a6e8e es/worktree-docs later to maint).
|
||||
(merge 92a5dbbc22 tg/use-git-contacts later to maint).
|
||||
(merge adc887221f tq/t1510 later to maint).
|
||||
(merge bed21a8ad6 sg/doc-gc-quote-mismatch-fix later to maint).
|
||||
(merge 73364e4f10 tz/doc-git-urls-reference later to maint).
|
||||
(merge cd1e606bad bc/mailmap-self later to maint).
|
||||
(merge f7997e3682 ao/config-api-doc later to maint).
|
||||
(merge ee930754d8 jk/apply-p-doc later to maint).
|
||||
(merge 011b648646 nd/pack-format-doc later to maint).
|
||||
(merge 87a6bb701a sg/t5310-jgit-bitmap-test later to maint).
|
||||
(merge f6b82970aa sg/t5516-fixes later to maint).
|
||||
(merge 4362da078e sg/t7005-spaces-in-filenames-cleanup later to maint).
|
||||
(merge 7d0ee47c11 js/test-unset-prereq later to maint).
|
||||
(merge 5356a3c354 ah/misc-doc-updates later to maint).
|
||||
(merge 92c4a7a129 nd/completion-aliasfiletype-typofix later to maint).
|
||||
(merge 58bd77b66a nd/pack-unreachable-objects-doc later to maint).
|
||||
(merge 4ed79d5203 sg/t6500-no-redirect-of-stdin later to maint).
|
||||
(merge 17b8a2d6cd jk/config-blob-sans-repo later to maint).
|
||||
(merge 590551ca2c rd/tag-doc-lightweight later to maint).
|
||||
(merge 44f560fc16 rd/init-typo later to maint).
|
||||
(merge f156a0934a rd/p4-doc-markup-env later to maint).
|
||||
(merge 2a00502b14 tg/doc-sec-list later to maint).
|
||||
(merge 47cc91310a jk/submodule-fsck-loose-fixup later to maint).
|
||||
(merge efde7b725c rd/comment-typofix-in-sha1-file later to maint).
|
||||
(merge 7eedad15df rd/diff-options-typofix later to maint).
|
||||
(merge 58ebd936cc km/doc-workflows-typofix later to maint).
|
||||
(merge 30aa96cdf8 rd/doc-remote-tracking-with-hyphen later to maint).
|
||||
(merge cf317877e3 ks/branch-set-upstream later to maint).
|
||||
(merge 8de19d6be8 sg/t7406-chain-fix later to maint).
|
@ -1,6 +0,0 @@
|
||||
Git v2.18.1 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.14.5 and in
|
||||
v2.17.2 to address the recently reported CVE-2018-17456; see the
|
||||
release notes for those versions for details.
|
@ -1,615 +0,0 @@
|
||||
Git 2.19 Release Notes
|
||||
======================
|
||||
|
||||
Updates since v2.18
|
||||
-------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* "git diff" compares the index and the working tree. For paths
|
||||
added with intent-to-add bit, the command shows the full contents
|
||||
of them as added, but the paths themselves were not marked as new
|
||||
files. They are now shown as new by default.
|
||||
|
||||
"git apply" learned the "--intent-to-add" option so that an
|
||||
otherwise working-tree-only application of a patch will add new
|
||||
paths to the index marked with the "intent-to-add" bit.
|
||||
|
||||
* "git grep" learned the "--column" option that gives not just the
|
||||
line number but the column number of the hit.
|
||||
|
||||
* The "-l" option in "git branch -l" is an unfortunate short-hand for
|
||||
"--create-reflog", but many users, both old and new, somehow expect
|
||||
it to be something else, perhaps "--list". This step warns when "-l"
|
||||
is used as a short-hand for "--create-reflog" and warns about the
|
||||
future repurposing of the it when it is used.
|
||||
|
||||
* The userdiff pattern for .php has been updated.
|
||||
|
||||
* The content-transfer-encoding of the message "git send-email" sends
|
||||
out by default was 8bit, which can cause trouble when there is an
|
||||
overlong line to bust RFC 5322/2822 limit. A new option 'auto' to
|
||||
automatically switch to quoted-printable when there is such a line
|
||||
in the payload has been introduced and is made the default.
|
||||
|
||||
* "git checkout" and "git worktree add" learned to honor
|
||||
checkout.defaultRemote when auto-vivifying a local branch out of a
|
||||
remote tracking branch in a repository with multiple remotes that
|
||||
have tracking branches that share the same names.
|
||||
(merge 8d7b558bae ab/checkout-default-remote later to maint).
|
||||
|
||||
* "git grep" learned the "--only-matching" option.
|
||||
|
||||
* "git rebase --rebase-merges" mode now handles octopus merges as
|
||||
well.
|
||||
|
||||
* Add a server-side knob to skip commits in exponential/fibbonacci
|
||||
stride in an attempt to cover wider swath of history with a smaller
|
||||
number of iterations, potentially accepting a larger packfile
|
||||
transfer, instead of going back one commit a time during common
|
||||
ancestor discovery during the "git fetch" transaction.
|
||||
(merge 42cc7485a2 jt/fetch-negotiator-skipping later to maint).
|
||||
|
||||
* A new configuration variable core.usereplacerefs has been added,
|
||||
primarily to help server installations that want to ignore the
|
||||
replace mechanism altogether.
|
||||
|
||||
* Teach "git tag -s" etc. a few configuration variables (gpg.format
|
||||
that can be set to "openpgp" or "x509", and gpg.<format>.program
|
||||
that is used to specify what program to use to deal with the format)
|
||||
to allow x.509 certs with CMS via "gpgsm" to be used instead of
|
||||
openpgp via "gnupg".
|
||||
|
||||
* Many more strings are prepared for l10n.
|
||||
|
||||
* "git p4 submit" learns to ask its own pre-submit hook if it should
|
||||
continue with submitting.
|
||||
|
||||
* The test performed at the receiving end of "git push" to prevent
|
||||
bad objects from entering repository can be customized via
|
||||
receive.fsck.* configuration variables; we now have gained a
|
||||
counterpart to do the same on the "git fetch" side, with
|
||||
fetch.fsck.* configuration variables.
|
||||
|
||||
* "git pull --rebase=interactive" learned "i" as a short-hand for
|
||||
"interactive".
|
||||
|
||||
* "git instaweb" has been adjusted to run better with newer Apache on
|
||||
RedHat based distros.
|
||||
|
||||
* "git range-diff" is a reimplementation of "git tbdiff" that lets us
|
||||
compare individual patches in two iterations of a topic.
|
||||
|
||||
* The sideband code learned to optionally paint selected keywords at
|
||||
the beginning of incoming lines on the receiving end.
|
||||
|
||||
* "git branch --list" learned to take the default sort order from the
|
||||
'branch.sort' configuration variable, just like "git tag --list"
|
||||
pays attention to 'tag.sort'.
|
||||
|
||||
* "git worktree" command learned "--quiet" option to make it less
|
||||
verbose.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* The bulk of "git submodule foreach" has been rewritten in C.
|
||||
|
||||
* The in-core "commit" object had an all-purpose "void *util" field,
|
||||
which was tricky to use especially in library-ish part of the
|
||||
code. All of the existing uses of the field has been migrated to a
|
||||
more dedicated "commit-slab" mechanism and the field is eliminated.
|
||||
|
||||
* A less often used command "git show-index" has been modernized.
|
||||
(merge fb3010c31f jk/show-index later to maint).
|
||||
|
||||
* The conversion to pass "the_repository" and then "a_repository"
|
||||
throughout the object access API continues.
|
||||
|
||||
* Continuing with the idea to programatically enumerate various
|
||||
pieces of data required for command line completion, teach the
|
||||
codebase to report the list of configuration variables
|
||||
subcommands care about to help complete them.
|
||||
|
||||
* Separate "rebase -p" codepath out of "rebase -i" implementation to
|
||||
slim down the latter and make it easier to manage.
|
||||
|
||||
* Make refspec parsing codepath more robust.
|
||||
|
||||
* Some flaky tests have been fixed.
|
||||
|
||||
* Continuing with the idea to programmatically enumerate various
|
||||
pieces of data required for command line completion, the codebase
|
||||
has been taught to enumerate options prefixed with "--no-" to
|
||||
negate them.
|
||||
|
||||
* Build and test procedure for netrc credential helper (in contrib/)
|
||||
has been updated.
|
||||
|
||||
* Remove unused function definitions and declarations from ewah
|
||||
bitmap subsystem.
|
||||
|
||||
* Code preparation to make "git p4" closer to be usable with Python 3.
|
||||
|
||||
* Tighten the API to make it harder to misuse in-tree .gitmodules
|
||||
file, even though it shares the same syntax with configuration
|
||||
files, to read random configuration items from it.
|
||||
|
||||
* "git fast-import" has been updated to avoid attempting to create
|
||||
delta against a zero-byte-long string, which is pointless.
|
||||
|
||||
* The codebase has been updated to compile cleanly with -pedantic
|
||||
option.
|
||||
(merge 2b647a05d7 bb/pedantic later to maint).
|
||||
|
||||
* The character display width table has been updated to match the
|
||||
latest Unicode standard.
|
||||
(merge 570951eea2 bb/unicode-11-width later to maint).
|
||||
|
||||
* test-lint now looks for broken use of "VAR=VAL shell_func" in test
|
||||
scripts.
|
||||
|
||||
* Conversion from uchar[40] to struct object_id continues.
|
||||
|
||||
* Recent "security fix" to pay attention to contents of ".gitmodules"
|
||||
while accepting "git push" was a bit overly strict than necessary,
|
||||
which has been adjusted.
|
||||
|
||||
* "git fsck" learns to make sure the optional commit-graph file is in
|
||||
a sane state.
|
||||
|
||||
* "git diff --color-moved" feature has further been tweaked.
|
||||
|
||||
* Code restructuring and a small fix to transport protocol v2 during
|
||||
fetching.
|
||||
|
||||
* Parsing of -L[<N>][,[<M>]] parameters "git blame" and "git log"
|
||||
take has been tweaked.
|
||||
|
||||
* lookup_commit_reference() and friends have been updated to find
|
||||
in-core object for a specific in-core repository instance.
|
||||
|
||||
* Various glitches in the heuristics of merge-recursive strategy have
|
||||
been documented in new tests.
|
||||
|
||||
* "git fetch" learned a new option "--negotiation-tip" to limit the
|
||||
set of commits it tells the other end as "have", to reduce wasted
|
||||
bandwidth and cycles, which would be helpful when the receiving
|
||||
repository has a lot of refs that have little to do with the
|
||||
history at the remote it is fetching from.
|
||||
|
||||
* For a large tree, the index needs to hold many cache entries
|
||||
allocated on heap. These cache entries are now allocated out of a
|
||||
dedicated memory pool to amortize malloc(3) overhead.
|
||||
|
||||
* Tests to cover various conflicting cases have been added for
|
||||
merge-recursive.
|
||||
|
||||
* Tests to cover conflict cases that involve submodules have been
|
||||
added for merge-recursive.
|
||||
|
||||
* Look for broken "&&" chains that are hidden in subshell, many of
|
||||
which have been found and corrected.
|
||||
|
||||
* The singleton commit-graph in-core instance is made per in-core
|
||||
repository instance.
|
||||
|
||||
* "make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile
|
||||
with -pedantic option, which may catch more problematic program
|
||||
constructs and potential bugs.
|
||||
|
||||
* Preparatory code to later add json output for telemetry data has
|
||||
been added.
|
||||
|
||||
* Update the way we use Coccinelle to find out-of-style code that
|
||||
need to be modernised.
|
||||
|
||||
* It is too easy to misuse system API functions such as strcat();
|
||||
these selected functions are now forbidden in this codebase and
|
||||
will cause a compilation failure.
|
||||
|
||||
* Add a script (in contrib/) to help users of VSCode work better with
|
||||
our codebase.
|
||||
|
||||
* The Travis CI scripts were taught to ship back the test data from
|
||||
failed tests.
|
||||
(merge aea8879a6a sg/travis-retrieve-trash-upon-failure later to maint).
|
||||
|
||||
* The parse-options machinery learned to refrain from enclosing
|
||||
placeholder string inside a "<bra" and "ket>" pair automatically
|
||||
without PARSE_OPT_LITERAL_ARGHELP. Existing help text for option
|
||||
arguments that are not formatted correctly have been identified and
|
||||
fixed.
|
||||
(merge 5f0df44cd7 rs/parse-opt-lithelp later to maint).
|
||||
|
||||
* Noiseword "extern" has been removed from function decls in the
|
||||
header files.
|
||||
|
||||
* A few atoms like %(objecttype) and %(objectsize) in the format
|
||||
specifier of "for-each-ref --format=<format>" can be filled without
|
||||
getting the full contents of the object, but just with the object
|
||||
header. These cases have been optimized by calling
|
||||
oid_object_info() API (instead of reading and inspecting the data).
|
||||
|
||||
* The end result of documentation update has been made to be
|
||||
inspected more easily to help developers.
|
||||
|
||||
* The API to iterate over all objects learned to optionally list
|
||||
objects in the order they appear in packfiles, which helps locality
|
||||
of access if the caller accesses these objects while as objects are
|
||||
enumerated.
|
||||
|
||||
* Improve built-in facility to catch broken &&-chain in the tests.
|
||||
|
||||
* The more library-ish parts of the codebase learned to work on the
|
||||
in-core index-state instance that is passed in by their callers,
|
||||
instead of always working on the singleton "the_index" instance.
|
||||
|
||||
* A test prerequisite defined by various test scripts with slightly
|
||||
different semantics has been consolidated into a single copy and
|
||||
made into a lazily defined one.
|
||||
(merge 6ec633059a wc/make-funnynames-shared-lazy-prereq later to maint).
|
||||
|
||||
* After a partial clone, repeated fetches from promisor remote would
|
||||
have accumulated many packfiles marked with .promisor bit without
|
||||
getting them coalesced into fewer packfiles, hurting performance.
|
||||
"git repack" now learned to repack them.
|
||||
|
||||
* Partially revert the support for multiple hash functions to regain
|
||||
hash comparison performance; we'd think of a way to do this better
|
||||
in the next cycle.
|
||||
|
||||
* "git help --config" (which is used in command line completion)
|
||||
missed the configuration variables not described in the main
|
||||
config.txt file but are described in another file that is included
|
||||
by it, which has been corrected.
|
||||
|
||||
* The test linter code has learned that the end of here-doc mark
|
||||
"EOF" can be quoted in a double-quote pair, not just in a
|
||||
single-quote pair.
|
||||
|
||||
|
||||
Fixes since v2.18
|
||||
-----------------
|
||||
|
||||
* "git remote update" can take both a single remote nickname and a
|
||||
nickname for remote groups, and the completion script (in contrib/)
|
||||
has been taught about it.
|
||||
(merge 9cd4382ad5 ls/complete-remote-update-names later to maint).
|
||||
|
||||
* "git fetch --shallow-since=<cutoff>" that specifies the cut-off
|
||||
point that is newer than the existing history used to end up
|
||||
grabbing the entire history. Such a request now errors out.
|
||||
(merge e34de73c56 nd/reject-empty-shallow-request later to maint).
|
||||
|
||||
* Fix for 2.17-era regression around `core.safecrlf`.
|
||||
(merge 6cb09125be as/safecrlf-quiet-fix later to maint).
|
||||
|
||||
* The recent addition of "partial clone" experimental feature kicked
|
||||
in when it shouldn't, namely, when there is no partial-clone filter
|
||||
defined even if extensions.partialclone is set.
|
||||
(merge cac1137dc4 jh/partial-clone later to maint).
|
||||
|
||||
* "git send-pack --signed" (hence "git push --signed" over the http
|
||||
transport) did not read user ident from the config mechanism to
|
||||
determine whom to sign the push certificate as, which has been
|
||||
corrected.
|
||||
(merge d067d98887 ms/send-pack-honor-config later to maint).
|
||||
|
||||
* "git fetch-pack --all" used to unnecessarily fail upon seeing an
|
||||
annotated tag that points at an object other than a commit.
|
||||
(merge c12c9df527 jk/fetch-all-peeled-fix later to maint).
|
||||
|
||||
* When user edits the patch in "git add -p" and the user's editor is
|
||||
set to strip trailing whitespaces indiscriminately, an empty line
|
||||
that is unchanged in the patch would become completely empty
|
||||
(instead of a line with a sole SP on it). The code introduced in
|
||||
Git 2.17 timeframe failed to parse such a patch, but now it learned
|
||||
to notice the situation and cope with it.
|
||||
(merge f4d35a6b49 pw/add-p-recount later to maint).
|
||||
|
||||
* The code to try seeing if a fetch is necessary in a submodule
|
||||
during a fetch with --recurse-submodules got confused when the path
|
||||
to the submodule was changed in the range of commits in the
|
||||
superproject, sometimes showing "(null)". This has been corrected.
|
||||
|
||||
* Bugfix for "rebase -i" corner case regression.
|
||||
(merge a9279c6785 pw/rebase-i-keep-reword-after-conflict later to maint).
|
||||
|
||||
* Recently added "--base" option to "git format-patch" command did
|
||||
not correctly generate prereq patch ids.
|
||||
(merge 15b76c1fb3 xy/format-patch-prereq-patch-id-fix later to maint).
|
||||
|
||||
* POSIX portability fix in Makefile to fix a glitch introduced a few
|
||||
releases ago.
|
||||
(merge 6600054e9b dj/runtime-prefix later to maint).
|
||||
|
||||
* "git filter-branch" when used with the "--state-branch" option
|
||||
still attempted to rewrite the commits whose filtered result is
|
||||
known from the previous attempt (which is recorded on the state
|
||||
branch); the command has been corrected not to waste cycles doing
|
||||
so.
|
||||
(merge 709cfe848a mb/filter-branch-optim later to maint).
|
||||
|
||||
* Clarify that setting core.ignoreCase to deviate from reality would
|
||||
not turn a case-incapable filesystem into a case-capable one.
|
||||
(merge 48294b512a ms/core-icase-doc later to maint).
|
||||
|
||||
* "fsck.skipList" did not prevent a blob object listed there from
|
||||
being inspected for is contents (e.g. we recently started to
|
||||
inspect the contents of ".gitmodules" for certain malicious
|
||||
patterns), which has been corrected.
|
||||
(merge fb16287719 rj/submodule-fsck-skip later to maint).
|
||||
|
||||
* "git checkout --recurse-submodules another-branch" did not report
|
||||
in which submodule it failed to update the working tree, which
|
||||
resulted in an unhelpful error message.
|
||||
(merge ba95d4e4bd sb/submodule-move-head-error-msg later to maint).
|
||||
|
||||
* "git rebase" behaved slightly differently depending on which one of
|
||||
the three backends gets used; this has been documented and an
|
||||
effort to make them more uniform has begun.
|
||||
(merge b00bf1c9a8 en/rebase-consistency later to maint).
|
||||
|
||||
* The "--ignore-case" option of "git for-each-ref" (and its friends)
|
||||
did not work correctly, which has been fixed.
|
||||
(merge e674eb2528 jk/for-each-ref-icase later to maint).
|
||||
|
||||
* "git fetch" failed to correctly validate the set of objects it
|
||||
received when making a shallow history deeper, which has been
|
||||
corrected.
|
||||
(merge cf1e7c0770 jt/connectivity-check-after-unshallow later to maint).
|
||||
|
||||
* Partial clone support of "git clone" has been updated to correctly
|
||||
validate the objects it receives from the other side. The server
|
||||
side has been corrected to send objects that are directly
|
||||
requested, even if they may match the filtering criteria (e.g. when
|
||||
doing a "lazy blob" partial clone).
|
||||
(merge a7e67c11b8 jt/partial-clone-fsck-connectivity later to maint).
|
||||
|
||||
* Handling of an empty range by "git cherry-pick" was inconsistent
|
||||
depending on how the range ended up to be empty, which has been
|
||||
corrected.
|
||||
(merge c5e358d073 jk/empty-pick-fix later to maint).
|
||||
|
||||
* "git reset --merge" (hence "git merge ---abort") and "git reset --hard"
|
||||
had trouble working correctly in a sparsely checked out working
|
||||
tree after a conflict, which has been corrected.
|
||||
(merge b33fdfc34c mk/merge-in-sparse-checkout later to maint).
|
||||
|
||||
* Correct a broken use of "VAR=VAL shell_func" in a test.
|
||||
(merge 650161a277 jc/t3404-one-shot-export-fix later to maint).
|
||||
|
||||
* "git rev-parse ':/substring'" did not consider the history leading
|
||||
only to HEAD when looking for a commit with the given substring,
|
||||
when the HEAD is detached. This has been fixed.
|
||||
(merge 6b3351e799 wc/find-commit-with-pattern-on-detached-head later to maint).
|
||||
|
||||
* Build doc update for Windows.
|
||||
(merge ede8d89bb1 nd/command-list later to maint).
|
||||
|
||||
* core.commentchar is now honored when preparing the list of commits
|
||||
to replay in "rebase -i".
|
||||
|
||||
* "git pull --rebase" on a corrupt HEAD caused a segfault. In
|
||||
general we substitute an empty tree object when running the in-core
|
||||
equivalent of the diff-index command, and the codepath has been
|
||||
corrected to do so as well to fix this issue.
|
||||
(merge 3506dc9445 jk/has-uncommitted-changes-fix later to maint).
|
||||
|
||||
* httpd tests saw occasional breakage due to the way its access log
|
||||
gets inspected by the tests, which has been updated to make them
|
||||
less flaky.
|
||||
(merge e8b3b2e275 sg/httpd-test-unflake later to maint).
|
||||
|
||||
* Tests to cover more D/F conflict cases have been added for
|
||||
merge-recursive.
|
||||
|
||||
* "git gc --auto" opens file descriptors for the packfiles before
|
||||
spawning "git repack/prune", which would upset Windows that does
|
||||
not want a process to work on a file that is open by another
|
||||
process. The issue has been worked around.
|
||||
(merge 12e73a3ce4 kg/gc-auto-windows-workaround later to maint).
|
||||
|
||||
* The recursive merge strategy did not properly ensure there was no
|
||||
change between HEAD and the index before performing its operation,
|
||||
which has been corrected.
|
||||
(merge 55f39cf755 en/dirty-merge-fixes later to maint).
|
||||
|
||||
* "git rebase" started exporting GIT_DIR environment variable and
|
||||
exposing it to hook scripts when part of it got rewritten in C.
|
||||
Instead of matching the old scripted Porcelains' behaviour,
|
||||
compensate by also exporting GIT_WORK_TREE environment as well to
|
||||
lessen the damage. This can harm existing hooks that want to
|
||||
operate on different repository, but the current behaviour is
|
||||
already broken for them anyway.
|
||||
(merge ab5e67d751 bc/sequencer-export-work-tree-as-well later to maint).
|
||||
|
||||
* "git send-email" when using in a batched mode that limits the
|
||||
number of messages sent in a single SMTP session lost the contents
|
||||
of the variable used to choose between tls/ssl, unable to send the
|
||||
second and later batches, which has been fixed.
|
||||
(merge 636f3d7ac5 jm/send-email-tls-auth-on-batch later to maint).
|
||||
|
||||
* The lazy clone support had a few places where missing but promised
|
||||
objects were not correctly tolerated, which have been fixed.
|
||||
|
||||
* One of the "diff --color-moved" mode "dimmed_zebra" that was named
|
||||
in an unusual way has been deprecated and replaced by
|
||||
"dimmed-zebra".
|
||||
(merge e3f2f5f9cd es/diff-color-moved-fix later to maint).
|
||||
|
||||
* The wire-protocol v2 relies on the client to send "ref prefixes" to
|
||||
limit the bandwidth spent on the initial ref advertisement. "git
|
||||
clone" when learned to speak v2 forgot to do so, which has been
|
||||
corrected.
|
||||
(merge 402c47d939 bw/clone-ref-prefixes later to maint).
|
||||
|
||||
* "git diff --histogram" had a bad memory usage pattern, which has
|
||||
been rearranged to reduce the peak usage.
|
||||
(merge 79cb2ebb92 sb/histogram-less-memory later to maint).
|
||||
|
||||
* Code clean-up to use size_t/ssize_t when they are the right type.
|
||||
(merge 7726d360b5 jk/size-t later to maint).
|
||||
|
||||
* The wire-protocol v2 relies on the client to send "ref prefixes" to
|
||||
limit the bandwidth spent on the initial ref advertisement. "git
|
||||
fetch $remote branch:branch" that asks tags that point into the
|
||||
history leading to the "branch" automatically followed sent to
|
||||
narrow prefix and broke the tag following, which has been fixed.
|
||||
(merge 2b554353a5 jt/tag-following-with-proto-v2-fix later to maint).
|
||||
|
||||
* When the sparse checkout feature is in use, "git cherry-pick" and
|
||||
other mergy operations lost the skip_worktree bit when a path that
|
||||
is excluded from checkout requires content level merge, which is
|
||||
resolved as the same as the HEAD version, without materializing the
|
||||
merge result in the working tree, which made the path appear as
|
||||
deleted. This has been corrected by preserving the skip_worktree
|
||||
bit (and not materializing the file in the working tree).
|
||||
(merge 2b75fb601c en/merge-recursive-skip-fix later to maint).
|
||||
|
||||
* The "author-script" file "git rebase -i" creates got broken when
|
||||
we started to move the command away from shell script, which is
|
||||
getting fixed now.
|
||||
(merge 5522bbac20 es/rebase-i-author-script-fix later to maint).
|
||||
|
||||
* The automatic tree-matching in "git merge -s subtree" was broken 5
|
||||
years ago and nobody has noticed since then, which is now fixed.
|
||||
(merge 2ec4150713 jk/merge-subtree-heuristics later to maint).
|
||||
|
||||
* "git fetch $there refs/heads/s" ought to fetch the tip of the
|
||||
branch 's', but when "refs/heads/refs/heads/s", i.e. a branch whose
|
||||
name is "refs/heads/s" exists at the same time, fetched that one
|
||||
instead by mistake. This has been corrected to honor the usual
|
||||
disambiguation rules for abbreviated refnames.
|
||||
(merge 60650a48c0 jt/refspec-dwim-precedence-fix later to maint).
|
||||
|
||||
* Futureproofing a helper function that can easily be misused.
|
||||
(merge 65bb21e77e es/want-color-fd-defensive later to maint).
|
||||
|
||||
* The http-backend (used for smart-http transport) used to slurp the
|
||||
whole input until EOF, without paying attention to CONTENT_LENGTH
|
||||
that is supplied in the environment and instead expecting the Web
|
||||
server to close the input stream. This has been fixed.
|
||||
(merge eebfe40962 mk/http-backend-content-length later to maint).
|
||||
|
||||
* "git merge --abort" etc. did not clean things up properly when
|
||||
there were conflicted entries in the index in certain order that
|
||||
are involved in D/F conflicts. This has been corrected.
|
||||
(merge ad3762042a en/abort-df-conflict-fixes later to maint).
|
||||
|
||||
* "git diff --indent-heuristic" had a bad corner case performance.
|
||||
(merge 301ef85401 sb/indent-heuristic-optim later to maint).
|
||||
|
||||
* The "--exec" option to "git rebase --rebase-merges" placed the exec
|
||||
commands at wrong places, which has been corrected.
|
||||
|
||||
* "git verify-tag" and "git verify-commit" have been taught to use
|
||||
the exit status of underlying "gpg --verify" to signal bad or
|
||||
untrusted signature they found.
|
||||
(merge 4e5dc9ca17 jc/gpg-status later to maint).
|
||||
|
||||
* "git mergetool" stopped and gave an extra prompt to continue after
|
||||
the last path has been handled, which did not make much sense.
|
||||
(merge d651a54b8a ng/mergetool-lose-final-prompt later to maint).
|
||||
|
||||
* Among the three codepaths we use O_APPEND to open a file for
|
||||
appending, one used for writing GIT_TRACE output requires O_APPEND
|
||||
implementation that behaves sensibly when multiple processes are
|
||||
writing to the same file. POSIX emulation used in the Windows port
|
||||
has been updated to improve in this area.
|
||||
(merge d641097589 js/mingw-o-append later to maint).
|
||||
|
||||
* "git pull --rebase -v" in a repository with a submodule barfed as
|
||||
an intermediate process did not understand what "-v(erbose)" flag
|
||||
meant, which has been fixed.
|
||||
(merge e84c3cf3dc sb/pull-rebase-submodule later to maint).
|
||||
|
||||
* Recent update to "git config" broke updating variable in a
|
||||
subsection, which has been corrected.
|
||||
(merge bff7df7a87 sb/config-write-fix later to maint).
|
||||
|
||||
* When "git rebase -i" is told to squash two or more commits into
|
||||
one, it labeled the log message for each commit with its number.
|
||||
It correctly called the first one "1st commit", but the next one
|
||||
was "commit #1", which was off-by-one. This has been corrected.
|
||||
(merge dd2e36ebac pw/rebase-i-squash-number-fix later to maint).
|
||||
|
||||
* "git rebase -i", when a 'merge <branch>' insn in its todo list
|
||||
fails, segfaulted, which has been (minimally) corrected.
|
||||
(merge bc9238bb09 pw/rebase-i-merge-segv-fix later to maint).
|
||||
|
||||
* "git cherry-pick --quit" failed to remove CHERRY_PICK_HEAD even
|
||||
though we won't be in a cherry-pick session after it returns, which
|
||||
has been corrected.
|
||||
(merge 3e7dd99208 nd/cherry-pick-quit-fix later to maint).
|
||||
|
||||
* In a recent update in 2.18 era, "git pack-objects" started
|
||||
producing a larger than necessary packfiles by missing
|
||||
opportunities to use large deltas. This has been corrected.
|
||||
|
||||
* The meaning of the possible values the "core.checkStat"
|
||||
configuration variable can take were not adequately documented,
|
||||
which has been fixed.
|
||||
(merge 9bf5d4c4e2 nd/config-core-checkstat-doc later to maint).
|
||||
|
||||
* Recent "git rebase -i" update started to write bogusly formatted
|
||||
author-script, with a matching broken reading code. These are
|
||||
fixed.
|
||||
|
||||
* Recent addition of "directory rename" heuristics to the
|
||||
merge-recursive backend makes the command susceptible to false
|
||||
positives and false negatives. In the context of "git am -3",
|
||||
which does not know about surrounding unmodified paths and thus
|
||||
cannot inform the merge machinery about the full trees involved,
|
||||
this risk is particularly severe. As such, the heuristic is
|
||||
disabled for "git am -3" to keep the machinery "more stupid but
|
||||
predictable".
|
||||
|
||||
* "git merge-base" in 2.19-rc1 has performance regression when the
|
||||
(experimental) commit-graph feature is in use, which has been
|
||||
mitigated.
|
||||
|
||||
* Code cleanup, docfix, build fix, etc.
|
||||
(merge aee9be2ebe sg/update-ref-stdin-cleanup later to maint).
|
||||
(merge 037714252f jc/clean-after-sanity-tests later to maint).
|
||||
(merge 5b26c3c941 en/merge-recursive-cleanup later to maint).
|
||||
(merge 0dcbc0392e bw/config-refer-to-gitsubmodules-doc later to maint).
|
||||
(merge bb4d000e87 bw/protocol-v2 later to maint).
|
||||
(merge 928f0ab4ba vs/typofixes later to maint).
|
||||
(merge d7f590be84 en/rebase-i-microfixes later to maint).
|
||||
(merge 81d395cc85 js/rebase-recreate-merge later to maint).
|
||||
(merge 51d1863168 tz/exclude-doc-smallfixes later to maint).
|
||||
(merge a9aa3c0927 ds/commit-graph later to maint).
|
||||
(merge 5cf8e06474 js/enhanced-version-info later to maint).
|
||||
(merge 6aaded5509 tb/config-default later to maint).
|
||||
(merge 022d2ac1f3 sb/blame-color later to maint).
|
||||
(merge 5a06a20e0c bp/test-drop-caches-for-windows later to maint).
|
||||
(merge dd61cc1c2e jk/ui-color-always-to-auto later to maint).
|
||||
(merge 1e83b9bfdd sb/trailers-docfix later to maint).
|
||||
(merge ab29f1b329 sg/fast-import-dump-refs-on-checkpoint-fix later to maint).
|
||||
(merge 6a8ad880f0 jn/subtree-test-fixes later to maint).
|
||||
(merge ffbd51cc60 nd/pack-objects-threading-doc later to maint).
|
||||
(merge e9dac7be60 es/mw-to-git-chain-fix later to maint).
|
||||
(merge fe583c6c7a rs/remote-mv-leakfix later to maint).
|
||||
(merge 69885ab015 en/t3031-title-fix later to maint).
|
||||
(merge 8578037bed nd/config-blame-sort later to maint).
|
||||
(merge 8ad169c4ba hn/config-in-code-comment later to maint).
|
||||
(merge b7446fcfdf ar/t4150-am-scissors-test-fix later to maint).
|
||||
(merge a8132410ee js/typofixes later to maint).
|
||||
(merge 388d0ff6e5 en/update-index-doc later to maint).
|
||||
(merge e05aa688dd jc/update-index-doc later to maint).
|
||||
(merge 10c600172c sg/t5310-empty-input-fix later to maint).
|
||||
(merge 5641eb9465 jh/partial-clone-doc later to maint).
|
||||
(merge 2711b1ad5e ab/submodule-relative-url-tests later to maint).
|
||||
(merge ce528de023 ab/unconditional-free-and-null later to maint).
|
||||
(merge bbc072f5d8 rs/opt-updates later to maint).
|
||||
(merge 69d846f053 jk/use-compat-util-in-test-tool later to maint).
|
||||
(merge 1820703045 js/larger-timestamps later to maint).
|
||||
(merge c8b35b95e1 sg/t4051-fix later to maint).
|
||||
(merge 30612cb670 sg/t0020-conversion-fix later to maint).
|
||||
(merge 15da753709 sg/t7501-thinkofix later to maint).
|
||||
(merge 79b04f9b60 sg/t3903-missing-fix later to maint).
|
||||
(merge 2745817028 sg/t3420-autostash-fix later to maint).
|
||||
(merge 7afb0d6777 sg/test-rebase-editor-fix later to maint).
|
||||
(merge 6c6ce21baa es/freebsd-iconv-portability later to maint).
|
@ -1,6 +0,0 @@
|
||||
Git v2.19.1 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.14.5 and in
|
||||
v2.17.2 to address the recently reported CVE-2018-17456; see the
|
||||
release notes for those versions for details.
|
@ -1,108 +0,0 @@
|
||||
Git v2.19.2 Release Notes
|
||||
=========================
|
||||
|
||||
Fixes since v2.19.1
|
||||
-------------------
|
||||
|
||||
* "git interpret-trailers" and its underlying machinery had a buggy
|
||||
code that attempted to ignore patch text after commit log message,
|
||||
which triggered in various codepaths that will always get the log
|
||||
message alone and never get such an input.
|
||||
|
||||
* "git rebase -i" did not clear the state files correctly when a run
|
||||
of "squash/fixup" is aborted and then the user manually amended the
|
||||
commit instead, which has been corrected.
|
||||
|
||||
* When fsmonitor is in use, after operation on submodules updates
|
||||
.gitmodules, we lost track of the fact that we did so and relied on
|
||||
stale fsmonitor data.
|
||||
|
||||
* Fix for a long-standing bug that leaves the index file corrupt when
|
||||
it shrinks during a partial commit.
|
||||
|
||||
* Further fix for O_APPEND emulation on Windows
|
||||
|
||||
* A corner case bugfix in "git rerere" code.
|
||||
|
||||
* "git add ':(attr:foo)'" is not supported and is supposed to be
|
||||
rejected while the command line arguments are parsed, but we fail
|
||||
to reject such a command line upfront.
|
||||
|
||||
* "git rebase" etc. in Git 2.19 fails to abort when given an empty
|
||||
commit log message as result of editing, which has been corrected.
|
||||
|
||||
* The code to backfill objects in lazily cloned repository did not
|
||||
work correctly, which has been corrected.
|
||||
|
||||
* Update error messages given by "git remote" and make them consistent.
|
||||
|
||||
* "git update-ref" learned to make both "--no-deref" and "--stdin"
|
||||
work at the same time.
|
||||
|
||||
* Recently added "range-diff" had a corner-case bug to cause it
|
||||
segfault, which has been corrected.
|
||||
|
||||
* The recently introduced commit-graph auxiliary data is incompatible
|
||||
with mechanisms such as replace & grafts that "breaks" immutable
|
||||
nature of the object reference relationship. Disable optimizations
|
||||
based on its use (and updating existing commit-graph) when these
|
||||
incompatible features are in use in the repository.
|
||||
|
||||
* The mailmap file update.
|
||||
|
||||
* The code in "git status" sometimes hit an assertion failure. This
|
||||
was caused by a structure that was reused without cleaning the data
|
||||
used for the first run, which has been corrected.
|
||||
|
||||
* A corner-case bugfix.
|
||||
|
||||
* A partial clone that is configured to lazily fetch missing objects
|
||||
will on-demand issue a "git fetch" request to the originating
|
||||
repository to fill not-yet-obtained objects. The request has been
|
||||
optimized for requesting a tree object (and not the leaf blob
|
||||
objects contained in it) by telling the originating repository that
|
||||
no blobs are needed.
|
||||
|
||||
* The codepath to support the experimental split-index mode had
|
||||
remaining "racily clean" issues fixed.
|
||||
|
||||
* "git log --graph" showing an octopus merge sometimes miscounted the
|
||||
number of display columns it is consuming to show the merge and its
|
||||
parent commits, which has been corrected.
|
||||
|
||||
* The implementation of run_command() API on the UNIX platforms had a
|
||||
bug that caused a command not on $PATH to be found in the current
|
||||
directory.
|
||||
|
||||
* A mutex used in "git pack-objects" were not correctly initialized
|
||||
and this caused "git repack" to dump core on Windows.
|
||||
|
||||
* Under certain circumstances, "git diff D:/a/b/c D:/a/b/d" on
|
||||
Windows would strip initial parts from the paths because they
|
||||
were not recognized as absolute, which has been corrected.
|
||||
|
||||
* The receive.denyCurrentBranch=updateInstead codepath kicked in even
|
||||
when the push should have been rejected due to other reasons, such
|
||||
as it does not fast-forward or the update-hook rejects it, which
|
||||
has been corrected.
|
||||
|
||||
* "git repack" in a shallow clone did not correctly update the
|
||||
shallow points in the repository, leading to a repository that
|
||||
does not pass fsck.
|
||||
|
||||
* Operations on promisor objects make sense in the context of only a
|
||||
small subset of the commands that internally use the revisions
|
||||
machinery, but the "--exclude-promisor-objects" option were taken
|
||||
and led to nonsense results by commands like "log", to which it
|
||||
didn't make much sense. This has been corrected.
|
||||
|
||||
* The "container" mode of TravisCI is going away. Our .travis.yml
|
||||
file is getting prepared for the transition.
|
||||
|
||||
* Our test scripts can now take the '-V' option as a synonym for the
|
||||
'--verbose-log' option.
|
||||
|
||||
* A regression in Git 2.12 era made "git fsck" fall into an infinite
|
||||
loop while processing truncated loose objects.
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
@ -1,700 +0,0 @@
|
||||
Git 2.20 Release Notes
|
||||
======================
|
||||
|
||||
Backward Compatibility Notes
|
||||
----------------------------
|
||||
|
||||
* "git branch -l <foo>" used to be a way to ask a reflog to be
|
||||
created while creating a new branch, but that is no longer the
|
||||
case. It is a short-hand for "git branch --list <foo>" now.
|
||||
|
||||
* "git push" into refs/tags/* hierarchy is rejected without getting
|
||||
forced, but "git fetch" (misguidedly) used the "fast forwarding"
|
||||
rule used for the refs/heads/* hierarchy; this has been corrected,
|
||||
which means some fetches of tags that did not fail with older
|
||||
version of Git will fail without "--force" with this version.
|
||||
|
||||
* "git help -a" now gives verbose output (same as "git help -av").
|
||||
Those who want the old output may say "git help --no-verbose -a"..
|
||||
|
||||
* "git cpn --help", when "cpn" is an alias to, say, "cherry-pick -n",
|
||||
reported only the alias expansion of "cpn" in earlier versions of
|
||||
Git. It now runs "git cherry-pick --help" to show the manual page
|
||||
of the command, while sending the alias expansion to the standard
|
||||
error stream.
|
||||
|
||||
* "git send-email" learned to grab address-looking string on any
|
||||
trailer whose name ends with "-by". This is a backward-incompatible
|
||||
change. Adding "--suppress-cc=misc-by" on the command line, or
|
||||
setting sendemail.suppresscc configuration variable to "misc-by",
|
||||
can be used to disable this behaviour.
|
||||
|
||||
|
||||
Updates since v2.19
|
||||
-------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* Running "git clone" against a project that contain two files with
|
||||
pathnames that differ only in cases on a case insensitive
|
||||
filesystem would result in one of the files lost because the
|
||||
underlying filesystem is incapable of holding both at the same
|
||||
time. An attempt is made to detect such a case and warn.
|
||||
|
||||
* "git checkout -b newbranch [HEAD]" should not have to do as much as
|
||||
checking out a commit different from HEAD. An attempt is made to
|
||||
optimize this special case.
|
||||
|
||||
* "git rev-list --stdin </dev/null" used to be an error; it now shows
|
||||
no output without an error. "git rev-list --stdin --default HEAD"
|
||||
still falls back to the given default when nothing is given on the
|
||||
standard input.
|
||||
|
||||
* Lift code from GitHub to restrict delta computation so that an
|
||||
object that exists in one fork is not made into a delta against
|
||||
another object that does not appear in the same forked repository.
|
||||
|
||||
* "git format-patch" learned new "--interdiff" and "--range-diff"
|
||||
options to explain the difference between this version and the
|
||||
previous attempt in the cover letter (or after the three-dashes as
|
||||
a comment).
|
||||
|
||||
* "git mailinfo" used in "git am" learned to make a best-effort
|
||||
recovery of a patch corrupted by MUA that sends text/plain with
|
||||
format=flawed option.
|
||||
(merge 3aa4d81f88 rs/mailinfo-format-flowed later to maint).
|
||||
|
||||
* The rules used by "git push" and "git fetch" to determine if a ref
|
||||
can or cannot be updated were inconsistent; specifically, fetching
|
||||
to update existing tags were allowed even though tags are supposed
|
||||
to be unmoving anchoring points. "git fetch" was taught to forbid
|
||||
updates to existing tags without the "--force" option.
|
||||
|
||||
* "git multi-pack-index" learned to detect corruption in the .midx
|
||||
file it uses, and this feature has been integrated into "git fsck".
|
||||
|
||||
* Generation of (experimental) commit-graph files have so far been
|
||||
fairly silent, even though it takes noticeable amount of time in a
|
||||
meaningfully large repository. The users will now see progress
|
||||
output.
|
||||
|
||||
* The minimum version of Windows supported by Windows port of Git is
|
||||
now set to Vista.
|
||||
|
||||
* The completion script (in contrib/) learned to complete a handful of
|
||||
options "git stash list" command takes.
|
||||
|
||||
* The completion script (in contrib/) learned that "git fetch
|
||||
--multiple" only takes remote names as arguments and no refspecs.
|
||||
|
||||
* "git status" learns to show progress bar when refreshing the index
|
||||
takes a long time.
|
||||
(merge ae9af12287 nd/status-refresh-progress later to maint).
|
||||
|
||||
* "git help -a" and "git help -av" give different pieces of
|
||||
information, and generally the "verbose" version is more friendly
|
||||
to the new users. "git help -a" by default now uses the more
|
||||
verbose output (with "--no-verbose", you can go back to the
|
||||
original). Also "git help -av" now lists aliases and external
|
||||
commands, which it did not used to.
|
||||
|
||||
* Unlike "grep", "git grep" by default recurses to the whole tree.
|
||||
The command learned "git grep --recursive" option, so that "git
|
||||
grep --no-recursive" can serve as a synonym to setting the
|
||||
max-depth to 0.
|
||||
|
||||
* When pushing into a repository that borrows its objects from an
|
||||
alternate object store, "git receive-pack" that responds to the
|
||||
push request on the other side lists the tips of refs in the
|
||||
alternate to reduce the amount of objects transferred. This
|
||||
sometimes is detrimental when the number of refs in the alternate
|
||||
is absurdly large, in which case the bandwidth saved in potentially
|
||||
fewer objects transferred is wasted in excessively large ref
|
||||
advertisement. The alternate refs that are advertised are now
|
||||
configurable with a pair of configuration variables.
|
||||
|
||||
* "git cmd --help" when "cmd" is aliased used to only say "cmd is
|
||||
aliased to ...". Now it shows that to the standard error stream
|
||||
and runs "git $cmd --help" where $cmd is the first word of the
|
||||
alias expansion.
|
||||
|
||||
* The documentation of "git gc" has been updated to mention that it
|
||||
is no longer limited to "pruning away crufts" but also updates
|
||||
ancillary files like commit-graph as a part of repository
|
||||
optimization.
|
||||
|
||||
* "git p4 unshelve" improvements.
|
||||
|
||||
* The logic to select the default user name and e-mail on Windows has
|
||||
been improved.
|
||||
(merge 501afcb8b0 js/mingw-default-ident later to maint).
|
||||
|
||||
* The "rev-list --filter" feature learned to exclude all trees via
|
||||
"tree:0" filter.
|
||||
|
||||
* "git send-email" learned to grab address-looking string on any
|
||||
trailer whose name ends with "-by"; --suppress-cc=misc-by on the
|
||||
command line, or setting sendemail.suppresscc configuration
|
||||
variable to "misc-by", can be used to disable this behaviour.
|
||||
|
||||
* "git mergetool" learned to take the "--[no-]gui" option, just like
|
||||
"git difftool" does.
|
||||
|
||||
* "git rebase -i" learned a new insn, 'break', that the user can
|
||||
insert in the to-do list. Upon hitting it, the command returns
|
||||
control back to the user.
|
||||
|
||||
* New "--pretty=format:" placeholders %GF and %GP that show the GPG
|
||||
key fingerprints have been invented.
|
||||
|
||||
* On platforms with recent cURL library, http.sslBackend configuration
|
||||
variable can be used to choose a different SSL backend at runtime.
|
||||
The Windows port uses this mechanism to switch between OpenSSL and
|
||||
Secure Channel while talking over the HTTPS protocol.
|
||||
|
||||
* "git send-email" learned to disable SMTP authentication via the
|
||||
"--smtp-auth=none" option, even when the smtp username is given
|
||||
(which turns the authentication on by default).
|
||||
|
||||
* A fourth class of configuration files (in addition to the
|
||||
traditional "system wide", "per user in the $HOME directory" and
|
||||
"per repository in the $GIT_DIR/config") has been introduced so
|
||||
that different worktrees that share the same repository (hence the
|
||||
same $GIT_DIR/config file) can use different customization.
|
||||
|
||||
* A pattern with '**' that does not have a slash on either side used
|
||||
to be an invalid one, but the code now treats such double-asterisks
|
||||
the same way as two normal asterisks that happen to be adjacent to
|
||||
each other.
|
||||
(merge e5bbe09e88 nd/wildmatch-double-asterisk later to maint).
|
||||
|
||||
* The "--no-patch" option, which can be used to get a high-level
|
||||
overview without the actual line-by-line patch difference shown, of
|
||||
the "range-diff" command was earlier broken, which has been
|
||||
corrected.
|
||||
|
||||
* The recently merged "rebase in C" has an escape hatch to use the
|
||||
scripted version when necessary, but it hasn't been documented,
|
||||
which has been corrected.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* Developer builds now use -Wunused-function compilation option.
|
||||
|
||||
* One of our CI tests to run with "unusual/experimental/random"
|
||||
settings now also uses commit-graph and midx.
|
||||
|
||||
* When there are too many packfiles in a repository (which is not
|
||||
recommended), looking up an object in these would require
|
||||
consulting many pack .idx files; a new mechanism to have a single
|
||||
file that consolidates all of these .idx files is introduced.
|
||||
|
||||
* "git submodule update" is getting rewritten piece-by-piece into C.
|
||||
|
||||
* The code for computing history reachability has been shuffled,
|
||||
obtained a bunch of new tests to cover them, and then being
|
||||
improved.
|
||||
|
||||
* The unpack_trees() API used in checking out a branch and merging
|
||||
walks one or more trees along with the index. When the cache-tree
|
||||
in the index tells us that we are walking a tree whose flattened
|
||||
contents is known (i.e. matches a span in the index), as linearly
|
||||
scanning a span in the index is much more efficient than having to
|
||||
open tree objects recursively and listing their entries, the walk
|
||||
can be optimized, which has been done.
|
||||
|
||||
* When creating a thin pack, which allows objects to be made into a
|
||||
delta against another object that is not in the resulting pack but
|
||||
is known to be present on the receiving end, the code learned to
|
||||
take advantage of the reachability bitmap; this allows the server
|
||||
to send a delta against a base beyond the "boundary" commit.
|
||||
|
||||
* spatch transformation to replace boolean uses of !hashcmp() to
|
||||
newly introduced oideq() is added, and applied, to regain
|
||||
performance lost due to support of multiple hash algorithms.
|
||||
|
||||
* Fix a bug in which the same path could be registered under multiple
|
||||
worktree entries if the path was missing (for instance, was removed
|
||||
manually). Also, as a convenience, expand the number of cases in
|
||||
which --force is applicable.
|
||||
|
||||
* Split Documentation/config.txt for easier maintenance.
|
||||
(merge 6014363f0b nd/config-split later to maint).
|
||||
|
||||
* Test helper binaries clean-up.
|
||||
(merge c9a1f4161f nd/test-tool later to maint).
|
||||
|
||||
* Various tests have been updated to make it easier to swap the
|
||||
hash function used for object identification.
|
||||
(merge ae0c89d41b bc/hash-independent-tests later to maint).
|
||||
|
||||
* Update fsck.skipList implementation and documentation.
|
||||
(merge 371a655074 ab/fsck-skiplist later to maint).
|
||||
|
||||
* An alias that expands to another alias has so far been forbidden,
|
||||
but now it is allowed to create such an alias.
|
||||
|
||||
* Various test scripts have been updated for style and also correct
|
||||
handling of exit status of various commands.
|
||||
|
||||
* "gc --auto" ended up calling exit(-1) upon error, which has been
|
||||
corrected to use exit(1). Also the error reporting behaviour when
|
||||
daemonized has been updated to exit with zero status when stopping
|
||||
due to a previously discovered error (which implies there is no
|
||||
point running gc to improve the situation); we used to exit with
|
||||
failure in such a case.
|
||||
|
||||
* Various codepaths in the core-ish part learned to work on an
|
||||
arbitrary in-core index structure, not necessarily the default
|
||||
instance "the_index".
|
||||
(merge b3c7eef9b0 nd/the-index later to maint).
|
||||
|
||||
* Code clean-up in the internal machinery used by "git status" and
|
||||
"git commit --dry-run".
|
||||
(merge 73ba5d78b4 ss/wt-status-committable later to maint).
|
||||
|
||||
* Some environment variables that control the runtime options of Git
|
||||
used during tests are getting renamed for consistency.
|
||||
(merge 4231d1ba99 bp/rename-test-env-var later to maint).
|
||||
|
||||
* A pair of new extensions to the index file have been introduced.
|
||||
They allow the index file to be read in parallel for performance.
|
||||
|
||||
* The oidset API was built on top of the oidmap API which in turn is
|
||||
on the hashmap API. Replace the implementation to build on top of
|
||||
the khash API and gain performance.
|
||||
|
||||
* Over some transports, fetching objects with an exact commit object
|
||||
name can be done without first seeing the ref advertisements. The
|
||||
code has been optimized to exploit this.
|
||||
|
||||
* In a partial clone that will lazily be hydrated from the
|
||||
originating repository, we generally want to avoid "does this
|
||||
object exist (locally)?" on objects that we deliberately omitted
|
||||
when we created the clone. The cache-tree codepath (which is used
|
||||
to write a tree object out of the index) however insisted that the
|
||||
object exists, even for paths that are outside of the partial
|
||||
checkout area. The code has been updated to avoid such a check.
|
||||
|
||||
* To help developers, an EditorConfig file that attempts to follow
|
||||
the project convention has been added.
|
||||
(merge b548d698a0 bc/editorconfig later to maint).
|
||||
|
||||
* The result of coverage test can be combined with "git blame" to
|
||||
check the test coverage of code introduced recently with a new
|
||||
'coverage-diff' tool (in contrib/).
|
||||
(merge 783faedd65 ds/coverage-diff later to maint).
|
||||
|
||||
* An experiment to fuzz test a few areas, hopefully we can gain more
|
||||
coverage to various areas.
|
||||
|
||||
* More codepaths are moving away from hardcoded hash sizes.
|
||||
|
||||
* The way the Windows port figures out the current directory has been
|
||||
improved.
|
||||
|
||||
* The way DLLs are loaded on the Windows port has been improved.
|
||||
|
||||
* Some tests have been reorganized and renamed; "ls t/" now gives a
|
||||
better overview of what is tested for these scripts than before.
|
||||
|
||||
* "git rebase" and "git rebase -i" have been reimplemented in C.
|
||||
|
||||
* Windows port learned to use nano-second resolution file timestamps.
|
||||
|
||||
* The overly large Documentation/config.txt file have been split into
|
||||
million little pieces. This potentially allows each individual piece
|
||||
to be included into the manual page of the command it affects more easily.
|
||||
|
||||
* Replace three string-list instances used as look-up tables in "git
|
||||
fetch" with hashmaps.
|
||||
|
||||
* Unify code to read the author-script used in "git am" and the
|
||||
commands that use the sequencer machinery, e.g. "git rebase -i".
|
||||
|
||||
* In preparation to the day when we can deprecate and remove the
|
||||
"rebase -p", make sure we can skip and later remove tests for
|
||||
it.
|
||||
|
||||
* The history traversal used to implement the tag-following has been
|
||||
optimized by introducing a new helper.
|
||||
|
||||
* The helper function to refresh the cached stat information in the
|
||||
in-core index has learned to perform the lstat() part of the
|
||||
operation in parallel on multi-core platforms.
|
||||
|
||||
* The code to traverse objects for reachability, used to decide what
|
||||
objects are unreferenced and expendable, have been taught to also
|
||||
consider per-worktree refs of other worktrees as starting points to
|
||||
prevent data loss.
|
||||
|
||||
* "git add" needs to internally run "diff-files" equivalent, and the
|
||||
codepath learned the same optimization as "diff-files" has to run
|
||||
lstat(2) in parallel to find which paths have been updated in the
|
||||
working tree.
|
||||
|
||||
* The procedure to install dependencies before testing at Travis CI
|
||||
is getting revamped for both simplicity and flexibility, taking
|
||||
advantage of the recent move to the vm-based environment.
|
||||
|
||||
* The support for format-patch (and send-email) by the command-line
|
||||
completion script (in contrib/) has been simplified a bit.
|
||||
|
||||
* The revision walker machinery learned to take advantage of the
|
||||
commit generation numbers stored in the commit-graph file.
|
||||
|
||||
* The codebase has been cleaned up to reduce "#ifndef NO_PTHREADS".
|
||||
|
||||
* The way -lcurl library gets linked has been simplified by taking
|
||||
advantage of the fact that we can just ask curl-config command how.
|
||||
|
||||
* Various functions have been audited for "-Wunused-parameter" warnings
|
||||
and bugs in them got fixed.
|
||||
|
||||
* A sanity check for start-up sequence has been added in the config
|
||||
API codepath.
|
||||
|
||||
* The build procedure to link for fuzzing test has been made
|
||||
customizable with a new Makefile variable.
|
||||
|
||||
* The way "git rebase" parses and forwards the command line options
|
||||
meant for underlying "git am" has been revamped, which fixed for
|
||||
options with parameters that were not passed correctly.
|
||||
|
||||
* Our testing framework uses a special i18n "poisoned localization"
|
||||
feature to find messages that ought to stay constant but are
|
||||
incorrectly marked to be translated. This feature has been made
|
||||
into a runtime option (it used to be a compile-time option).
|
||||
|
||||
* "git push" used to check ambiguities between object-names and
|
||||
refnames while processing the list of refs' old and new values,
|
||||
which was unnecessary (as it knew that it is feeding raw object
|
||||
names). This has been optimized out.
|
||||
|
||||
* The xcurl_off_t() helper function is used to cast size_t to
|
||||
curl_off_t, but some compilers gave warnings against the code to
|
||||
ensure the casting is done without wraparound, when size_t is
|
||||
narrower than curl_off_t. This warning has been squelched.
|
||||
|
||||
* Code preparation to replace ulong vars with size_t vars where
|
||||
appropriate continues.
|
||||
|
||||
* The "test installed Git" mode of our test suite has been updated to
|
||||
work better.
|
||||
|
||||
* A coding convention around the Coccinelle semantic patches to have
|
||||
two classes to ease code migration process has been proposed and
|
||||
its support has been added to the Makefile.
|
||||
|
||||
* The "container" mode of TravisCI is going away. Our .travis.yml
|
||||
file is getting prepared for the transition.
|
||||
(merge 32ee384be8 ss/travis-ci-force-vm-mode later to maint).
|
||||
|
||||
* Our test scripts can now take the '-V' option as a synonym for the
|
||||
'--verbose-log' option.
|
||||
(merge a5f52c6dab sg/test-verbose-log later to maint).
|
||||
|
||||
|
||||
Fixes since v2.19
|
||||
-----------------
|
||||
|
||||
* "git interpret-trailers" and its underlying machinery had a buggy
|
||||
code that attempted to ignore patch text after commit log message,
|
||||
which triggered in various codepaths that will always get the log
|
||||
message alone and never get such an input.
|
||||
(merge 66e83d9b41 jk/trailer-fixes later to maint).
|
||||
|
||||
* Malformed or crafted data in packstream can make our code attempt
|
||||
to read or write past the allocated buffer and abort, instead of
|
||||
reporting an error, which has been fixed.
|
||||
|
||||
* "git rebase -i" did not clear the state files correctly when a run
|
||||
of "squash/fixup" is aborted and then the user manually amended the
|
||||
commit instead, which has been corrected.
|
||||
(merge 10d2f35436 js/rebase-i-autosquash-fix later to maint).
|
||||
|
||||
* When fsmonitor is in use, after operation on submodules updates
|
||||
.gitmodules, we lost track of the fact that we did so and relied on
|
||||
stale fsmonitor data.
|
||||
(merge 43f1180814 bp/mv-submodules-with-fsmonitor later to maint).
|
||||
|
||||
* Fix for a long-standing bug that leaves the index file corrupt when
|
||||
it shrinks during a partial commit.
|
||||
(merge 6c003d6ffb jk/reopen-tempfile-truncate later to maint).
|
||||
|
||||
* Further fix for O_APPEND emulation on Windows
|
||||
(merge eeaf7ddac7 js/mingw-o-append later to maint).
|
||||
|
||||
* A corner case bugfix in "git rerere" code.
|
||||
(merge ad2bf0d9b4 en/rerere-multi-stage-1-fix later to maint).
|
||||
|
||||
* "git add ':(attr:foo)'" is not supported and is supposed to be
|
||||
rejected while the command line arguments are parsed, but we fail
|
||||
to reject such a command line upfront.
|
||||
(merge 84d938b732 nd/attr-pathspec-fix later to maint).
|
||||
|
||||
* Recent update broke the reachability algorithm when refs (e.g.
|
||||
tags) that point at objects that are not commit were involved,
|
||||
which has been fixed.
|
||||
|
||||
* "git rebase" etc. in Git 2.19 fails to abort when given an empty
|
||||
commit log message as result of editing, which has been corrected.
|
||||
(merge a3ec9eaf38 en/sequencer-empty-edit-result-aborts later to maint).
|
||||
|
||||
* The code to backfill objects in lazily cloned repository did not
|
||||
work correctly, which has been corrected.
|
||||
(merge e68302011c jt/lazy-object-fetch-fix later to maint).
|
||||
|
||||
* Update error messages given by "git remote" and make them consistent.
|
||||
(merge 5025425dff ms/remote-error-message-update later to maint).
|
||||
|
||||
* "git update-ref" learned to make both "--no-deref" and "--stdin"
|
||||
work at the same time.
|
||||
(merge d345e9fbe7 en/update-ref-no-deref-stdin later to maint).
|
||||
|
||||
* Recently added "range-diff" had a corner-case bug to cause it
|
||||
segfault, which has been corrected.
|
||||
(merge e467a90c7a tg/range-diff-corner-case-fix later to maint).
|
||||
|
||||
* The recently introduced commit-graph auxiliary data is incompatible
|
||||
with mechanisms such as replace & grafts that "breaks" immutable
|
||||
nature of the object reference relationship. Disable optimizations
|
||||
based on its use (and updating existing commit-graph) when these
|
||||
incompatible features are in use in the repository.
|
||||
(merge 829a321569 ds/commit-graph-with-grafts later to maint).
|
||||
|
||||
* The mailmap file update.
|
||||
(merge 255eb03edf jn/mailmap-update later to maint).
|
||||
|
||||
* The code in "git status" sometimes hit an assertion failure. This
|
||||
was caused by a structure that was reused without cleaning the data
|
||||
used for the first run, which has been corrected.
|
||||
(merge 3e73cc62c0 en/status-multiple-renames-to-the-same-target-fix later to maint).
|
||||
|
||||
* "git fetch $repo $object" in a partial clone did not correctly
|
||||
fetch the asked-for object that is referenced by an object in
|
||||
promisor packfile, which has been fixed.
|
||||
|
||||
* A corner-case bugfix.
|
||||
(merge c5cbb27cb5 sm/show-superproject-while-conflicted later to maint).
|
||||
|
||||
* Various fixes to "diff --color-moved-ws".
|
||||
|
||||
* A partial clone that is configured to lazily fetch missing objects
|
||||
will on-demand issue a "git fetch" request to the originating
|
||||
repository to fill not-yet-obtained objects. The request has been
|
||||
optimized for requesting a tree object (and not the leaf blob
|
||||
objects contained in it) by telling the originating repository that
|
||||
no blobs are needed.
|
||||
(merge 4c7f9567ea jt/non-blob-lazy-fetch later to maint).
|
||||
|
||||
* The codepath to support the experimental split-index mode had
|
||||
remaining "racily clean" issues fixed.
|
||||
(merge 4c490f3d32 sg/split-index-racefix later to maint).
|
||||
|
||||
* "git log --graph" showing an octopus merge sometimes miscounted the
|
||||
number of display columns it is consuming to show the merge and its
|
||||
parent commits, which has been corrected.
|
||||
(merge 04005834ed np/log-graph-octopus-fix later to maint).
|
||||
|
||||
* "git range-diff" did not work well when the compared ranges had
|
||||
changes in submodules and the "--submodule=log" was used.
|
||||
|
||||
* The implementation of run_command() API on the UNIX platforms had a
|
||||
bug that caused a command not on $PATH to be found in the current
|
||||
directory.
|
||||
(merge f67b980771 jk/run-command-notdot later to maint).
|
||||
|
||||
* A mutex used in "git pack-objects" were not correctly initialized
|
||||
and this caused "git repack" to dump core on Windows.
|
||||
(merge 34204c8166 js/pack-objects-mutex-init-fix later to maint).
|
||||
|
||||
* Under certain circumstances, "git diff D:/a/b/c D:/a/b/d" on
|
||||
Windows would strip initial parts from the paths because they
|
||||
were not recognized as absolute, which has been corrected.
|
||||
(merge ffd04e92e2 js/diff-notice-has-drive-prefix later to maint).
|
||||
|
||||
* The receive.denyCurrentBranch=updateInstead codepath kicked in even
|
||||
when the push should have been rejected due to other reasons, such
|
||||
as it does not fast-forward or the update-hook rejects it, which
|
||||
has been corrected.
|
||||
(merge b072a25fad jc/receive-deny-current-branch-fix later to maint).
|
||||
|
||||
* The logic to determine the archive type "git archive" uses did not
|
||||
correctly kick in for "git archive --remote", which has been
|
||||
corrected.
|
||||
|
||||
* "git repack" in a shallow clone did not correctly update the
|
||||
shallow points in the repository, leading to a repository that
|
||||
does not pass fsck.
|
||||
(merge 5dcfbf564c js/shallow-and-fetch-prune later to maint).
|
||||
|
||||
* Some codepaths failed to form a proper URL when .gitmodules record
|
||||
the URL to a submodule repository as relative to the repository of
|
||||
superproject, which has been corrected.
|
||||
(merge e0a862fdaf sb/submodule-url-to-absolute later to maint).
|
||||
|
||||
* "git fetch" over protocol v2 into a shallow repository failed to
|
||||
fetch full history behind a new tip of history that was diverged
|
||||
before the cut-off point of the history that was previously fetched
|
||||
shallowly.
|
||||
|
||||
* The command line completion machinery (in contrib/) has been
|
||||
updated to allow the completion script to tweak the list of options
|
||||
that are reported by the parse-options machinery correctly.
|
||||
(merge 276b49ff34 nd/completion-negation later to maint).
|
||||
|
||||
* Operations on promisor objects make sense in the context of only a
|
||||
small subset of the commands that internally use the revisions
|
||||
machinery, but the "--exclude-promisor-objects" option were taken
|
||||
and led to nonsense results by commands like "log", to which it
|
||||
didn't make much sense. This has been corrected.
|
||||
(merge 669b1d2aae md/exclude-promisor-objects-fix later to maint).
|
||||
|
||||
* A regression in Git 2.12 era made "git fsck" fall into an infinite
|
||||
loop while processing truncated loose objects.
|
||||
(merge 18ad13e5b2 jk/detect-truncated-zlib-input later to maint).
|
||||
|
||||
* "git ls-remote $there foo" was broken by recent update for the
|
||||
protocol v2 and stopped showing refs that match 'foo' that are not
|
||||
refs/{heads,tags}/foo, which has been fixed.
|
||||
(merge 6a139cdd74 jk/proto-v2-ref-prefix-fix later to maint).
|
||||
|
||||
* Additional comment on a tricky piece of code to help developers.
|
||||
(merge 0afbe3e806 jk/stream-pack-non-delta-clarification later to maint).
|
||||
|
||||
* A couple of tests used to leave the repository in a state that is
|
||||
deliberately corrupt, which have been corrected.
|
||||
(merge aa984dbe5e ab/pack-tests-cleanup later to maint).
|
||||
|
||||
* The submodule support has been updated to read from the blob at
|
||||
HEAD:.gitmodules when the .gitmodules file is missing from the
|
||||
working tree.
|
||||
(merge 2b1257e463 ao/submodule-wo-gitmodules-checked-out later to maint).
|
||||
|
||||
* "git fetch" was a bit loose in parsing responses from the other side
|
||||
when talking over the protocol v2.
|
||||
|
||||
* "git rev-parse --exclude=* --branches --branches" (i.e. first
|
||||
saying "add only things that do not match '*' out of all branches"
|
||||
and then adding all branches, without any exclusion this time)
|
||||
worked as expected, but "--exclude=* --all --all" did not work the
|
||||
same way, which has been fixed.
|
||||
(merge 5221048092 ag/rev-parse-all-exclude-fix later to maint).
|
||||
|
||||
* "git send-email --transfer-encoding=..." in recent versions of Git
|
||||
sometimes produced an empty "Content-Transfer-Encoding:" header,
|
||||
which has been corrected.
|
||||
(merge 3c88e46f1a al/send-email-auto-cte-fixup later to maint).
|
||||
|
||||
* The interface into "xdiff" library used to discover the offset and
|
||||
size of a generated patch hunk by first formatting it into the
|
||||
textual hunk header "@@ -n,m +k,l @@" and then parsing the numbers
|
||||
out. A new interface has been introduced to allow callers a more
|
||||
direct access to them.
|
||||
(merge 5eade0746e jk/xdiff-interface later to maint).
|
||||
|
||||
* Pathspec matching against a tree object were buggy when negative
|
||||
pathspec elements were involved, which has been fixed.
|
||||
(merge b7845cebc0 nd/tree-walk-path-exclusion later to maint).
|
||||
|
||||
* "git merge" and "git pull" that merges into an unborn branch used
|
||||
to completely ignore "--verify-signatures", which has been
|
||||
corrected.
|
||||
(merge 01a31f3bca jk/verify-sig-merge-into-void later to maint).
|
||||
|
||||
* "git rebase --autostash" did not correctly re-attach the HEAD at times.
|
||||
|
||||
* "rev-parse --exclude=<pattern> --branches=<pattern>" etc. did not
|
||||
quite work, which has been corrected.
|
||||
(merge 9ab9b5df0e ra/rev-parse-exclude-glob later to maint).
|
||||
|
||||
* When editing a patch in a "git add -i" session, a hunk could be
|
||||
made to no-op. The "git apply" program used to reject a patch with
|
||||
such a no-op hunk to catch user mistakes, but it is now updated to
|
||||
explicitly allow a no-op hunk in an edited patch.
|
||||
(merge 22cb3835b9 js/apply-recount-allow-noop later to maint).
|
||||
|
||||
* The URL to an MSDN page in a comment has been updated.
|
||||
(merge 2ef2ae2917 js/mingw-msdn-url later to maint).
|
||||
|
||||
* "git ls-remote --sort=<thing>" can feed an object that is not yet
|
||||
available into the comparison machinery and segfault, which has
|
||||
been corrected to check such a request upfront and reject it.
|
||||
|
||||
* When "git bundle" aborts due to an empty commit ranges
|
||||
(i.e. resulting in an empty pack), it left a file descriptor to an
|
||||
lockfile open, which resulted in leftover lockfile on Windows where
|
||||
you cannot remove a file with an open file descriptor. This has
|
||||
been corrected.
|
||||
(merge 2c8ee1f53c jk/close-duped-fd-before-unlock-for-bundle later to maint).
|
||||
|
||||
* "git format-patch --stat=<width>" can be used to specify the width
|
||||
used by the diffstat (shown in the cover letter).
|
||||
(merge 284aeb7e60 nd/format-patch-cover-letter-stat-width later to maint).
|
||||
|
||||
* The way .git/index and .git/sharedindex* files were initially
|
||||
created gave these files different perm bits until they were
|
||||
adjusted for shared repository settings. This was made consistent.
|
||||
(merge c9d6c78870 cc/shared-index-permbits later to maint).
|
||||
|
||||
* "git rebase --stat" to transplant a piece of history onto a totally
|
||||
unrelated history were not working before and silently showed wrong
|
||||
result. With the recent reimplementation in C, it started to instead
|
||||
die with an error message, as the original logic was not prepared
|
||||
to cope with this case. This has now been fixed.
|
||||
|
||||
* The advice message to tell the user to migrate an existing graft
|
||||
file to the replace system when a graft file was read was shown
|
||||
even when "git replace --convert-graft-file" command, which is the
|
||||
way the message suggests to use, was running, which made little
|
||||
sense.
|
||||
(merge 8821e90a09 ab/replace-graft-with-replace-advice later to maint).
|
||||
|
||||
* "git diff --raw" lost ellipses to adjust the output columns for
|
||||
some time now, but the documentation still showed them.
|
||||
|
||||
* Code cleanup, docfix, build fix, etc.
|
||||
(merge 96a7501aad ts/doc-build-manpage-xsl-quietly later to maint).
|
||||
(merge b9b07efdb2 tg/conflict-marker-size later to maint).
|
||||
(merge fa0aeea770 sg/doc-trace-appends later to maint).
|
||||
(merge d64324cb60 tb/void-check-attr later to maint).
|
||||
(merge c3b9bc94b9 en/double-semicolon-fix later to maint).
|
||||
(merge 79336116f5 sg/t3701-tighten-trace later to maint).
|
||||
(merge 801fa63a90 jk/dev-build-format-security later to maint).
|
||||
(merge 0597dd62ba sb/string-list-remove-unused later to maint).
|
||||
(merge db2d36fad8 bw/protocol-v2 later to maint).
|
||||
(merge 456d7cd3a9 sg/split-index-test later to maint).
|
||||
(merge 7b6057c852 tq/refs-internal-comment-fix later to maint).
|
||||
(merge 29e8dc50ad tg/t5551-with-curl-7.61.1 later to maint).
|
||||
(merge 55f6bce2c9 fe/doc-updates later to maint).
|
||||
(merge 7987d2232d jk/check-everything-connected-is-long-gone later to maint).
|
||||
(merge 4ba3c9be47 dz/credential-doc-url-matching-rules later to maint).
|
||||
(merge 4c399442f7 ma/commit-graph-docs later to maint).
|
||||
(merge fc0503b04e ma/t1400-undebug-test later to maint).
|
||||
(merge e56b53553a nd/packobjectshook-doc-fix later to maint).
|
||||
(merge c56170a0c4 ma/mailing-list-address-in-git-help later to maint).
|
||||
(merge 6e8fc70fce rs/sequencer-oidset-insert-avoids-dups later to maint).
|
||||
(merge ad0b8f9575 mw/doc-typofixes later to maint).
|
||||
(merge d9f079ad1a jc/how-to-document-api later to maint).
|
||||
(merge b1492bf315 ma/t7005-bash-workaround later to maint).
|
||||
(merge ac1f98a0df du/rev-parse-is-plumbing later to maint).
|
||||
(merge ca8ed443a5 mm/doc-no-dashed-git later to maint).
|
||||
(merge ce366a8144 du/get-tar-commit-id-is-plumbing later to maint).
|
||||
(merge 61018fe9e0 du/cherry-is-plumbing later to maint).
|
||||
(merge c7e5fe79b9 sb/strbuf-h-update later to maint).
|
||||
(merge 8d2008196b tq/branch-create-wo-branch-get later to maint).
|
||||
(merge 2e3c894f4b tq/branch-style-fix later to maint).
|
||||
(merge c5d844af9c sg/doc-show-branch-typofix later to maint).
|
||||
(merge 081d91618b ah/doc-updates later to maint).
|
||||
(merge b84c783882 jc/cocci-preincr later to maint).
|
||||
(merge 5e495f8122 uk/merge-subtree-doc-update later to maint).
|
||||
(merge aaaa881822 jk/uploadpack-packobjectshook-fix later to maint).
|
||||
(merge 3063477445 tb/char-may-be-unsigned later to maint).
|
||||
(merge 8c64bc9420 sg/test-rebase-editor-fix later to maint).
|
||||
(merge 71571cd7d6 ma/sequencer-do-reset-saner-loop-termination later to maint).
|
||||
(merge 9a4cb8781e cb/notes-freeing-always-null-fix later to maint).
|
||||
(merge 3006f5ee16 ma/reset-doc-rendering-fix later to maint).
|
||||
(merge 4c2eb06419 sg/daemon-test-signal-fix later to maint).
|
||||
(merge d27525e519 ss/msvc-strcasecmp later to maint).
|
@ -80,9 +80,7 @@ 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 (try the Documentation/doc-diff script).
|
||||
|
||||
We currently have a liberal mixture of US and UK English norms for
|
||||
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
|
||||
@ -178,12 +176,6 @@ that is fine, but please mark it as such.
|
||||
[[send-patches]]
|
||||
=== Sending your patches.
|
||||
|
||||
:security-ml: footnoteref:[security-ml,The Git Security mailing list: git-security@googlegroups.com]
|
||||
|
||||
Before sending any patches, please note that patches that may be
|
||||
security relevant should be submitted privately to the Git Security
|
||||
mailing list{security-ml}, instead of the public mailing list.
|
||||
|
||||
Learn to use format-patch and send-email if possible. These commands
|
||||
are optimized for the workflow of sending patches, avoiding many ways
|
||||
your existing e-mail client that is optimized for "multipart/*" mime
|
||||
@ -267,24 +259,17 @@ patch, format it as "multipart/signed", not a text/plain message
|
||||
that starts with `-----BEGIN PGP SIGNED MESSAGE-----`. That is
|
||||
not a text/plain, it's something else.
|
||||
|
||||
:security-ml-ref: footnoteref:[security-ml]
|
||||
|
||||
As mentioned at the beginning of the section, patches that may be
|
||||
security relevant should not be submitted to the public mailing list
|
||||
mentioned below, but should instead be sent privately to the Git
|
||||
Security mailing list{security-ml-ref}.
|
||||
|
||||
Send your patch with "To:" set to the mailing list, with "cc:" listing
|
||||
people who are involved in the area you are touching (the `git
|
||||
contacts` command in `contrib/contacts/` can help to
|
||||
people who are involved in the area you are touching (the output from
|
||||
`git blame $path` and `git shortlog --no-merges $path` would help to
|
||||
identify them), to solicit comments and reviews.
|
||||
|
||||
:current-maintainer: footnote:[The current maintainer: gitster@pobox.com]
|
||||
:git-ml: footnote:[The mailing list: git@vger.kernel.org]
|
||||
:1: footnote:[The current maintainer: gitster@pobox.com]
|
||||
:2: footnote:[The mailing list: git@vger.kernel.org]
|
||||
|
||||
After the list reached a consensus that it is a good idea to apply the
|
||||
patch, re-send it with "To:" set to the maintainer{current-maintainer} and "cc:" the
|
||||
list{git-ml} for inclusion.
|
||||
patch, re-send it with "To:" set to the maintainer{1} and "cc:" the
|
||||
list{2} for inclusion.
|
||||
|
||||
Do not forget to add trailers such as `Acked-by:`, `Reviewed-by:` and
|
||||
`Tested-by:` lines as necessary to credit people who helped your
|
||||
@ -300,7 +285,7 @@ smaller project it is a good discipline to follow it.
|
||||
|
||||
The sign-off is a simple line at the end of the explanation for
|
||||
the patch, which certifies that you wrote it or otherwise have
|
||||
the right to pass it on as an open-source patch. The rules are
|
||||
the right to pass it on as a open-source patch. The rules are
|
||||
pretty simple: if you can certify the below D-C-O:
|
||||
|
||||
[[dco]]
|
||||
@ -405,7 +390,7 @@ don't demand). +git log -p {litdd} _$area_you_are_modifying_+ would
|
||||
help you find out who they are.
|
||||
|
||||
. You get comments and suggestions for improvements. You may
|
||||
even get them in an "on top of your change" patch form.
|
||||
even get them in a "on top of your change" patch form.
|
||||
|
||||
. Polish, refine, and re-send to the list and the people who
|
||||
spend their time to improve your patch. Go back to step (2).
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@
|
||||
add.ignoreErrors::
|
||||
add.ignore-errors (deprecated)::
|
||||
Tells 'git add' to continue adding files when some files cannot be
|
||||
added due to indexing errors. Equivalent to the `--ignore-errors`
|
||||
option of linkgit:git-add[1]. `add.ignore-errors` is deprecated,
|
||||
as it does not follow the usual naming convention for configuration
|
||||
variables.
|
@ -1,86 +0,0 @@
|
||||
advice.*::
|
||||
These variables control various optional help messages designed to
|
||||
aid new users. All 'advice.*' variables default to 'true', and you
|
||||
can tell Git that you do not need help by setting these to 'false':
|
||||
+
|
||||
--
|
||||
pushUpdateRejected::
|
||||
Set this variable to 'false' if you want to disable
|
||||
'pushNonFFCurrent',
|
||||
'pushNonFFMatching', 'pushAlreadyExists',
|
||||
'pushFetchFirst', and 'pushNeedsForce'
|
||||
simultaneously.
|
||||
pushNonFFCurrent::
|
||||
Advice shown when linkgit:git-push[1] fails due to a
|
||||
non-fast-forward update to the current branch.
|
||||
pushNonFFMatching::
|
||||
Advice shown when you ran linkgit:git-push[1] and pushed
|
||||
'matching refs' explicitly (i.e. you used ':', or
|
||||
specified a refspec that isn't your current branch) and
|
||||
it resulted in a non-fast-forward error.
|
||||
pushAlreadyExists::
|
||||
Shown when linkgit:git-push[1] rejects an update that
|
||||
does not qualify for fast-forwarding (e.g., a tag.)
|
||||
pushFetchFirst::
|
||||
Shown when linkgit:git-push[1] rejects an update that
|
||||
tries to overwrite a remote ref that points at an
|
||||
object we do not have.
|
||||
pushNeedsForce::
|
||||
Shown when linkgit:git-push[1] rejects an update that
|
||||
tries to overwrite a remote ref that points at an
|
||||
object that is not a commit-ish, or make the remote
|
||||
ref point at an object that is not a commit-ish.
|
||||
statusHints::
|
||||
Show directions on how to proceed from the current
|
||||
state in the output of linkgit:git-status[1], in
|
||||
the template shown when writing commit messages in
|
||||
linkgit:git-commit[1], and in the help message shown
|
||||
by linkgit:git-checkout[1] when switching branch.
|
||||
statusUoption::
|
||||
Advise to consider using the `-u` option to linkgit:git-status[1]
|
||||
when the command takes more than 2 seconds to enumerate untracked
|
||||
files.
|
||||
commitBeforeMerge::
|
||||
Advice shown when linkgit:git-merge[1] refuses to
|
||||
merge to avoid overwriting local changes.
|
||||
resetQuiet::
|
||||
Advice to consider using the `--quiet` option to linkgit:git-reset[1]
|
||||
when the command takes more than 2 seconds to enumerate unstaged
|
||||
changes after reset.
|
||||
resolveConflict::
|
||||
Advice shown by various commands when conflicts
|
||||
prevent the operation from being performed.
|
||||
implicitIdentity::
|
||||
Advice on how to set your identity configuration when
|
||||
your information is guessed from the system username and
|
||||
domain name.
|
||||
detachedHead::
|
||||
Advice shown when you used linkgit:git-checkout[1] to
|
||||
move to the detach HEAD state, to instruct how to create
|
||||
a local branch after the fact.
|
||||
checkoutAmbiguousRemoteBranchName::
|
||||
Advice shown when the argument to
|
||||
linkgit:git-checkout[1] ambiguously resolves to a
|
||||
remote tracking branch on more than one remote in
|
||||
situations where an unambiguous argument would have
|
||||
otherwise caused a remote-tracking branch to be
|
||||
checked out. See the `checkout.defaultRemote`
|
||||
configuration variable for how to set a given remote
|
||||
to used by default in some situations where this
|
||||
advice would be printed.
|
||||
amWorkDir::
|
||||
Advice that shows the location of the patch file when
|
||||
linkgit:git-am[1] fails to apply it.
|
||||
rmHints::
|
||||
In case of failure in the output of linkgit:git-rm[1],
|
||||
show directions on how to proceed from the current state.
|
||||
addEmbeddedRepo::
|
||||
Advice on what to do when you've accidentally added one
|
||||
git repo inside of another.
|
||||
ignoredHook::
|
||||
Advice shown if a hook is ignored because the hook is not
|
||||
set as executable.
|
||||
waitingForEditor::
|
||||
Print a message to the terminal whenever Git is waiting for
|
||||
editor input from the user.
|
||||
--
|
@ -1,18 +0,0 @@
|
||||
alias.*::
|
||||
Command aliases for the linkgit:git[1] command wrapper - e.g.
|
||||
after defining "alias.last = cat-file commit HEAD", the invocation
|
||||
"git last" is equivalent to "git cat-file commit HEAD". To avoid
|
||||
confusion and troubles with script usage, aliases that
|
||||
hide existing Git commands are ignored. Arguments are split by
|
||||
spaces, the usual shell quoting and escaping is supported.
|
||||
A quote pair or a backslash can be used to quote them.
|
||||
+
|
||||
If the alias expansion is prefixed with an exclamation point,
|
||||
it will be treated as a shell command. For example, defining
|
||||
"alias.new = !gitk --all --not ORIG_HEAD", the invocation
|
||||
"git new" is equivalent to running the shell command
|
||||
"gitk --all --not ORIG_HEAD". Note that shell commands will be
|
||||
executed from the top-level directory of a repository, which may
|
||||
not necessarily be the current directory.
|
||||
`GIT_PREFIX` is set as returned by running 'git rev-parse --show-prefix'
|
||||
from the original current directory. See linkgit:git-rev-parse[1].
|
@ -1,14 +0,0 @@
|
||||
am.keepcr::
|
||||
If true, git-am will call git-mailsplit for patches in mbox format
|
||||
with parameter `--keep-cr`. In this case git-mailsplit will
|
||||
not remove `\r` from lines ending with `\r\n`. Can be overridden
|
||||
by giving `--no-keep-cr` from the command line.
|
||||
See linkgit:git-am[1], linkgit:git-mailsplit[1].
|
||||
|
||||
am.threeWay::
|
||||
By default, `git am` will fail if the patch does not apply cleanly. When
|
||||
set to true, this setting tells `git am` to fall back on 3-way merge if
|
||||
the patch records the identity of blobs it is supposed to apply to and
|
||||
we have those blobs available locally (equivalent to giving the `--3way`
|
||||
option from the command line). Defaults to `false`.
|
||||
See linkgit:git-am[1].
|
@ -1,11 +0,0 @@
|
||||
apply.ignoreWhitespace::
|
||||
When set to 'change', tells 'git apply' to ignore changes in
|
||||
whitespace, in the same way as the `--ignore-space-change`
|
||||
option.
|
||||
When set to one of: no, none, never, false tells 'git apply' to
|
||||
respect all whitespace differences.
|
||||
See linkgit:git-apply[1].
|
||||
|
||||
apply.whitespace::
|
||||
Tells 'git apply' how to handle whitespaces, in the same way
|
||||
as the `--whitespace` option. See linkgit:git-apply[1].
|
@ -1,21 +0,0 @@
|
||||
blame.blankBoundary::
|
||||
Show blank commit object name for boundary commits in
|
||||
linkgit:git-blame[1]. This option defaults to false.
|
||||
|
||||
blame.coloring::
|
||||
This determines the coloring scheme to be applied to blame
|
||||
output. It can be 'repeatedLines', 'highlightRecent',
|
||||
or 'none' which is the default.
|
||||
|
||||
blame.date::
|
||||
Specifies the format used to output dates in linkgit:git-blame[1].
|
||||
If unset the iso format is used. For supported values,
|
||||
see the discussion of the `--date` option at linkgit:git-log[1].
|
||||
|
||||
blame.showEmail::
|
||||
Show the author email instead of author name in linkgit:git-blame[1].
|
||||
This option defaults to false.
|
||||
|
||||
blame.showRoot::
|
||||
Do not treat root commits as boundaries in linkgit:git-blame[1].
|
||||
This option defaults to false.
|
@ -1,102 +0,0 @@
|
||||
branch.autoSetupMerge::
|
||||
Tells 'git branch' and 'git checkout' to set up new branches
|
||||
so that linkgit:git-pull[1] will appropriately merge from the
|
||||
starting point branch. Note that even if this option is not set,
|
||||
this behavior can be chosen per-branch using the `--track`
|
||||
and `--no-track` options. The valid settings are: `false` -- no
|
||||
automatic setup is done; `true` -- automatic setup is done when the
|
||||
starting point is a remote-tracking branch; `always` --
|
||||
automatic setup is done when the starting point is either a
|
||||
local branch or remote-tracking
|
||||
branch. This option defaults to true.
|
||||
|
||||
branch.autoSetupRebase::
|
||||
When a new branch is created with 'git branch' or 'git checkout'
|
||||
that tracks another branch, this variable tells Git to set
|
||||
up pull to rebase instead of merge (see "branch.<name>.rebase").
|
||||
When `never`, rebase is never automatically set to true.
|
||||
When `local`, rebase is set to true for tracked branches of
|
||||
other local branches.
|
||||
When `remote`, rebase is set to true for tracked branches of
|
||||
remote-tracking branches.
|
||||
When `always`, rebase will be set to true for all tracking
|
||||
branches.
|
||||
See "branch.autoSetupMerge" for details on how to set up a
|
||||
branch to track another branch.
|
||||
This option defaults to never.
|
||||
|
||||
branch.sort::
|
||||
This variable controls the sort ordering of branches when displayed by
|
||||
linkgit:git-branch[1]. Without the "--sort=<value>" option provided, the
|
||||
value of this variable will be used as the default.
|
||||
See linkgit:git-for-each-ref[1] field names for valid values.
|
||||
|
||||
branch.<name>.remote::
|
||||
When on branch <name>, it tells 'git fetch' and 'git push'
|
||||
which remote to fetch from/push to. The remote to push to
|
||||
may be overridden with `remote.pushDefault` (for all branches).
|
||||
The remote to push to, for the current branch, may be further
|
||||
overridden by `branch.<name>.pushRemote`. If no remote is
|
||||
configured, or if you are not on any branch, it defaults to
|
||||
`origin` for fetching and `remote.pushDefault` for pushing.
|
||||
Additionally, `.` (a period) is the current local repository
|
||||
(a dot-repository), see `branch.<name>.merge`'s final note below.
|
||||
|
||||
branch.<name>.pushRemote::
|
||||
When on branch <name>, it overrides `branch.<name>.remote` for
|
||||
pushing. It also overrides `remote.pushDefault` for pushing
|
||||
from branch <name>. When you pull from one place (e.g. your
|
||||
upstream) and push to another place (e.g. your own publishing
|
||||
repository), you would want to set `remote.pushDefault` to
|
||||
specify the remote to push to for all branches, and use this
|
||||
option to override it for a specific branch.
|
||||
|
||||
branch.<name>.merge::
|
||||
Defines, together with branch.<name>.remote, the upstream branch
|
||||
for the given branch. It tells 'git fetch'/'git pull'/'git rebase' which
|
||||
branch to merge and can also affect 'git push' (see push.default).
|
||||
When in branch <name>, it tells 'git fetch' the default
|
||||
refspec to be marked for merging in FETCH_HEAD. The value is
|
||||
handled like the remote part of a refspec, and must match a
|
||||
ref which is fetched from the remote given by
|
||||
"branch.<name>.remote".
|
||||
The merge information is used by 'git pull' (which at first calls
|
||||
'git fetch') to lookup the default branch for merging. Without
|
||||
this option, 'git pull' defaults to merge the first refspec fetched.
|
||||
Specify multiple values to get an octopus merge.
|
||||
If you wish to setup 'git pull' so that it merges into <name> from
|
||||
another branch in the local repository, you can point
|
||||
branch.<name>.merge to the desired branch, and use the relative path
|
||||
setting `.` (a period) for branch.<name>.remote.
|
||||
|
||||
branch.<name>.mergeOptions::
|
||||
Sets default options for merging into branch <name>. The syntax and
|
||||
supported options are the same as those of linkgit:git-merge[1], but
|
||||
option values containing whitespace characters are currently not
|
||||
supported.
|
||||
|
||||
branch.<name>.rebase::
|
||||
When true, rebase the branch <name> on top of the fetched branch,
|
||||
instead of merging the default branch from the default remote when
|
||||
"git pull" is run. See "pull.rebase" for doing this in a non
|
||||
branch-specific manner.
|
||||
+
|
||||
When `merges`, pass the `--rebase-merges` option to 'git rebase'
|
||||
so that the local merge commits are included in the rebase (see
|
||||
linkgit:git-rebase[1] for details).
|
||||
+
|
||||
When preserve, also pass `--preserve-merges` along to 'git rebase'
|
||||
so that locally committed merge commits will not be flattened
|
||||
by running 'git pull'.
|
||||
+
|
||||
When the value is `interactive`, the rebase is run in interactive mode.
|
||||
+
|
||||
*NOTE*: this is a possibly dangerous operation; do *not* use
|
||||
it unless you understand the implications (see linkgit:git-rebase[1]
|
||||
for details).
|
||||
|
||||
branch.<name>.description::
|
||||
Branch description, can be edited with
|
||||
`git branch --edit-description`. Branch description is
|
||||
automatically added in the format-patch cover letter or
|
||||
request-pull summary.
|
@ -1,9 +0,0 @@
|
||||
browser.<tool>.cmd::
|
||||
Specify the command to invoke the specified browser. The
|
||||
specified command is evaluated in shell with the URLs passed
|
||||
as arguments. (See linkgit:git-web{litdd}browse[1].)
|
||||
|
||||
browser.<tool>.path::
|
||||
Override the path for the given tool that may be used to
|
||||
browse HTML help (see `-w` option in linkgit:git-help[1]) or a
|
||||
working repository in gitweb (see linkgit:git-instaweb[1]).
|
@ -1,23 +0,0 @@
|
||||
checkout.defaultRemote::
|
||||
When you run 'git checkout <something>' and only have one
|
||||
remote, it may implicitly fall back on checking out and
|
||||
tracking e.g. 'origin/<something>'. This stops working as soon
|
||||
as you have more than one remote with a '<something>'
|
||||
reference. This setting allows for setting the name of a
|
||||
preferred remote that should always win when it comes to
|
||||
disambiguation. The typical use-case is to set this to
|
||||
`origin`.
|
||||
+
|
||||
Currently this is used by linkgit:git-checkout[1] when 'git checkout
|
||||
<something>' will checkout the '<something>' branch on another remote,
|
||||
and by linkgit:git-worktree[1] when 'git worktree add' refers to a
|
||||
remote branch. This setting might be used for other checkout-like
|
||||
commands or functionality in the future.
|
||||
|
||||
checkout.optimizeNewBranch::
|
||||
Optimizes the performance of "git checkout -b <new_branch>" when
|
||||
using sparse-checkout. When set to true, git will not update the
|
||||
repo based on the current sparse-checkout settings. This means it
|
||||
will not update the skip-worktree bit in the index nor add/remove
|
||||
files in the working directory to reflect the current sparse checkout
|
||||
settings nor will it show the local changes.
|
@ -1,3 +0,0 @@
|
||||
clean.requireForce::
|
||||
A boolean to make git-clean do nothing unless given -f,
|
||||
-i or -n. Defaults to true.
|
@ -1,201 +0,0 @@
|
||||
color.advice::
|
||||
A boolean to enable/disable color in hints (e.g. when a push
|
||||
failed, see `advice.*` for a list). May be set to `always`,
|
||||
`false` (or `never`) or `auto` (or `true`), in which case colors
|
||||
are used only when the error output goes to a terminal. If
|
||||
unset, then the value of `color.ui` is used (`auto` by default).
|
||||
|
||||
color.advice.hint::
|
||||
Use customized color for hints.
|
||||
|
||||
color.blame.highlightRecent::
|
||||
This can be used to color the metadata of a blame line depending
|
||||
on age of the line.
|
||||
+
|
||||
This setting should be set to a comma-separated list of color and date settings,
|
||||
starting and ending with a color, the dates should be set from oldest to newest.
|
||||
The metadata will be colored given the colors if the the line was introduced
|
||||
before the given timestamp, overwriting older timestamped colors.
|
||||
+
|
||||
Instead of an absolute timestamp relative timestamps work as well, e.g.
|
||||
2.weeks.ago is valid to address anything older than 2 weeks.
|
||||
+
|
||||
It defaults to 'blue,12 month ago,white,1 month ago,red', which colors
|
||||
everything older than one year blue, recent changes between one month and
|
||||
one year old are kept white, and lines introduced within the last month are
|
||||
colored red.
|
||||
|
||||
color.blame.repeatedLines::
|
||||
Use the customized color for the part of git-blame output that
|
||||
is repeated meta information per line (such as commit id,
|
||||
author name, date and timezone). Defaults to cyan.
|
||||
|
||||
color.branch::
|
||||
A boolean to enable/disable color in the output of
|
||||
linkgit:git-branch[1]. May be set to `always`,
|
||||
`false` (or `never`) or `auto` (or `true`), in which case colors are used
|
||||
only when the output is to a terminal. If unset, then the
|
||||
value of `color.ui` is used (`auto` by default).
|
||||
|
||||
color.branch.<slot>::
|
||||
Use customized color for branch coloration. `<slot>` is one of
|
||||
`current` (the current branch), `local` (a local branch),
|
||||
`remote` (a remote-tracking branch in refs/remotes/),
|
||||
`upstream` (upstream tracking branch), `plain` (other
|
||||
refs).
|
||||
|
||||
color.diff::
|
||||
Whether to use ANSI escape sequences to add color to patches.
|
||||
If this is set to `always`, linkgit:git-diff[1],
|
||||
linkgit:git-log[1], and linkgit:git-show[1] will use color
|
||||
for all patches. If it is set to `true` or `auto`, those
|
||||
commands will only use color when output is to the terminal.
|
||||
If unset, then the value of `color.ui` is used (`auto` by
|
||||
default).
|
||||
+
|
||||
This does not affect linkgit:git-format-patch[1] or the
|
||||
'git-diff-{asterisk}' plumbing commands. Can be overridden on the
|
||||
command line with the `--color[=<when>]` option.
|
||||
|
||||
color.diff.<slot>::
|
||||
Use customized color for diff colorization. `<slot>` specifies
|
||||
which part of the patch to use the specified color, and is one
|
||||
of `context` (context text - `plain` is a historical synonym),
|
||||
`meta` (metainformation), `frag`
|
||||
(hunk header), 'func' (function in hunk header), `old` (removed lines),
|
||||
`new` (added lines), `commit` (commit headers), `whitespace`
|
||||
(highlighting whitespace errors), `oldMoved` (deleted lines),
|
||||
`newMoved` (added lines), `oldMovedDimmed`, `oldMovedAlternative`,
|
||||
`oldMovedAlternativeDimmed`, `newMovedDimmed`, `newMovedAlternative`
|
||||
`newMovedAlternativeDimmed` (See the '<mode>'
|
||||
setting of '--color-moved' in linkgit:git-diff[1] for details),
|
||||
`contextDimmed`, `oldDimmed`, `newDimmed`, `contextBold`,
|
||||
`oldBold`, and `newBold` (see linkgit:git-range-diff[1] for details).
|
||||
|
||||
color.decorate.<slot>::
|
||||
Use customized color for 'git log --decorate' output. `<slot>` is one
|
||||
of `branch`, `remoteBranch`, `tag`, `stash` or `HEAD` for local
|
||||
branches, remote-tracking branches, tags, stash and HEAD, respectively
|
||||
and `grafted` for grafted commits.
|
||||
|
||||
color.grep::
|
||||
When set to `always`, always highlight matches. When `false` (or
|
||||
`never`), never. When set to `true` or `auto`, use color only
|
||||
when the output is written to the terminal. If unset, then the
|
||||
value of `color.ui` is used (`auto` by default).
|
||||
|
||||
color.grep.<slot>::
|
||||
Use customized color for grep colorization. `<slot>` specifies which
|
||||
part of the line to use the specified color, and is one of
|
||||
+
|
||||
--
|
||||
`context`;;
|
||||
non-matching text in context lines (when using `-A`, `-B`, or `-C`)
|
||||
`filename`;;
|
||||
filename prefix (when not using `-h`)
|
||||
`function`;;
|
||||
function name lines (when using `-p`)
|
||||
`lineNumber`;;
|
||||
line number prefix (when using `-n`)
|
||||
`column`;;
|
||||
column number prefix (when using `--column`)
|
||||
`match`;;
|
||||
matching text (same as setting `matchContext` and `matchSelected`)
|
||||
`matchContext`;;
|
||||
matching text in context lines
|
||||
`matchSelected`;;
|
||||
matching text in selected lines
|
||||
`selected`;;
|
||||
non-matching text in selected lines
|
||||
`separator`;;
|
||||
separators between fields on a line (`:`, `-`, and `=`)
|
||||
and between hunks (`--`)
|
||||
--
|
||||
|
||||
color.interactive::
|
||||
When set to `always`, always use colors for interactive prompts
|
||||
and displays (such as those used by "git-add --interactive" and
|
||||
"git-clean --interactive"). When false (or `never`), never.
|
||||
When set to `true` or `auto`, use colors only when the output is
|
||||
to the terminal. If unset, then the value of `color.ui` is
|
||||
used (`auto` by default).
|
||||
|
||||
color.interactive.<slot>::
|
||||
Use customized color for 'git add --interactive' and 'git clean
|
||||
--interactive' output. `<slot>` may be `prompt`, `header`, `help`
|
||||
or `error`, for four distinct types of normal output from
|
||||
interactive commands.
|
||||
|
||||
color.pager::
|
||||
A boolean to enable/disable colored output when the pager is in
|
||||
use (default is true).
|
||||
|
||||
color.push::
|
||||
A boolean to enable/disable color in push errors. May be set to
|
||||
`always`, `false` (or `never`) or `auto` (or `true`), in which
|
||||
case colors are used only when the error output goes to a terminal.
|
||||
If unset, then the value of `color.ui` is used (`auto` by default).
|
||||
|
||||
color.push.error::
|
||||
Use customized color for push errors.
|
||||
|
||||
color.remote::
|
||||
If set, keywords at the start of the line are highlighted. The
|
||||
keywords are "error", "warning", "hint" and "success", and are
|
||||
matched case-insensitively. May be set to `always`, `false` (or
|
||||
`never`) or `auto` (or `true`). If unset, then the value of
|
||||
`color.ui` is used (`auto` by default).
|
||||
|
||||
color.remote.<slot>::
|
||||
Use customized color for each remote keyword. `<slot>` may be
|
||||
`hint`, `warning`, `success` or `error` which match the
|
||||
corresponding keyword.
|
||||
|
||||
color.showBranch::
|
||||
A boolean to enable/disable color in the output of
|
||||
linkgit:git-show-branch[1]. May be set to `always`,
|
||||
`false` (or `never`) or `auto` (or `true`), in which case colors are used
|
||||
only when the output is to a terminal. If unset, then the
|
||||
value of `color.ui` is used (`auto` by default).
|
||||
|
||||
color.status::
|
||||
A boolean to enable/disable color in the output of
|
||||
linkgit:git-status[1]. May be set to `always`,
|
||||
`false` (or `never`) or `auto` (or `true`), in which case colors are used
|
||||
only when the output is to a terminal. If unset, then the
|
||||
value of `color.ui` is used (`auto` by default).
|
||||
|
||||
color.status.<slot>::
|
||||
Use customized color for status colorization. `<slot>` is
|
||||
one of `header` (the header text of the status message),
|
||||
`added` or `updated` (files which are added but not committed),
|
||||
`changed` (files which are changed but not added in the index),
|
||||
`untracked` (files which are not tracked by Git),
|
||||
`branch` (the current branch),
|
||||
`nobranch` (the color the 'no branch' warning is shown in, defaulting
|
||||
to red),
|
||||
`localBranch` or `remoteBranch` (the local and remote branch names,
|
||||
respectively, when branch and tracking information is displayed in the
|
||||
status short-format), or
|
||||
`unmerged` (files which have unmerged changes).
|
||||
|
||||
color.transport::
|
||||
A boolean to enable/disable color when pushes are rejected. May be
|
||||
set to `always`, `false` (or `never`) or `auto` (or `true`), in which
|
||||
case colors are used only when the error output goes to a terminal.
|
||||
If unset, then the value of `color.ui` is used (`auto` by default).
|
||||
|
||||
color.transport.rejected::
|
||||
Use customized color when a push was rejected.
|
||||
|
||||
color.ui::
|
||||
This variable determines the default value for variables such
|
||||
as `color.diff` and `color.grep` that control the use of color
|
||||
per command family. Its scope will expand as more commands learn
|
||||
configuration to set a default for the `--color` option. Set it
|
||||
to `false` or `never` if you prefer Git commands not to use
|
||||
color unless enabled explicitly with some other configuration
|
||||
or the `--color` option. Set it to `always` if you want all
|
||||
output not intended for machine consumption to use color, to
|
||||
`true` or `auto` (this is the default since Git 1.8.4) if you
|
||||
want such output to use color when written to the terminal.
|
@ -1,55 +0,0 @@
|
||||
column.ui::
|
||||
Specify whether supported commands should output in columns.
|
||||
This variable consists of a list of tokens separated by spaces
|
||||
or commas:
|
||||
+
|
||||
These options control when the feature should be enabled
|
||||
(defaults to 'never'):
|
||||
+
|
||||
--
|
||||
`always`;;
|
||||
always show in columns
|
||||
`never`;;
|
||||
never show in columns
|
||||
`auto`;;
|
||||
show in columns if the output is to the terminal
|
||||
--
|
||||
+
|
||||
These options control layout (defaults to 'column'). Setting any
|
||||
of these implies 'always' if none of 'always', 'never', or 'auto' are
|
||||
specified.
|
||||
+
|
||||
--
|
||||
`column`;;
|
||||
fill columns before rows
|
||||
`row`;;
|
||||
fill rows before columns
|
||||
`plain`;;
|
||||
show in one column
|
||||
--
|
||||
+
|
||||
Finally, these options can be combined with a layout option (defaults
|
||||
to 'nodense'):
|
||||
+
|
||||
--
|
||||
`dense`;;
|
||||
make unequal size columns to utilize more space
|
||||
`nodense`;;
|
||||
make equal size columns
|
||||
--
|
||||
|
||||
column.branch::
|
||||
Specify whether to output branch listing in `git branch` in columns.
|
||||
See `column.ui` for details.
|
||||
|
||||
column.clean::
|
||||
Specify the layout when list items in `git clean -i`, which always
|
||||
shows files and directories in columns. See `column.ui` for details.
|
||||
|
||||
column.status::
|
||||
Specify whether to output untracked files in `git status` in columns.
|
||||
See `column.ui` for details.
|
||||
|
||||
column.tag::
|
||||
Specify whether to output tag listing in `git tag` in columns.
|
||||
See `column.ui` for details.
|
@ -1,29 +0,0 @@
|
||||
commit.cleanup::
|
||||
This setting overrides the default of the `--cleanup` option in
|
||||
`git commit`. See linkgit:git-commit[1] for details. Changing the
|
||||
default can be useful when you always want to keep lines that begin
|
||||
with comment character `#` in your log message, in which case you
|
||||
would do `git config commit.cleanup whitespace` (note that you will
|
||||
have to remove the help lines that begin with `#` in the commit log
|
||||
template yourself, if you do this).
|
||||
|
||||
commit.gpgSign::
|
||||
|
||||
A boolean to specify whether all commits should be GPG signed.
|
||||
Use of this option when doing operations such as rebase can
|
||||
result in a large number of commits being signed. It may be
|
||||
convenient to use an agent to avoid typing your GPG passphrase
|
||||
several times.
|
||||
|
||||
commit.status::
|
||||
A boolean to enable/disable inclusion of status information in the
|
||||
commit message template when using an editor to prepare the commit
|
||||
message. Defaults to true.
|
||||
|
||||
commit.template::
|
||||
Specify the pathname of a file to use as the template for
|
||||
new commit messages.
|
||||
|
||||
commit.verbose::
|
||||
A boolean or int to specify the level of verbose with `git commit`.
|
||||
See linkgit:git-commit[1].
|
@ -1,7 +0,0 @@
|
||||
completion.commands::
|
||||
This is only used by git-completion.bash to add or remove
|
||||
commands from the list of completed commands. Normally only
|
||||
porcelain commands and a few select others are completed. You
|
||||
can add more commands, separated by space, in this
|
||||
variable. Prefixing the command with '-' will remove it from
|
||||
the existing list.
|
@ -1,600 +0,0 @@
|
||||
core.fileMode::
|
||||
Tells Git if the executable bit of files in the working tree
|
||||
is to be honored.
|
||||
+
|
||||
Some filesystems lose the executable bit when a file that is
|
||||
marked as executable is checked out, or checks out a
|
||||
non-executable file with executable bit on.
|
||||
linkgit:git-clone[1] or linkgit:git-init[1] probe the filesystem
|
||||
to see if it handles the executable bit correctly
|
||||
and this variable is automatically set as necessary.
|
||||
+
|
||||
A repository, however, may be on a filesystem that handles
|
||||
the filemode correctly, and this variable is set to 'true'
|
||||
when created, but later may be made accessible from another
|
||||
environment that loses the filemode (e.g. exporting ext4 via
|
||||
CIFS mount, visiting a Cygwin created repository with
|
||||
Git for Windows or Eclipse).
|
||||
In such a case it may be necessary to set this variable to 'false'.
|
||||
See linkgit:git-update-index[1].
|
||||
+
|
||||
The default is true (when core.filemode is not specified in the config file).
|
||||
|
||||
core.hideDotFiles::
|
||||
(Windows-only) If true, mark newly-created directories and files whose
|
||||
name starts with a dot as hidden. If 'dotGitOnly', only the `.git/`
|
||||
directory is hidden, but no other files starting with a dot. The
|
||||
default mode is 'dotGitOnly'.
|
||||
|
||||
core.ignoreCase::
|
||||
Internal variable which enables various workarounds to enable
|
||||
Git to work better on filesystems that are not case sensitive,
|
||||
like APFS, HFS+, FAT, NTFS, etc. For example, if a directory listing
|
||||
finds "makefile" when Git expects "Makefile", Git will assume
|
||||
it is really the same file, and continue to remember it as
|
||||
"Makefile".
|
||||
+
|
||||
The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
|
||||
will probe and set core.ignoreCase true if appropriate when the repository
|
||||
is created.
|
||||
+
|
||||
Git relies on the proper configuration of this variable for your operating
|
||||
and file system. Modifying this value may result in unexpected behavior.
|
||||
|
||||
core.precomposeUnicode::
|
||||
This option is only used by Mac OS implementation of Git.
|
||||
When core.precomposeUnicode=true, Git reverts the unicode decomposition
|
||||
of filenames done by Mac OS. This is useful when sharing a repository
|
||||
between Mac OS and Linux or Windows.
|
||||
(Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7).
|
||||
When false, file names are handled fully transparent by Git,
|
||||
which is backward compatible with older versions of Git.
|
||||
|
||||
core.protectHFS::
|
||||
If set to true, do not allow checkout of paths that would
|
||||
be considered equivalent to `.git` on an HFS+ filesystem.
|
||||
Defaults to `true` on Mac OS, and `false` elsewhere.
|
||||
|
||||
core.protectNTFS::
|
||||
If set to true, do not allow checkout of paths that would
|
||||
cause problems with the NTFS filesystem, e.g. conflict with
|
||||
8.3 "short" names.
|
||||
Defaults to `true` on Windows, and `false` elsewhere.
|
||||
|
||||
core.fsmonitor::
|
||||
If set, the value of this variable is used as a command which
|
||||
will identify all files that may have changed since the
|
||||
requested date/time. This information is used to speed up git by
|
||||
avoiding unnecessary processing of files that have not changed.
|
||||
See the "fsmonitor-watchman" section of linkgit:githooks[5].
|
||||
|
||||
core.trustctime::
|
||||
If false, the ctime differences between the index and the
|
||||
working tree are ignored; useful when the inode change time
|
||||
is regularly modified by something outside Git (file system
|
||||
crawlers and some backup systems).
|
||||
See linkgit:git-update-index[1]. True by default.
|
||||
|
||||
core.splitIndex::
|
||||
If true, the split-index feature of the index will be used.
|
||||
See linkgit:git-update-index[1]. False by default.
|
||||
|
||||
core.untrackedCache::
|
||||
Determines what to do about the untracked cache feature of the
|
||||
index. It will be kept, if this variable is unset or set to
|
||||
`keep`. It will automatically be added if set to `true`. And
|
||||
it will automatically be removed, if set to `false`. Before
|
||||
setting it to `true`, you should check that mtime is working
|
||||
properly on your system.
|
||||
See linkgit:git-update-index[1]. `keep` by default.
|
||||
|
||||
core.checkStat::
|
||||
When missing or is set to `default`, many fields in the stat
|
||||
structure are checked to detect if a file has been modified
|
||||
since Git looked at it. When this configuration variable is
|
||||
set to `minimal`, sub-second part of mtime and ctime, the
|
||||
uid and gid of the owner of the file, the inode number (and
|
||||
the device number, if Git was compiled to use it), are
|
||||
excluded from the check among these fields, leaving only the
|
||||
whole-second part of mtime (and ctime, if `core.trustCtime`
|
||||
is set) and the filesize to be checked.
|
||||
+
|
||||
There are implementations of Git that do not leave usable values in
|
||||
some fields (e.g. JGit); by excluding these fields from the
|
||||
comparison, the `minimal` mode may help interoperability when the
|
||||
same repository is used by these other systems at the same time.
|
||||
|
||||
core.quotePath::
|
||||
Commands that output paths (e.g. 'ls-files', 'diff'), will
|
||||
quote "unusual" characters in the pathname by enclosing the
|
||||
pathname in double-quotes and escaping those characters with
|
||||
backslashes in the same way C escapes control characters (e.g.
|
||||
`\t` for TAB, `\n` for LF, `\\` for backslash) or bytes with
|
||||
values larger than 0x80 (e.g. octal `\302\265` for "micro" in
|
||||
UTF-8). If this variable is set to false, bytes higher than
|
||||
0x80 are not considered "unusual" any more. Double-quotes,
|
||||
backslash and control characters are always escaped regardless
|
||||
of the setting of this variable. A simple space character is
|
||||
not considered "unusual". Many commands can output pathnames
|
||||
completely verbatim using the `-z` option. The default value
|
||||
is true.
|
||||
|
||||
core.eol::
|
||||
Sets the line ending type to use in the working directory for
|
||||
files that have the `text` property set when core.autocrlf is false.
|
||||
Alternatives are 'lf', 'crlf' and 'native', which uses the platform's
|
||||
native line ending. The default value is `native`. See
|
||||
linkgit:gitattributes[5] for more information on end-of-line
|
||||
conversion.
|
||||
|
||||
core.safecrlf::
|
||||
If true, makes Git check if converting `CRLF` is reversible when
|
||||
end-of-line conversion is active. Git will verify if a command
|
||||
modifies a file in the work tree either directly or indirectly.
|
||||
For example, committing a file followed by checking out the
|
||||
same file should yield the original file in the work tree. If
|
||||
this is not the case for the current setting of
|
||||
`core.autocrlf`, Git will reject the file. The variable can
|
||||
be set to "warn", in which case Git will only warn about an
|
||||
irreversible conversion but continue the operation.
|
||||
+
|
||||
CRLF conversion bears a slight chance of corrupting data.
|
||||
When it is enabled, Git will convert CRLF to LF during commit and LF to
|
||||
CRLF during checkout. A file that contains a mixture of LF and
|
||||
CRLF before the commit cannot be recreated by Git. For text
|
||||
files this is the right thing to do: it corrects line endings
|
||||
such that we have only LF line endings in the repository.
|
||||
But for binary files that are accidentally classified as text the
|
||||
conversion can corrupt data.
|
||||
+
|
||||
If you recognize such corruption early you can easily fix it by
|
||||
setting the conversion type explicitly in .gitattributes. Right
|
||||
after committing you still have the original file in your work
|
||||
tree and this file is not yet corrupted. You can explicitly tell
|
||||
Git that this file is binary and Git will handle the file
|
||||
appropriately.
|
||||
+
|
||||
Unfortunately, the desired effect of cleaning up text files with
|
||||
mixed line endings and the undesired effect of corrupting binary
|
||||
files cannot be distinguished. In both cases CRLFs are removed
|
||||
in an irreversible way. For text files this is the right thing
|
||||
to do because CRLFs are line endings, while for binary files
|
||||
converting CRLFs corrupts data.
|
||||
+
|
||||
Note, this safety check does not mean that a checkout will generate a
|
||||
file identical to the original file for a different setting of
|
||||
`core.eol` and `core.autocrlf`, but only for the current one. For
|
||||
example, a text file with `LF` would be accepted with `core.eol=lf`
|
||||
and could later be checked out with `core.eol=crlf`, in which case the
|
||||
resulting file would contain `CRLF`, although the original file
|
||||
contained `LF`. However, in both work trees the line endings would be
|
||||
consistent, that is either all `LF` or all `CRLF`, but never mixed. A
|
||||
file with mixed line endings would be reported by the `core.safecrlf`
|
||||
mechanism.
|
||||
|
||||
core.autocrlf::
|
||||
Setting this variable to "true" is the same as setting
|
||||
the `text` attribute to "auto" on all files and core.eol to "crlf".
|
||||
Set to true if you want to have `CRLF` line endings in your
|
||||
working directory and the repository has LF line endings.
|
||||
This variable can be set to 'input',
|
||||
in which case no output conversion is performed.
|
||||
|
||||
core.checkRoundtripEncoding::
|
||||
A comma and/or whitespace separated list of encodings that Git
|
||||
performs UTF-8 round trip checks on if they are used in an
|
||||
`working-tree-encoding` attribute (see linkgit:gitattributes[5]).
|
||||
The default value is `SHIFT-JIS`.
|
||||
|
||||
core.symlinks::
|
||||
If false, symbolic links are checked out as small plain files that
|
||||
contain the link text. linkgit:git-update-index[1] and
|
||||
linkgit:git-add[1] will not change the recorded type to regular
|
||||
file. Useful on filesystems like FAT that do not support
|
||||
symbolic links.
|
||||
+
|
||||
The default is true, except linkgit:git-clone[1] or linkgit:git-init[1]
|
||||
will probe and set core.symlinks false if appropriate when the repository
|
||||
is created.
|
||||
|
||||
core.gitProxy::
|
||||
A "proxy command" to execute (as 'command host port') instead
|
||||
of establishing direct connection to the remote server when
|
||||
using the Git protocol for fetching. If the variable value is
|
||||
in the "COMMAND for DOMAIN" format, the command is applied only
|
||||
on hostnames ending with the specified domain string. This variable
|
||||
may be set multiple times and is matched in the given order;
|
||||
the first match wins.
|
||||
+
|
||||
Can be overridden by the `GIT_PROXY_COMMAND` environment variable
|
||||
(which always applies universally, without the special "for"
|
||||
handling).
|
||||
+
|
||||
The special string `none` can be used as the proxy command to
|
||||
specify that no proxy be used for a given domain pattern.
|
||||
This is useful for excluding servers inside a firewall from
|
||||
proxy use, while defaulting to a common proxy for external domains.
|
||||
|
||||
core.sshCommand::
|
||||
If this variable is set, `git fetch` and `git push` will
|
||||
use the specified command instead of `ssh` when they need to
|
||||
connect to a remote system. The command is in the same form as
|
||||
the `GIT_SSH_COMMAND` environment variable and is overridden
|
||||
when the environment variable is set.
|
||||
|
||||
core.ignoreStat::
|
||||
If true, Git will avoid using lstat() calls to detect if files have
|
||||
changed by setting the "assume-unchanged" bit for those tracked files
|
||||
which it has updated identically in both the index and working tree.
|
||||
+
|
||||
When files are modified outside of Git, the user will need to stage
|
||||
the modified files explicitly (e.g. see 'Examples' section in
|
||||
linkgit:git-update-index[1]).
|
||||
Git will not normally detect changes to those files.
|
||||
+
|
||||
This is useful on systems where lstat() calls are very slow, such as
|
||||
CIFS/Microsoft Windows.
|
||||
+
|
||||
False by default.
|
||||
|
||||
core.preferSymlinkRefs::
|
||||
Instead of the default "symref" format for HEAD
|
||||
and other symbolic reference files, use symbolic links.
|
||||
This is sometimes needed to work with old scripts that
|
||||
expect HEAD to be a symbolic link.
|
||||
|
||||
core.alternateRefsCommand::
|
||||
When advertising tips of available history from an alternate, use the shell to
|
||||
execute the specified command instead of linkgit:git-for-each-ref[1]. The
|
||||
first argument is the absolute path of the alternate. Output must contain one
|
||||
hex object id per line (i.e., the same as produced by `git for-each-ref
|
||||
--format='%(objectname)'`).
|
||||
+
|
||||
Note that you cannot generally put `git for-each-ref` directly into the config
|
||||
value, as it does not take a repository path as an argument (but you can wrap
|
||||
the command above in a shell script).
|
||||
|
||||
core.alternateRefsPrefixes::
|
||||
When listing references from an alternate, list only references that begin
|
||||
with the given prefix. Prefixes match as if they were given as arguments to
|
||||
linkgit:git-for-each-ref[1]. To list multiple prefixes, separate them with
|
||||
whitespace. If `core.alternateRefsCommand` is set, setting
|
||||
`core.alternateRefsPrefixes` has no effect.
|
||||
|
||||
core.bare::
|
||||
If true this repository is assumed to be 'bare' and has no
|
||||
working directory associated with it. If this is the case a
|
||||
number of commands that require a working directory will be
|
||||
disabled, such as linkgit:git-add[1] or linkgit:git-merge[1].
|
||||
+
|
||||
This setting is automatically guessed by linkgit:git-clone[1] or
|
||||
linkgit:git-init[1] when the repository was created. By default a
|
||||
repository that ends in "/.git" is assumed to be not bare (bare =
|
||||
false), while all other repositories are assumed to be bare (bare
|
||||
= true).
|
||||
|
||||
core.worktree::
|
||||
Set the path to the root of the working tree.
|
||||
If `GIT_COMMON_DIR` environment variable is set, core.worktree
|
||||
is ignored and not used for determining the root of working tree.
|
||||
This can be overridden by the `GIT_WORK_TREE` environment
|
||||
variable and the `--work-tree` command-line option.
|
||||
The value can be an absolute path or relative to the path to
|
||||
the .git directory, which is either specified by --git-dir
|
||||
or GIT_DIR, or automatically discovered.
|
||||
If --git-dir or GIT_DIR is specified but none of
|
||||
--work-tree, GIT_WORK_TREE and core.worktree is specified,
|
||||
the current working directory is regarded as the top level
|
||||
of your working tree.
|
||||
+
|
||||
Note that this variable is honored even when set in a configuration
|
||||
file in a ".git" subdirectory of a directory and its value differs
|
||||
from the latter directory (e.g. "/path/to/.git/config" has
|
||||
core.worktree set to "/different/path"), which is most likely a
|
||||
misconfiguration. Running Git commands in the "/path/to" directory will
|
||||
still use "/different/path" as the root of the work tree and can cause
|
||||
confusion unless you know what you are doing (e.g. you are creating a
|
||||
read-only snapshot of the same index to a location different from the
|
||||
repository's usual working tree).
|
||||
|
||||
core.logAllRefUpdates::
|
||||
Enable the reflog. Updates to a ref <ref> is logged to the file
|
||||
"`$GIT_DIR/logs/<ref>`", by appending the new and old
|
||||
SHA-1, the date/time and the reason of the update, but
|
||||
only when the file exists. If this configuration
|
||||
variable is set to `true`, missing "`$GIT_DIR/logs/<ref>`"
|
||||
file is automatically created for branch heads (i.e. under
|
||||
`refs/heads/`), remote refs (i.e. under `refs/remotes/`),
|
||||
note refs (i.e. under `refs/notes/`), and the symbolic ref `HEAD`.
|
||||
If it is set to `always`, then a missing reflog is automatically
|
||||
created for any ref under `refs/`.
|
||||
+
|
||||
This information can be used to determine what commit
|
||||
was the tip of a branch "2 days ago".
|
||||
+
|
||||
This value is true by default in a repository that has
|
||||
a working directory associated with it, and false by
|
||||
default in a bare repository.
|
||||
|
||||
core.repositoryFormatVersion::
|
||||
Internal variable identifying the repository format and layout
|
||||
version.
|
||||
|
||||
core.sharedRepository::
|
||||
When 'group' (or 'true'), the repository is made shareable between
|
||||
several users in a group (making sure all the files and objects are
|
||||
group-writable). When 'all' (or 'world' or 'everybody'), the
|
||||
repository will be readable by all users, additionally to being
|
||||
group-shareable. When 'umask' (or 'false'), Git will use permissions
|
||||
reported by umask(2). When '0xxx', where '0xxx' is an octal number,
|
||||
files in the repository will have this mode value. '0xxx' will override
|
||||
user's umask value (whereas the other options will only override
|
||||
requested parts of the user's umask value). Examples: '0660' will make
|
||||
the repo read/write-able for the owner and group, but inaccessible to
|
||||
others (equivalent to 'group' unless umask is e.g. '0022'). '0640' is a
|
||||
repository that is group-readable but not group-writable.
|
||||
See linkgit:git-init[1]. False by default.
|
||||
|
||||
core.warnAmbiguousRefs::
|
||||
If true, Git will warn you if the ref name you passed it is ambiguous
|
||||
and might match multiple refs in the repository. True by default.
|
||||
|
||||
core.compression::
|
||||
An integer -1..9, indicating a default compression level.
|
||||
-1 is the zlib default. 0 means no compression,
|
||||
and 1..9 are various speed/size tradeoffs, 9 being slowest.
|
||||
If set, this provides a default to other compression variables,
|
||||
such as `core.looseCompression` and `pack.compression`.
|
||||
|
||||
core.looseCompression::
|
||||
An integer -1..9, indicating the compression level for objects that
|
||||
are not in a pack file. -1 is the zlib default. 0 means no
|
||||
compression, and 1..9 are various speed/size tradeoffs, 9 being
|
||||
slowest. If not set, defaults to core.compression. If that is
|
||||
not set, defaults to 1 (best speed).
|
||||
|
||||
core.packedGitWindowSize::
|
||||
Number of bytes of a pack file to map into memory in a
|
||||
single mapping operation. Larger window sizes may allow
|
||||
your system to process a smaller number of large pack files
|
||||
more quickly. Smaller window sizes will negatively affect
|
||||
performance due to increased calls to the operating system's
|
||||
memory manager, but may improve performance when accessing
|
||||
a large number of large pack files.
|
||||
+
|
||||
Default is 1 MiB if NO_MMAP was set at compile time, otherwise 32
|
||||
MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
|
||||
be reasonable for all users/operating systems. You probably do
|
||||
not need to adjust this value.
|
||||
+
|
||||
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
||||
|
||||
core.packedGitLimit::
|
||||
Maximum number of bytes to map simultaneously into memory
|
||||
from pack files. If Git needs to access more than this many
|
||||
bytes at once to complete an operation it will unmap existing
|
||||
regions to reclaim virtual address space within the process.
|
||||
+
|
||||
Default is 256 MiB on 32 bit platforms and 32 TiB (effectively
|
||||
unlimited) on 64 bit platforms.
|
||||
This should be reasonable for all users/operating systems, except on
|
||||
the largest projects. You probably do not need to adjust this value.
|
||||
+
|
||||
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
||||
|
||||
core.deltaBaseCacheLimit::
|
||||
Maximum number of bytes to reserve for caching base objects
|
||||
that may be referenced by multiple deltified objects. By storing the
|
||||
entire decompressed base objects in a cache Git is able
|
||||
to avoid unpacking and decompressing frequently used base
|
||||
objects multiple times.
|
||||
+
|
||||
Default is 96 MiB on all platforms. This should be reasonable
|
||||
for all users/operating systems, except on the largest projects.
|
||||
You probably do not need to adjust this value.
|
||||
+
|
||||
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
||||
|
||||
core.bigFileThreshold::
|
||||
Files larger than this size are stored deflated, without
|
||||
attempting delta compression. Storing large files without
|
||||
delta compression avoids excessive memory usage, at the
|
||||
slight expense of increased disk usage. Additionally files
|
||||
larger than this size are always treated as binary.
|
||||
+
|
||||
Default is 512 MiB on all platforms. This should be reasonable
|
||||
for most projects as source code and other text files can still
|
||||
be delta compressed, but larger binary media files won't be.
|
||||
+
|
||||
Common unit suffixes of 'k', 'm', or 'g' are supported.
|
||||
|
||||
core.excludesFile::
|
||||
Specifies the pathname to the file that contains patterns to
|
||||
describe paths that are not meant to be tracked, in addition
|
||||
to '.gitignore' (per-directory) and '.git/info/exclude'.
|
||||
Defaults to `$XDG_CONFIG_HOME/git/ignore`.
|
||||
If `$XDG_CONFIG_HOME` is either not set or empty, `$HOME/.config/git/ignore`
|
||||
is used instead. See linkgit:gitignore[5].
|
||||
|
||||
core.askPass::
|
||||
Some commands (e.g. svn and http interfaces) that interactively
|
||||
ask for a password can be told to use an external program given
|
||||
via the value of this variable. Can be overridden by the `GIT_ASKPASS`
|
||||
environment variable. If not set, fall back to the value of the
|
||||
`SSH_ASKPASS` environment variable or, failing that, a simple password
|
||||
prompt. The external program shall be given a suitable prompt as
|
||||
command-line argument and write the password on its STDOUT.
|
||||
|
||||
core.attributesFile::
|
||||
In addition to '.gitattributes' (per-directory) and
|
||||
'.git/info/attributes', Git looks into this file for attributes
|
||||
(see linkgit:gitattributes[5]). Path expansions are made the same
|
||||
way as for `core.excludesFile`. Its default value is
|
||||
`$XDG_CONFIG_HOME/git/attributes`. If `$XDG_CONFIG_HOME` is either not
|
||||
set or empty, `$HOME/.config/git/attributes` is used instead.
|
||||
|
||||
core.hooksPath::
|
||||
By default Git will look for your hooks in the
|
||||
'$GIT_DIR/hooks' directory. Set this to different path,
|
||||
e.g. '/etc/git/hooks', and Git will try to find your hooks in
|
||||
that directory, e.g. '/etc/git/hooks/pre-receive' instead of
|
||||
in '$GIT_DIR/hooks/pre-receive'.
|
||||
+
|
||||
The path can be either absolute or relative. A relative path is
|
||||
taken as relative to the directory where the hooks are run (see
|
||||
the "DESCRIPTION" section of linkgit:githooks[5]).
|
||||
+
|
||||
This configuration variable is useful in cases where you'd like to
|
||||
centrally configure your Git hooks instead of configuring them on a
|
||||
per-repository basis, or as a more flexible and centralized
|
||||
alternative to having an `init.templateDir` where you've changed
|
||||
default hooks.
|
||||
|
||||
core.editor::
|
||||
Commands such as `commit` and `tag` that let you edit
|
||||
messages by launching an editor use the value of this
|
||||
variable when it is set, and the environment variable
|
||||
`GIT_EDITOR` is not set. See linkgit:git-var[1].
|
||||
|
||||
core.commentChar::
|
||||
Commands such as `commit` and `tag` that let you edit
|
||||
messages consider a line that begins with this character
|
||||
commented, and removes them after the editor returns
|
||||
(default '#').
|
||||
+
|
||||
If set to "auto", `git-commit` would select a character that is not
|
||||
the beginning character of any line in existing commit messages.
|
||||
|
||||
core.filesRefLockTimeout::
|
||||
The length of time, in milliseconds, to retry when trying to
|
||||
lock an individual reference. Value 0 means not to retry at
|
||||
all; -1 means to try indefinitely. Default is 100 (i.e.,
|
||||
retry for 100ms).
|
||||
|
||||
core.packedRefsTimeout::
|
||||
The length of time, in milliseconds, to retry when trying to
|
||||
lock the `packed-refs` file. Value 0 means not to retry at
|
||||
all; -1 means to try indefinitely. Default is 1000 (i.e.,
|
||||
retry for 1 second).
|
||||
|
||||
core.pager::
|
||||
Text viewer for use by Git commands (e.g., 'less'). The value
|
||||
is meant to be interpreted by the shell. The order of preference
|
||||
is the `$GIT_PAGER` environment variable, then `core.pager`
|
||||
configuration, then `$PAGER`, and then the default chosen at
|
||||
compile time (usually 'less').
|
||||
+
|
||||
When the `LESS` environment variable is unset, Git sets it to `FRX`
|
||||
(if `LESS` environment variable is set, Git does not change it at
|
||||
all). If you want to selectively override Git's default setting
|
||||
for `LESS`, you can set `core.pager` to e.g. `less -S`. This will
|
||||
be passed to the shell by Git, which will translate the final
|
||||
command to `LESS=FRX less -S`. The environment does not set the
|
||||
`S` option but the command line does, instructing less to truncate
|
||||
long lines. Similarly, setting `core.pager` to `less -+F` will
|
||||
deactivate the `F` option specified by the environment from the
|
||||
command-line, deactivating the "quit if one screen" behavior of
|
||||
`less`. One can specifically activate some flags for particular
|
||||
commands: for example, setting `pager.blame` to `less -S` enables
|
||||
line truncation only for `git blame`.
|
||||
+
|
||||
Likewise, when the `LV` environment variable is unset, Git sets it
|
||||
to `-c`. You can override this setting by exporting `LV` with
|
||||
another value or setting `core.pager` to `lv +c`.
|
||||
|
||||
core.whitespace::
|
||||
A comma separated list of common whitespace problems to
|
||||
notice. 'git diff' will use `color.diff.whitespace` to
|
||||
highlight them, and 'git apply --whitespace=error' will
|
||||
consider them as errors. You can prefix `-` to disable
|
||||
any of them (e.g. `-trailing-space`):
|
||||
+
|
||||
* `blank-at-eol` treats trailing whitespaces at the end of the line
|
||||
as an error (enabled by default).
|
||||
* `space-before-tab` treats a space character that appears immediately
|
||||
before a tab character in the initial indent part of the line as an
|
||||
error (enabled by default).
|
||||
* `indent-with-non-tab` treats a line that is indented with space
|
||||
characters instead of the equivalent tabs as an error (not enabled by
|
||||
default).
|
||||
* `tab-in-indent` treats a tab character in the initial indent part of
|
||||
the line as an error (not enabled by default).
|
||||
* `blank-at-eof` treats blank lines added at the end of file as an error
|
||||
(enabled by default).
|
||||
* `trailing-space` is a short-hand to cover both `blank-at-eol` and
|
||||
`blank-at-eof`.
|
||||
* `cr-at-eol` treats a carriage-return at the end of line as
|
||||
part of the line terminator, i.e. with it, `trailing-space`
|
||||
does not trigger if the character before such a carriage-return
|
||||
is not a whitespace (not enabled by default).
|
||||
* `tabwidth=<n>` tells how many character positions a tab occupies; this
|
||||
is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent`
|
||||
errors. The default tab width is 8. Allowed values are 1 to 63.
|
||||
|
||||
core.fsyncObjectFiles::
|
||||
This boolean will enable 'fsync()' when writing object files.
|
||||
+
|
||||
This is a total waste of time and effort on a filesystem that orders
|
||||
data writes properly, but can be useful for filesystems that do not use
|
||||
journalling (traditional UNIX filesystems) or that only journal metadata
|
||||
and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").
|
||||
|
||||
core.preloadIndex::
|
||||
Enable parallel index preload for operations like 'git diff'
|
||||
+
|
||||
This can speed up operations like 'git diff' and 'git status' especially
|
||||
on filesystems like NFS that have weak caching semantics and thus
|
||||
relatively high IO latencies. When enabled, Git will do the
|
||||
index comparison to the filesystem data in parallel, allowing
|
||||
overlapping IO's. Defaults to true.
|
||||
|
||||
core.unsetenvvars::
|
||||
Windows-only: comma-separated list of environment variables'
|
||||
names that need to be unset before spawning any other process.
|
||||
Defaults to `PERL5LIB` to account for the fact that Git for
|
||||
Windows insists on using its own Perl interpreter.
|
||||
|
||||
core.createObject::
|
||||
You can set this to 'link', in which case a hardlink followed by
|
||||
a delete of the source are used to make sure that object creation
|
||||
will not overwrite existing objects.
|
||||
+
|
||||
On some file system/operating system combinations, this is unreliable.
|
||||
Set this config setting to 'rename' there; However, This will remove the
|
||||
check that makes sure that existing object files will not get overwritten.
|
||||
|
||||
core.notesRef::
|
||||
When showing commit messages, also show notes which are stored in
|
||||
the given ref. The ref must be fully qualified. If the given
|
||||
ref does not exist, it is not an error but means that no
|
||||
notes should be printed.
|
||||
+
|
||||
This setting defaults to "refs/notes/commits", and it can be overridden by
|
||||
the `GIT_NOTES_REF` environment variable. See linkgit:git-notes[1].
|
||||
|
||||
core.commitGraph::
|
||||
If true, then git will read the commit-graph file (if it exists)
|
||||
to parse the graph structure of commits. Defaults to false. See
|
||||
linkgit:git-commit-graph[1] for more information.
|
||||
|
||||
core.useReplaceRefs::
|
||||
If set to `false`, behave as if the `--no-replace-objects`
|
||||
option was given on the command line. See linkgit:git[1] and
|
||||
linkgit:git-replace[1] for more information.
|
||||
|
||||
core.multiPackIndex::
|
||||
Use the multi-pack-index file to track multiple packfiles using a
|
||||
single index. See link:technical/multi-pack-index.html[the
|
||||
multi-pack-index design document].
|
||||
|
||||
core.sparseCheckout::
|
||||
Enable "sparse checkout" feature. See section "Sparse checkout" in
|
||||
linkgit:git-read-tree[1] for more information.
|
||||
|
||||
core.abbrev::
|
||||
Set the length object names are abbreviated to. If
|
||||
unspecified or set to "auto", an appropriate value is
|
||||
computed based on the approximate number of packed objects
|
||||
in your repository, which hopefully is enough for
|
||||
abbreviated object names to stay unique for some time.
|
||||
The minimum length is 4.
|
@ -1,26 +0,0 @@
|
||||
credential.helper::
|
||||
Specify an external helper to be called when a username or
|
||||
password credential is needed; the helper may consult external
|
||||
storage to avoid prompting the user for the credentials. Note
|
||||
that multiple helpers may be defined. See linkgit:gitcredentials[7]
|
||||
for details.
|
||||
|
||||
credential.useHttpPath::
|
||||
When acquiring credentials, consider the "path" component of an http
|
||||
or https URL to be important. Defaults to false. See
|
||||
linkgit:gitcredentials[7] for more information.
|
||||
|
||||
credential.username::
|
||||
If no username is set for a network authentication, use this username
|
||||
by default. See credential.<context>.* below, and
|
||||
linkgit:gitcredentials[7].
|
||||
|
||||
credential.<url>.*::
|
||||
Any of the credential.* options above can be applied selectively to
|
||||
some credentials. For example "credential.https://example.com.username"
|
||||
would set the default username only for https connections to
|
||||
example.com. See linkgit:gitcredentials[7] for details on how URLs are
|
||||
matched.
|
||||
|
||||
credentialCache.ignoreSIGHUP::
|
||||
Tell git-credential-cache--daemon to ignore SIGHUP, instead of quitting.
|
@ -1,14 +0,0 @@
|
||||
difftool.<tool>.path::
|
||||
Override the path for the given tool. This is useful in case
|
||||
your tool is not in the PATH.
|
||||
|
||||
difftool.<tool>.cmd::
|
||||
Specify the command to invoke the specified diff tool.
|
||||
The specified command is evaluated in shell with the following
|
||||
variables available: 'LOCAL' is set to the name of the temporary
|
||||
file containing the contents of the diff pre-image and 'REMOTE'
|
||||
is set to the name of the temporary file containing the contents
|
||||
of the diff post-image.
|
||||
|
||||
difftool.prompt::
|
||||
Prompt before each invocation of the diff tool.
|
@ -1,8 +0,0 @@
|
||||
fastimport.unpackLimit::
|
||||
If the number of objects imported by linkgit:git-fast-import[1]
|
||||
is below this limit, then the objects will be unpacked into
|
||||
loose object files. However if the number of imported objects
|
||||
equals or exceeds this limit then the pack will be stored as a
|
||||
pack. Storing the pack from a fast-import can make the import
|
||||
operation complete faster, especially on slow filesystems. If
|
||||
not set, the value of `transfer.unpackLimit` is used instead.
|
@ -1,65 +0,0 @@
|
||||
fetch.recurseSubmodules::
|
||||
This option can be either set to a boolean value or to 'on-demand'.
|
||||
Setting it to a boolean changes the behavior of fetch and pull to
|
||||
unconditionally recurse into submodules when set to true or to not
|
||||
recurse at all when set to false. When set to 'on-demand' (the default
|
||||
value), fetch and pull will only recurse into a populated submodule
|
||||
when its superproject retrieves a commit that updates the submodule's
|
||||
reference.
|
||||
|
||||
fetch.fsckObjects::
|
||||
If it is set to true, git-fetch-pack will check all fetched
|
||||
objects. See `transfer.fsckObjects` for what's
|
||||
checked. Defaults to false. If not set, the value of
|
||||
`transfer.fsckObjects` is used instead.
|
||||
|
||||
fetch.fsck.<msg-id>::
|
||||
Acts like `fsck.<msg-id>`, but is used by
|
||||
linkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See
|
||||
the `fsck.<msg-id>` documentation for details.
|
||||
|
||||
fetch.fsck.skipList::
|
||||
Acts like `fsck.skipList`, but is used by
|
||||
linkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See
|
||||
the `fsck.skipList` documentation for details.
|
||||
|
||||
fetch.unpackLimit::
|
||||
If the number of objects fetched over the Git native
|
||||
transfer is below this
|
||||
limit, then the objects will be unpacked into loose object
|
||||
files. However if the number of received objects equals or
|
||||
exceeds this limit then the received pack will be stored as
|
||||
a pack, after adding any missing delta bases. Storing the
|
||||
pack from a push can make the push operation complete faster,
|
||||
especially on slow filesystems. If not set, the value of
|
||||
`transfer.unpackLimit` is used instead.
|
||||
|
||||
fetch.prune::
|
||||
If true, fetch will automatically behave as if the `--prune`
|
||||
option was given on the command line. See also `remote.<name>.prune`
|
||||
and the PRUNING section of linkgit:git-fetch[1].
|
||||
|
||||
fetch.pruneTags::
|
||||
If true, fetch will automatically behave as if the
|
||||
`refs/tags/*:refs/tags/*` refspec was provided when pruning,
|
||||
if not set already. This allows for setting both this option
|
||||
and `fetch.prune` to maintain a 1=1 mapping to upstream
|
||||
refs. See also `remote.<name>.pruneTags` and the PRUNING
|
||||
section of linkgit:git-fetch[1].
|
||||
|
||||
fetch.output::
|
||||
Control how ref update status is printed. Valid values are
|
||||
`full` and `compact`. Default value is `full`. See section
|
||||
OUTPUT in linkgit:git-fetch[1] for detail.
|
||||
|
||||
fetch.negotiationAlgorithm::
|
||||
Control how information about the commits in the local repository is
|
||||
sent when negotiating the contents of the packfile to be sent by the
|
||||
server. Set to "skipping" to use an algorithm that skips commits in an
|
||||
effort to converge faster, but may result in a larger-than-necessary
|
||||
packfile; The default is "default" which instructs Git to use the default algorithm
|
||||
that never skips commits (unless the server has acknowledged it or one
|
||||
of its descendants).
|
||||
Unknown values will cause 'git fetch' to error out.
|
||||
+
|
||||
See also the `--negotiation-tip` option for linkgit:git-fetch[1].
|
@ -1,9 +0,0 @@
|
||||
filter.<driver>.clean::
|
||||
The command which is used to convert the content of a worktree
|
||||
file to a blob upon checkin. See linkgit:gitattributes[5] for
|
||||
details.
|
||||
|
||||
filter.<driver>.smudge::
|
||||
The command which is used to convert the content of a blob
|
||||
object to a worktree file upon checkout. See
|
||||
linkgit:gitattributes[5] for details.
|
@ -1,87 +0,0 @@
|
||||
format.attach::
|
||||
Enable multipart/mixed attachments as the default for
|
||||
'format-patch'. The value can also be a double quoted string
|
||||
which will enable attachments as the default and set the
|
||||
value as the boundary. See the --attach option in
|
||||
linkgit:git-format-patch[1].
|
||||
|
||||
format.from::
|
||||
Provides the default value for the `--from` option to format-patch.
|
||||
Accepts a boolean value, or a name and email address. If false,
|
||||
format-patch defaults to `--no-from`, using commit authors directly in
|
||||
the "From:" field of patch mails. If true, format-patch defaults to
|
||||
`--from`, using your committer identity in the "From:" field of patch
|
||||
mails and including a "From:" field in the body of the patch mail if
|
||||
different. If set to a non-boolean value, format-patch uses that
|
||||
value instead of your committer identity. Defaults to false.
|
||||
|
||||
format.numbered::
|
||||
A boolean which can enable or disable sequence numbers in patch
|
||||
subjects. It defaults to "auto" which enables it only if there
|
||||
is more than one patch. It can be enabled or disabled for all
|
||||
messages by setting it to "true" or "false". See --numbered
|
||||
option in linkgit:git-format-patch[1].
|
||||
|
||||
format.headers::
|
||||
Additional email headers to include in a patch to be submitted
|
||||
by mail. See linkgit:git-format-patch[1].
|
||||
|
||||
format.to::
|
||||
format.cc::
|
||||
Additional recipients to include in a patch to be submitted
|
||||
by mail. See the --to and --cc options in
|
||||
linkgit:git-format-patch[1].
|
||||
|
||||
format.subjectPrefix::
|
||||
The default for format-patch is to output files with the '[PATCH]'
|
||||
subject prefix. Use this variable to change that prefix.
|
||||
|
||||
format.signature::
|
||||
The default for format-patch is to output a signature containing
|
||||
the Git version number. Use this variable to change that default.
|
||||
Set this variable to the empty string ("") to suppress
|
||||
signature generation.
|
||||
|
||||
format.signatureFile::
|
||||
Works just like format.signature except the contents of the
|
||||
file specified by this variable will be used as the signature.
|
||||
|
||||
format.suffix::
|
||||
The default for format-patch is to output files with the suffix
|
||||
`.patch`. Use this variable to change that suffix (make sure to
|
||||
include the dot if you want it).
|
||||
|
||||
format.pretty::
|
||||
The default pretty format for log/show/whatchanged command,
|
||||
See linkgit:git-log[1], linkgit:git-show[1],
|
||||
linkgit:git-whatchanged[1].
|
||||
|
||||
format.thread::
|
||||
The default threading style for 'git format-patch'. Can be
|
||||
a boolean value, or `shallow` or `deep`. `shallow` threading
|
||||
makes every mail a reply to the head of the 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.
|
||||
A true boolean value is the same as `shallow`, and a false
|
||||
value disables threading.
|
||||
|
||||
format.signOff::
|
||||
A boolean value which lets you enable the `-s/--signoff` option of
|
||||
format-patch by default. *Note:* Adding the Signed-off-by: line to a
|
||||
patch should be a conscious act and means that you certify you have
|
||||
the rights to submit this work under the same open source license.
|
||||
Please see the 'SubmittingPatches' document for further discussion.
|
||||
|
||||
format.coverLetter::
|
||||
A boolean that controls whether to generate a cover-letter when
|
||||
format-patch is invoked, but in addition can be set to "auto", to
|
||||
generate a cover-letter only when there's more than one patch.
|
||||
|
||||
format.outputDirectory::
|
||||
Set a custom directory to store the resulting files instead of the
|
||||
current working directory.
|
||||
|
||||
format.useAutoBase::
|
||||
A boolean value which lets you enable the `--base=auto` option of
|
||||
format-patch by default.
|
@ -1,67 +0,0 @@
|
||||
fsck.<msg-id>::
|
||||
During fsck git may find issues with legacy data which
|
||||
wouldn't be generated by current versions of git, and which
|
||||
wouldn't be sent over the wire if `transfer.fsckObjects` was
|
||||
set. This feature is intended to support working with legacy
|
||||
repositories containing such data.
|
||||
+
|
||||
Setting `fsck.<msg-id>` will be picked up by linkgit:git-fsck[1], but
|
||||
to accept pushes of such data set `receive.fsck.<msg-id>` instead, or
|
||||
to clone or fetch it set `fetch.fsck.<msg-id>`.
|
||||
+
|
||||
The rest of the documentation discusses `fsck.*` for brevity, but the
|
||||
same applies for the corresponding `receive.fsck.*` and
|
||||
`fetch.<msg-id>.*`. variables.
|
||||
+
|
||||
Unlike variables like `color.ui` and `core.editor` the
|
||||
`receive.fsck.<msg-id>` and `fetch.fsck.<msg-id>` variables will not
|
||||
fall back on the `fsck.<msg-id>` configuration if they aren't set. To
|
||||
uniformly configure the same fsck settings in different circumstances
|
||||
all three of them they must all set to the same values.
|
||||
+
|
||||
When `fsck.<msg-id>` is set, errors can be switched to warnings and
|
||||
vice versa by configuring the `fsck.<msg-id>` setting where the
|
||||
`<msg-id>` is the fsck message ID and the value is one of `error`,
|
||||
`warn` or `ignore`. For convenience, fsck prefixes the error/warning
|
||||
with the message ID, e.g. "missingEmail: invalid author/committer line
|
||||
- missing email" means that setting `fsck.missingEmail = ignore` will
|
||||
hide that issue.
|
||||
+
|
||||
In general, it is better to enumerate existing objects with problems
|
||||
with `fsck.skipList`, instead of listing the kind of breakages these
|
||||
problematic objects share to be ignored, as doing the latter will
|
||||
allow new instances of the same breakages go unnoticed.
|
||||
+
|
||||
Setting an unknown `fsck.<msg-id>` value will cause fsck to die, but
|
||||
doing the same for `receive.fsck.<msg-id>` and `fetch.fsck.<msg-id>`
|
||||
will only cause git to warn.
|
||||
|
||||
fsck.skipList::
|
||||
The path to a list of object names (i.e. one unabbreviated SHA-1 per
|
||||
line) that are known to be broken in a non-fatal way and should
|
||||
be ignored. On versions of Git 2.20 and later comments ('#'), empty
|
||||
lines, and any leading and trailing whitespace is ignored. Everything
|
||||
but a SHA-1 per line will error out on older versions.
|
||||
+
|
||||
This feature is useful when an established project should be accepted
|
||||
despite early commits containing errors that can be safely ignored
|
||||
such as invalid committer email addresses. Note: corrupt objects
|
||||
cannot be skipped with this setting.
|
||||
+
|
||||
Like `fsck.<msg-id>` this variable has corresponding
|
||||
`receive.fsck.skipList` and `fetch.fsck.skipList` variants.
|
||||
+
|
||||
Unlike variables like `color.ui` and `core.editor` the
|
||||
`receive.fsck.skipList` and `fetch.fsck.skipList` variables will not
|
||||
fall back on the `fsck.skipList` configuration if they aren't set. To
|
||||
uniformly configure the same fsck settings in different circumstances
|
||||
all three of them they must all set to the same values.
|
||||
+
|
||||
Older versions of Git (before 2.20) documented that the object names
|
||||
list should be sorted. This was never a requirement, the object names
|
||||
could appear in any order, but when reading the list we tracked whether
|
||||
the list was sorted for the purposes of an internal binary search
|
||||
implementation, which could save itself some work with an already sorted
|
||||
list. Unless you had a humongous list there was no reason to go out of
|
||||
your way to pre-sort the list. After Git version 2.20 a hash implementation
|
||||
is used instead, so there's now no reason to pre-sort the list.
|
@ -1,108 +0,0 @@
|
||||
gc.aggressiveDepth::
|
||||
The depth parameter used in the delta compression
|
||||
algorithm used by 'git gc --aggressive'. This defaults
|
||||
to 50.
|
||||
|
||||
gc.aggressiveWindow::
|
||||
The window size parameter used in the delta compression
|
||||
algorithm used by 'git gc --aggressive'. This defaults
|
||||
to 250.
|
||||
|
||||
gc.auto::
|
||||
When there are approximately more than this many loose
|
||||
objects in the repository, `git gc --auto` will pack them.
|
||||
Some Porcelain commands use this command to perform a
|
||||
light-weight garbage collection from time to time. The
|
||||
default value is 6700. Setting this to 0 disables it.
|
||||
|
||||
gc.autoPackLimit::
|
||||
When there are more than this many packs that are not
|
||||
marked with `*.keep` file in the repository, `git gc
|
||||
--auto` consolidates them into one larger pack. The
|
||||
default value is 50. Setting this to 0 disables it.
|
||||
|
||||
gc.autoDetach::
|
||||
Make `git gc --auto` return immediately and run in background
|
||||
if the system supports it. Default is true.
|
||||
|
||||
gc.bigPackThreshold::
|
||||
If non-zero, all packs larger than this limit are kept when
|
||||
`git gc` is run. This is very similar to `--keep-base-pack`
|
||||
except that all packs that meet the threshold are kept, not
|
||||
just the base pack. Defaults to zero. Common unit suffixes of
|
||||
'k', 'm', or 'g' are supported.
|
||||
+
|
||||
Note that if the number of kept packs is more than gc.autoPackLimit,
|
||||
this configuration variable is ignored, all packs except the base pack
|
||||
will be repacked. After this the number of packs should go below
|
||||
gc.autoPackLimit and gc.bigPackThreshold should be respected again.
|
||||
|
||||
gc.writeCommitGraph::
|
||||
If true, then gc will rewrite the commit-graph file when
|
||||
linkgit:git-gc[1] is run. When using linkgit:git-gc[1]
|
||||
'--auto' the commit-graph will be updated if housekeeping is
|
||||
required. Default is false. See linkgit:git-commit-graph[1]
|
||||
for details.
|
||||
|
||||
gc.logExpiry::
|
||||
If the file gc.log exists, then `git gc --auto` will print
|
||||
its content and exit with status zero instead of running
|
||||
unless that file is more than 'gc.logExpiry' old. Default is
|
||||
"1.day". See `gc.pruneExpire` for more ways to specify its
|
||||
value.
|
||||
|
||||
gc.packRefs::
|
||||
Running `git pack-refs` in a repository renders it
|
||||
unclonable by Git versions prior to 1.5.1.2 over dumb
|
||||
transports such as HTTP. This variable determines whether
|
||||
'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. The default is `true`.
|
||||
|
||||
gc.pruneExpire::
|
||||
When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'.
|
||||
Override the grace period with this config variable. The value
|
||||
"now" may be used to disable this grace period and always prune
|
||||
unreachable objects immediately, or "never" may be used to
|
||||
suppress pruning. This feature helps prevent corruption when
|
||||
'git gc' runs concurrently with another process writing to the
|
||||
repository; see the "NOTES" section of linkgit:git-gc[1].
|
||||
|
||||
gc.worktreePruneExpire::
|
||||
When 'git gc' is run, it calls
|
||||
'git worktree prune --expire 3.months.ago'.
|
||||
This config variable can be used to set a different grace
|
||||
period. The value "now" may be used to disable the grace
|
||||
period and prune `$GIT_DIR/worktrees` immediately, or "never"
|
||||
may be used to suppress pruning.
|
||||
|
||||
gc.reflogExpire::
|
||||
gc.<pattern>.reflogExpire::
|
||||
'git reflog expire' removes reflog entries older than
|
||||
this time; defaults to 90 days. The value "now" expires all
|
||||
entries immediately, and "never" suppresses expiration
|
||||
altogether. With "<pattern>" (e.g.
|
||||
"refs/stash") in the middle the setting applies only to
|
||||
the refs that match the <pattern>.
|
||||
|
||||
gc.reflogExpireUnreachable::
|
||||
gc.<pattern>.reflogExpireUnreachable::
|
||||
'git reflog expire' removes reflog entries older than
|
||||
this time and are not reachable from the current tip;
|
||||
defaults to 30 days. The value "now" expires all entries
|
||||
immediately, and "never" suppresses expiration altogether.
|
||||
With "<pattern>" (e.g. "refs/stash")
|
||||
in the middle, the setting applies only to the refs that
|
||||
match the <pattern>.
|
||||
|
||||
gc.rerereResolved::
|
||||
Records of conflicted merge you resolved earlier are
|
||||
kept for this many days when 'git rerere gc' is run.
|
||||
You can also use more human-readable "1.month.ago", etc.
|
||||
The default is 60 days. See linkgit:git-rerere[1].
|
||||
|
||||
gc.rerereUnresolved::
|
||||
Records of conflicted merge you have not resolved are
|
||||
kept for this many days when 'git rerere gc' is run.
|
||||
You can also use more human-readable "1.month.ago", etc.
|
||||
The default is 15 days. See linkgit:git-rerere[1].
|
@ -1,67 +0,0 @@
|
||||
gitcvs.commitMsgAnnotation::
|
||||
Append this string to each commit message. Set to empty string
|
||||
to disable this feature. Defaults to "via git-CVS emulator".
|
||||
|
||||
gitcvs.enabled::
|
||||
Whether the CVS server interface is enabled for this repository.
|
||||
See linkgit:git-cvsserver[1].
|
||||
|
||||
gitcvs.logFile::
|
||||
Path to a log file where the CVS server interface well... logs
|
||||
various stuff. See linkgit:git-cvsserver[1].
|
||||
|
||||
gitcvs.usecrlfattr::
|
||||
If true, the server will look up the end-of-line conversion
|
||||
attributes for files to determine the `-k` modes to use. If
|
||||
the attributes force Git to treat a file as text,
|
||||
the `-k` mode will be left blank so CVS clients will
|
||||
treat it as text. If they suppress text conversion, the file
|
||||
will be set with '-kb' mode, which suppresses any newline munging
|
||||
the client might otherwise do. If the attributes do not allow
|
||||
the file type to be determined, then `gitcvs.allBinary` is
|
||||
used. See linkgit:gitattributes[5].
|
||||
|
||||
gitcvs.allBinary::
|
||||
This is used if `gitcvs.usecrlfattr` does not resolve
|
||||
the correct '-kb' mode to use. If true, all
|
||||
unresolved files are sent to the client in
|
||||
mode '-kb'. This causes the client to treat them
|
||||
as binary files, which suppresses any newline munging it
|
||||
otherwise might do. Alternatively, if it is set to "guess",
|
||||
then the contents of the file are examined to decide if
|
||||
it is binary, similar to `core.autocrlf`.
|
||||
|
||||
gitcvs.dbName::
|
||||
Database used by git-cvsserver to cache revision information
|
||||
derived from the Git repository. The exact meaning depends on the
|
||||
used database driver, for SQLite (which is the default driver) this
|
||||
is a filename. Supports variable substitution (see
|
||||
linkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).
|
||||
Default: '%Ggitcvs.%m.sqlite'
|
||||
|
||||
gitcvs.dbDriver::
|
||||
Used Perl DBI driver. You can specify any available driver
|
||||
for this here, but it might not work. git-cvsserver is tested
|
||||
with 'DBD::SQLite', reported to work with 'DBD::Pg', and
|
||||
reported *not* to work with 'DBD::mysql'. Experimental feature.
|
||||
May not contain double colons (`:`). Default: 'SQLite'.
|
||||
See linkgit:git-cvsserver[1].
|
||||
|
||||
gitcvs.dbUser, gitcvs.dbPass::
|
||||
Database user and password. Only useful if setting `gitcvs.dbDriver`,
|
||||
since SQLite has no concept of database users and/or passwords.
|
||||
'gitcvs.dbUser' supports variable substitution (see
|
||||
linkgit:git-cvsserver[1] for details).
|
||||
|
||||
gitcvs.dbTableNamePrefix::
|
||||
Database table name prefix. Prepended to the names of any
|
||||
database tables used, allowing a single database to be used
|
||||
for several repositories. Supports variable substitution (see
|
||||
linkgit:git-cvsserver[1] for details). Any non-alphabetic
|
||||
characters will be replaced with underscores.
|
||||
|
||||
All gitcvs variables except for `gitcvs.usecrlfattr` and
|
||||
`gitcvs.allBinary` can also be specified as
|
||||
'gitcvs.<access_method>.<varname>' (where 'access_method'
|
||||
is one of "ext" and "pserver") to make them apply only for the given
|
||||
access method.
|
@ -1,16 +0,0 @@
|
||||
gitweb.category::
|
||||
gitweb.description::
|
||||
gitweb.owner::
|
||||
gitweb.url::
|
||||
See linkgit:gitweb[1] for description.
|
||||
|
||||
gitweb.avatar::
|
||||
gitweb.blame::
|
||||
gitweb.grep::
|
||||
gitweb.highlight::
|
||||
gitweb.patches::
|
||||
gitweb.pickaxe::
|
||||
gitweb.remote_heads::
|
||||
gitweb.showSizes::
|
||||
gitweb.snapshot::
|
||||
See linkgit:gitweb.conf[5] for description.
|
@ -1,20 +0,0 @@
|
||||
gpg.program::
|
||||
Use this custom program instead of "`gpg`" found on `$PATH` when
|
||||
making or verifying a PGP signature. The program must support the
|
||||
same command-line interface as GPG, namely, to verify a detached
|
||||
signature, "`gpg --verify $file - <$signature`" is run, and the
|
||||
program is expected to signal a good signature by exiting with
|
||||
code 0, and to generate an ASCII-armored detached signature, the
|
||||
standard input of "`gpg -bsau $key`" is fed with the contents to be
|
||||
signed, and the program is expected to send the result to its
|
||||
standard output.
|
||||
|
||||
gpg.format::
|
||||
Specifies which key format to use when signing with `--gpg-sign`.
|
||||
Default is "openpgp" and another possible value is "x509".
|
||||
|
||||
gpg.<format>.program::
|
||||
Use this to customize the program used for the signing format you
|
||||
chose. (see `gpg.program` and `gpg.format`) `gpg.program` can still
|
||||
be used as a legacy synonym for `gpg.openpgp.program`. The default
|
||||
value for `gpg.x509.program` is "gpgsm".
|
@ -1,24 +0,0 @@
|
||||
grep.lineNumber::
|
||||
If set to true, enable `-n` option by default.
|
||||
|
||||
grep.column::
|
||||
If set to true, enable the `--column` 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
|
||||
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
|
||||
other than 'default'.
|
||||
|
||||
grep.threads::
|
||||
Number of grep worker threads to use.
|
||||
See `grep.threads` in linkgit:git-grep[1] for more information.
|
||||
|
||||
grep.fallbackToNoIndex::
|
||||
If set to true, fall back to git grep --no-index if git grep
|
||||
is executed outside of a git repository. Defaults to false.
|
@ -1,57 +0,0 @@
|
||||
gui.commitMsgWidth::
|
||||
Defines how wide the commit message window is in the
|
||||
linkgit:git-gui[1]. "75" is the default.
|
||||
|
||||
gui.diffContext::
|
||||
Specifies how many context lines should be used in calls to diff
|
||||
made by the linkgit:git-gui[1]. The default is "5".
|
||||
|
||||
gui.displayUntracked::
|
||||
Determines if linkgit:git-gui[1] shows untracked files
|
||||
in the file list. The default is "true".
|
||||
|
||||
gui.encoding::
|
||||
Specifies the default encoding to use for displaying of
|
||||
file contents in linkgit:git-gui[1] and linkgit:gitk[1].
|
||||
It can be overridden by setting the 'encoding' attribute
|
||||
for relevant files (see linkgit:gitattributes[5]).
|
||||
If this option is not set, the tools default to the
|
||||
locale encoding.
|
||||
|
||||
gui.matchTrackingBranch::
|
||||
Determines if new branches created with linkgit:git-gui[1] should
|
||||
default to tracking remote branches with matching names or
|
||||
not. Default: "false".
|
||||
|
||||
gui.newBranchTemplate::
|
||||
Is used as suggested name when creating new branches using the
|
||||
linkgit:git-gui[1].
|
||||
|
||||
gui.pruneDuringFetch::
|
||||
"true" if linkgit:git-gui[1] should prune remote-tracking branches when
|
||||
performing a fetch. The default value is "false".
|
||||
|
||||
gui.trustmtime::
|
||||
Determines if linkgit:git-gui[1] should trust the file modification
|
||||
timestamp or not. By default the timestamps are not trusted.
|
||||
|
||||
gui.spellingDictionary::
|
||||
Specifies the dictionary used for spell checking commit messages in
|
||||
the linkgit:git-gui[1]. When set to "none" spell checking is turned
|
||||
off.
|
||||
|
||||
gui.fastCopyBlame::
|
||||
If true, 'git gui blame' uses `-C` instead of `-C -C` for original
|
||||
location detection. It makes blame significantly faster on huge
|
||||
repositories at the expense of less thorough copy detection.
|
||||
|
||||
gui.copyBlameThreshold::
|
||||
Specifies the threshold to use in 'git gui blame' original location
|
||||
detection, measured in alphanumeric characters. See the
|
||||
linkgit:git-blame[1] manual for more information on copy detection.
|
||||
|
||||
gui.blamehistoryctx::
|
||||
Specifies the radius of history context in days to show in
|
||||
linkgit:gitk[1] for the selected commit, when the `Show History
|
||||
Context` menu item is invoked from 'git gui blame'. If this
|
||||
variable is set to zero, the whole history is shown.
|
@ -1,50 +0,0 @@
|
||||
guitool.<name>.cmd::
|
||||
Specifies the shell command line to execute when the corresponding item
|
||||
of the linkgit:git-gui[1] `Tools` menu is invoked. This option is
|
||||
mandatory for every tool. The command is executed from the root of
|
||||
the working directory, and in the environment it receives the name of
|
||||
the tool as `GIT_GUITOOL`, the name of the currently selected file as
|
||||
'FILENAME', and the name of the current branch as 'CUR_BRANCH' (if
|
||||
the head is detached, 'CUR_BRANCH' is empty).
|
||||
|
||||
guitool.<name>.needsFile::
|
||||
Run the tool only if a diff is selected in the GUI. It guarantees
|
||||
that 'FILENAME' is not empty.
|
||||
|
||||
guitool.<name>.noConsole::
|
||||
Run the command silently, without creating a window to display its
|
||||
output.
|
||||
|
||||
guitool.<name>.noRescan::
|
||||
Don't rescan the working directory for changes after the tool
|
||||
finishes execution.
|
||||
|
||||
guitool.<name>.confirm::
|
||||
Show a confirmation dialog before actually running the tool.
|
||||
|
||||
guitool.<name>.argPrompt::
|
||||
Request a string argument from the user, and pass it to the tool
|
||||
through the `ARGS` environment variable. Since requesting an
|
||||
argument implies confirmation, the 'confirm' option has no effect
|
||||
if this is enabled. If the option is set to 'true', 'yes', or '1',
|
||||
the dialog uses a built-in generic prompt; otherwise the exact
|
||||
value of the variable is used.
|
||||
|
||||
guitool.<name>.revPrompt::
|
||||
Request a single valid revision from the user, and set the
|
||||
`REVISION` environment variable. In other aspects this option
|
||||
is similar to 'argPrompt', and can be used together with it.
|
||||
|
||||
guitool.<name>.revUnmerged::
|
||||
Show only unmerged branches in the 'revPrompt' subdialog.
|
||||
This is useful for tools similar to merge or rebase, but not
|
||||
for things like checkout or reset.
|
||||
|
||||
guitool.<name>.title::
|
||||
Specifies the title to use for the prompt dialog. The default
|
||||
is the tool name.
|
||||
|
||||
guitool.<name>.prompt::
|
||||
Specifies the general prompt string to display at the top of
|
||||
the dialog, before subsections for 'argPrompt' and 'revPrompt'.
|
||||
The default value includes the actual command.
|
@ -1,23 +0,0 @@
|
||||
help.browser::
|
||||
Specify the browser that will be used to display help in the
|
||||
'web' format. See linkgit:git-help[1].
|
||||
|
||||
help.format::
|
||||
Override the default help format used by linkgit:git-help[1].
|
||||
Values 'man', 'info', 'web' and 'html' are supported. 'man' is
|
||||
the default. 'web' and 'html' are the same.
|
||||
|
||||
help.autoCorrect::
|
||||
Automatically correct and execute mistyped commands after
|
||||
waiting for the given number of deciseconds (0.1 sec). If more
|
||||
than one command can be deduced from the entered text, nothing
|
||||
will be executed. If the value of this option is negative,
|
||||
the corrected command will be executed immediately. If the
|
||||
value is 0 - the command will be just shown but not executed.
|
||||
This is the default.
|
||||
|
||||
help.htmlPath::
|
||||
Specify the path where the HTML documentation resides. File system paths
|
||||
and URLs are supported. HTML pages will be prefixed with this path when
|
||||
help is displayed in the 'web' format. This defaults to the documentation
|
||||
path of your Git installation.
|
@ -1,271 +0,0 @@
|
||||
http.proxy::
|
||||
Override the HTTP proxy, normally configured using the 'http_proxy',
|
||||
'https_proxy', and 'all_proxy' environment variables (see `curl(1)`). In
|
||||
addition to the syntax understood by curl, it is possible to specify a
|
||||
proxy string with a user name but no password, in which case git will
|
||||
attempt to acquire one in the same way it does for other credentials. See
|
||||
linkgit:gitcredentials[7] for more information. The syntax thus is
|
||||
'[protocol://][user[:password]@]proxyhost[:port]'. This can be overridden
|
||||
on a per-remote basis; see remote.<name>.proxy
|
||||
|
||||
http.proxyAuthMethod::
|
||||
Set the method with which to authenticate against the HTTP proxy. This
|
||||
only takes effect if the configured proxy string contains a user name part
|
||||
(i.e. is of the form 'user@host' or 'user@host:port'). This can be
|
||||
overridden on a per-remote basis; see `remote.<name>.proxyAuthMethod`.
|
||||
Both can be overridden by the `GIT_HTTP_PROXY_AUTHMETHOD` environment
|
||||
variable. Possible values are:
|
||||
+
|
||||
--
|
||||
* `anyauth` - Automatically pick a suitable authentication method. It is
|
||||
assumed that the proxy answers an unauthenticated request with a 407
|
||||
status code and one or more Proxy-authenticate headers with supported
|
||||
authentication methods. This is the default.
|
||||
* `basic` - HTTP Basic authentication
|
||||
* `digest` - HTTP Digest authentication; this prevents the password from being
|
||||
transmitted to the proxy in clear text
|
||||
* `negotiate` - GSS-Negotiate authentication (compare the --negotiate option
|
||||
of `curl(1)`)
|
||||
* `ntlm` - NTLM authentication (compare the --ntlm option of `curl(1)`)
|
||||
--
|
||||
|
||||
http.emptyAuth::
|
||||
Attempt authentication without seeking a username or password. This
|
||||
can be used to attempt GSS-Negotiate authentication without specifying
|
||||
a username in the URL, as libcurl normally requires a username for
|
||||
authentication.
|
||||
|
||||
http.delegation::
|
||||
Control GSSAPI credential delegation. The delegation is disabled
|
||||
by default in libcurl since version 7.21.7. Set parameter to tell
|
||||
the server what it is allowed to delegate when it comes to user
|
||||
credentials. Used with GSS/kerberos. Possible values are:
|
||||
+
|
||||
--
|
||||
* `none` - Don't allow any delegation.
|
||||
* `policy` - Delegates if and only if the OK-AS-DELEGATE flag is set in the
|
||||
Kerberos service ticket, which is a matter of realm policy.
|
||||
* `always` - Unconditionally allow the server to delegate.
|
||||
--
|
||||
|
||||
|
||||
http.extraHeader::
|
||||
Pass an additional HTTP header when communicating with a server. If
|
||||
more than one such entry exists, all of them are added as extra
|
||||
headers. To allow overriding the settings inherited from the system
|
||||
config, an empty value will reset the extra headers to the empty list.
|
||||
|
||||
http.cookieFile::
|
||||
The pathname of a file containing previously stored cookie lines,
|
||||
which should be used
|
||||
in the Git http session, if they match the server. The file format
|
||||
of the file to read cookies from should be plain HTTP headers or
|
||||
the Netscape/Mozilla cookie file format (see `curl(1)`).
|
||||
NOTE that the file specified with http.cookieFile is used only as
|
||||
input unless http.saveCookies is set.
|
||||
|
||||
http.saveCookies::
|
||||
If set, store cookies received during requests to the file specified by
|
||||
http.cookieFile. Has no effect if http.cookieFile is unset.
|
||||
|
||||
http.sslVersion::
|
||||
The SSL version to use when negotiating an SSL connection, if you
|
||||
want to force the default. The available and default version
|
||||
depend on whether libcurl was built against NSS or OpenSSL and the
|
||||
particular configuration of the crypto library in use. Internally
|
||||
this sets the 'CURLOPT_SSL_VERSION' option; see the libcurl
|
||||
documentation for more details on the format of this option and
|
||||
for the ssl version supported. Actually the possible values of
|
||||
this option are:
|
||||
|
||||
- sslv2
|
||||
- sslv3
|
||||
- tlsv1
|
||||
- tlsv1.0
|
||||
- tlsv1.1
|
||||
- tlsv1.2
|
||||
- tlsv1.3
|
||||
|
||||
+
|
||||
Can be overridden by the `GIT_SSL_VERSION` environment variable.
|
||||
To force git to use libcurl's default ssl version and ignore any
|
||||
explicit http.sslversion option, set `GIT_SSL_VERSION` to the
|
||||
empty string.
|
||||
|
||||
http.sslCipherList::
|
||||
A list of SSL ciphers to use when negotiating an SSL connection.
|
||||
The available ciphers depend on whether libcurl was built against
|
||||
NSS or OpenSSL and the particular configuration of the crypto
|
||||
library in use. Internally this sets the 'CURLOPT_SSL_CIPHER_LIST'
|
||||
option; see the libcurl documentation for more details on the format
|
||||
of this list.
|
||||
+
|
||||
Can be overridden by the `GIT_SSL_CIPHER_LIST` environment variable.
|
||||
To force git to use libcurl's default cipher list and ignore any
|
||||
explicit http.sslCipherList option, set `GIT_SSL_CIPHER_LIST` to the
|
||||
empty string.
|
||||
|
||||
http.sslVerify::
|
||||
Whether to verify the SSL certificate when fetching or pushing
|
||||
over HTTPS. Defaults to true. Can be overridden by the
|
||||
`GIT_SSL_NO_VERIFY` environment variable.
|
||||
|
||||
http.sslCert::
|
||||
File containing the SSL certificate when fetching or pushing
|
||||
over HTTPS. Can be overridden by the `GIT_SSL_CERT` environment
|
||||
variable.
|
||||
|
||||
http.sslKey::
|
||||
File containing the SSL private key when fetching or pushing
|
||||
over HTTPS. Can be overridden by the `GIT_SSL_KEY` environment
|
||||
variable.
|
||||
|
||||
http.sslCertPasswordProtected::
|
||||
Enable Git's password prompt for the SSL certificate. Otherwise
|
||||
OpenSSL will prompt the user, possibly many times, if the
|
||||
certificate or private key is encrypted. Can be overridden by the
|
||||
`GIT_SSL_CERT_PASSWORD_PROTECTED` environment variable.
|
||||
|
||||
http.sslCAInfo::
|
||||
File containing the certificates to verify the peer with when
|
||||
fetching or pushing over HTTPS. Can be overridden by the
|
||||
`GIT_SSL_CAINFO` environment variable.
|
||||
|
||||
http.sslCAPath::
|
||||
Path containing files with the CA certificates to verify the peer
|
||||
with when fetching or pushing over HTTPS. Can be overridden
|
||||
by the `GIT_SSL_CAPATH` environment variable.
|
||||
|
||||
http.sslBackend::
|
||||
Name of the SSL backend to use (e.g. "openssl" or "schannel").
|
||||
This option is ignored if cURL lacks support for choosing the SSL
|
||||
backend at runtime.
|
||||
|
||||
http.schannelCheckRevoke::
|
||||
Used to enforce or disable certificate revocation checks in cURL
|
||||
when http.sslBackend is set to "schannel". Defaults to `true` if
|
||||
unset. Only necessary to disable this if Git consistently errors
|
||||
and the message is about checking the revocation status of a
|
||||
certificate. This option is ignored if cURL lacks support for
|
||||
setting the relevant SSL option at runtime.
|
||||
|
||||
http.schannelUseSSLCAInfo::
|
||||
As of cURL v7.60.0, the Secure Channel backend can use the
|
||||
certificate bundle provided via `http.sslCAInfo`, but that would
|
||||
override the Windows Certificate Store. Since this is not desirable
|
||||
by default, Git will tell cURL not to use that bundle by default
|
||||
when the `schannel` backend was configured via `http.sslBackend`,
|
||||
unless `http.schannelUseSSLCAInfo` overrides this behavior.
|
||||
|
||||
http.pinnedpubkey::
|
||||
Public key of the https service. It may either be the filename of
|
||||
a PEM or DER encoded public key file or a string starting with
|
||||
'sha256//' followed by the base64 encoded sha256 hash of the
|
||||
public key. See also libcurl 'CURLOPT_PINNEDPUBLICKEY'. git will
|
||||
exit with an error if this option is set but not supported by
|
||||
cURL.
|
||||
|
||||
http.sslTry::
|
||||
Attempt to use AUTH SSL/TLS and encrypted data transfers
|
||||
when connecting via regular FTP protocol. This might be needed
|
||||
if the FTP server requires it for security reasons or you wish
|
||||
to connect securely whenever remote FTP server supports it.
|
||||
Default is false since it might trigger certificate verification
|
||||
errors on misconfigured servers.
|
||||
|
||||
http.maxRequests::
|
||||
How many HTTP requests to launch in parallel. Can be overridden
|
||||
by the `GIT_HTTP_MAX_REQUESTS` environment variable. Default is 5.
|
||||
|
||||
http.minSessions::
|
||||
The number of curl sessions (counted across slots) to be kept across
|
||||
requests. They will not be ended with curl_easy_cleanup() until
|
||||
http_cleanup() is invoked. If USE_CURL_MULTI is not defined, this
|
||||
value will be capped at 1. Defaults to 1.
|
||||
|
||||
http.postBuffer::
|
||||
Maximum size in bytes of the buffer used by smart HTTP
|
||||
transports when POSTing data to the remote system.
|
||||
For requests larger than this buffer size, HTTP/1.1 and
|
||||
Transfer-Encoding: chunked is used to avoid creating a
|
||||
massive pack file locally. Default is 1 MiB, which is
|
||||
sufficient for most requests.
|
||||
|
||||
http.lowSpeedLimit, http.lowSpeedTime::
|
||||
If the HTTP transfer speed is less than 'http.lowSpeedLimit'
|
||||
for longer than 'http.lowSpeedTime' seconds, the transfer is aborted.
|
||||
Can be overridden by the `GIT_HTTP_LOW_SPEED_LIMIT` and
|
||||
`GIT_HTTP_LOW_SPEED_TIME` environment variables.
|
||||
|
||||
http.noEPSV::
|
||||
A boolean which disables using of EPSV ftp command by curl.
|
||||
This can helpful with some "poor" ftp servers which don't
|
||||
support EPSV mode. Can be overridden by the `GIT_CURL_FTP_NO_EPSV`
|
||||
environment variable. Default is false (curl will use EPSV).
|
||||
|
||||
http.userAgent::
|
||||
The HTTP USER_AGENT string presented to an HTTP server. The default
|
||||
value represents the version of the client Git such as git/1.7.1.
|
||||
This option allows you to override this value to a more common value
|
||||
such as Mozilla/4.0. This may be necessary, for instance, if
|
||||
connecting through a firewall that restricts HTTP connections to a set
|
||||
of common USER_AGENT strings (but not including those like git/1.7.1).
|
||||
Can be overridden by the `GIT_HTTP_USER_AGENT` environment variable.
|
||||
|
||||
http.followRedirects::
|
||||
Whether git should follow HTTP redirects. If set to `true`, git
|
||||
will transparently follow any redirect issued by a server it
|
||||
encounters. If set to `false`, git will treat all redirects as
|
||||
errors. If set to `initial`, git will follow redirects only for
|
||||
the initial request to a remote, but not for subsequent
|
||||
follow-up HTTP requests. Since git uses the redirected URL as
|
||||
the base for the follow-up requests, this is generally
|
||||
sufficient. The default is `initial`.
|
||||
|
||||
http.<url>.*::
|
||||
Any of the http.* options above can be applied selectively to some URLs.
|
||||
For a config key to match a URL, each element of the config key is
|
||||
compared to that of the URL, in the following order:
|
||||
+
|
||||
--
|
||||
. Scheme (e.g., `https` in `https://example.com/`). This field
|
||||
must match exactly between the config key and the URL.
|
||||
|
||||
. Host/domain name (e.g., `example.com` in `https://example.com/`).
|
||||
This field must match between the config key and the URL. It is
|
||||
possible to specify a `*` as part of the host name to match all subdomains
|
||||
at this level. `https://*.example.com/` for example would match
|
||||
`https://foo.example.com/`, but not `https://foo.bar.example.com/`.
|
||||
|
||||
. Port number (e.g., `8080` in `http://example.com:8080/`).
|
||||
This field must match exactly between the config key and the URL.
|
||||
Omitted port numbers are automatically converted to the correct
|
||||
default for the scheme before matching.
|
||||
|
||||
. Path (e.g., `repo.git` in `https://example.com/repo.git`). The
|
||||
path field of the config key must match the path field of the URL
|
||||
either exactly or as a prefix of slash-delimited path elements. This means
|
||||
a config key with path `foo/` matches URL path `foo/bar`. A prefix can only
|
||||
match on a slash (`/`) boundary. Longer matches take precedence (so a config
|
||||
key with path `foo/bar` is a better match to URL path `foo/bar` than a config
|
||||
key with just path `foo/`).
|
||||
|
||||
. User name (e.g., `user` in `https://user@example.com/repo.git`). If
|
||||
the config key has a user name it must match the user name in the
|
||||
URL exactly. If the config key does not have a user name, that
|
||||
config key will match a URL with any user name (including none),
|
||||
but at a lower precedence than a config key with a user name.
|
||||
--
|
||||
+
|
||||
The list above is ordered by decreasing precedence; a URL that matches
|
||||
a config key's path is preferred to one that matches its user name. For example,
|
||||
if the URL is `https://user@example.com/foo/bar` a config key match of
|
||||
`https://example.com/foo` will be preferred over a config key match of
|
||||
`https://user@example.com`.
|
||||
+
|
||||
All URLs are normalized before attempting any matching (the password part,
|
||||
if embedded in the URL, is always ignored for matching purposes) so that
|
||||
equivalent URLs that are simply spelled differently will match properly.
|
||||
Environment variable settings always override any matches. The URLs that are
|
||||
matched against are those given directly to Git commands. This means any URLs
|
||||
visited as a result of a redirection do not participate in matching.
|
@ -1,10 +0,0 @@
|
||||
i18n.commitEncoding::
|
||||
Character encoding the commit messages are stored in; Git itself
|
||||
does not care per se, but this information is necessary e.g. when
|
||||
importing commits from emails or in the gitk graphical history
|
||||
browser (and possibly at other places in the future or in other
|
||||
porcelains). See e.g. linkgit:git-mailinfo[1]. Defaults to 'utf-8'.
|
||||
|
||||
i18n.logOutputEncoding::
|
||||
Character encoding the commit messages are converted to when
|
||||
running 'git log' and friends.
|
@ -1,44 +0,0 @@
|
||||
imap.folder::
|
||||
The folder to drop the mails into, which is typically the Drafts
|
||||
folder. For example: "INBOX.Drafts", "INBOX/Drafts" or
|
||||
"[Gmail]/Drafts". Required.
|
||||
|
||||
imap.tunnel::
|
||||
Command used to setup a tunnel to the IMAP server through which
|
||||
commands will be piped instead of using a direct network connection
|
||||
to the server. Required when imap.host is not set.
|
||||
|
||||
imap.host::
|
||||
A URL identifying the server. Use an `imap://` prefix for non-secure
|
||||
connections and an `imaps://` prefix for secure connections.
|
||||
Ignored when imap.tunnel is set, but required otherwise.
|
||||
|
||||
imap.user::
|
||||
The username to use when logging in to the server.
|
||||
|
||||
imap.pass::
|
||||
The password to use when logging in to the server.
|
||||
|
||||
imap.port::
|
||||
An integer port number to connect to on the server.
|
||||
Defaults to 143 for imap:// hosts and 993 for imaps:// hosts.
|
||||
Ignored when imap.tunnel is set.
|
||||
|
||||
imap.sslverify::
|
||||
A boolean to enable/disable verification of the server certificate
|
||||
used by the SSL/TLS connection. Default is `true`. Ignored when
|
||||
imap.tunnel is set.
|
||||
|
||||
imap.preformattedHTML::
|
||||
A boolean to enable/disable the use of html encoding when sending
|
||||
a patch. An html encoded patch will be bracketed with <pre>
|
||||
and have a content type of text/html. Ironically, enabling this
|
||||
option causes Thunderbird to send the patch as a plain/text,
|
||||
format=fixed email. Default is `false`.
|
||||
|
||||
imap.authMethod::
|
||||
Specify authenticate method for authentication with IMAP server.
|
||||
If Git was built with the NO_CURL option, or if your curl version is older
|
||||
than 7.34.0, or if you're running git-imap-send with the `--no-curl`
|
||||
option, the only supported method is 'CRAM-MD5'. If this is not set
|
||||
then 'git imap-send' uses the basic IMAP plaintext LOGIN command.
|
@ -1,26 +0,0 @@
|
||||
index.recordEndOfIndexEntries::
|
||||
Specifies whether the index file should include an "End Of Index
|
||||
Entry" section. This reduces index load time on multiprocessor
|
||||
machines but produces a message "ignoring EOIE extension" when
|
||||
reading the index using Git versions before 2.20. Defaults to
|
||||
'true' if index.threads has been explicitly enabled, 'false'
|
||||
otherwise.
|
||||
|
||||
index.recordOffsetTable::
|
||||
Specifies whether the index file should include an "Index Entry
|
||||
Offset Table" section. This reduces index load time on
|
||||
multiprocessor machines but produces a message "ignoring IEOT
|
||||
extension" when reading the index using Git versions before 2.20.
|
||||
Defaults to 'true' if index.threads has been explicitly enabled,
|
||||
'false' otherwise.
|
||||
|
||||
index.threads::
|
||||
Specifies the number of threads to spawn when loading the index.
|
||||
This is meant to reduce index load time on multiprocessor machines.
|
||||
Specifying 0 or 'true' will cause Git to auto-detect the number of
|
||||
CPU's and set the number of threads accordingly. Specifying 1 or
|
||||
'false' will disable multithreading. Defaults to 'true'.
|
||||
|
||||
index.version::
|
||||
Specify the version with which new index files should be
|
||||
initialized. This does not affect existing repositories.
|
@ -1,3 +0,0 @@
|
||||
init.templateDir::
|
||||
Specify the directory from which templates will be copied.
|
||||
(See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)
|
@ -1,20 +0,0 @@
|
||||
instaweb.browser::
|
||||
Specify the program that will be used to browse your working
|
||||
repository in gitweb. See linkgit:git-instaweb[1].
|
||||
|
||||
instaweb.httpd::
|
||||
The HTTP daemon command-line to start gitweb on your working
|
||||
repository. See linkgit:git-instaweb[1].
|
||||
|
||||
instaweb.local::
|
||||
If true the web server started by linkgit:git-instaweb[1] will
|
||||
be bound to the local IP (127.0.0.1).
|
||||
|
||||
instaweb.modulePath::
|
||||
The default module path for linkgit:git-instaweb[1] to use
|
||||
instead of /usr/lib/apache2/modules. Only used if httpd
|
||||
is Apache.
|
||||
|
||||
instaweb.port::
|
||||
The port number to bind the gitweb httpd to. See
|
||||
linkgit:git-instaweb[1].
|
@ -1,16 +0,0 @@
|
||||
interactive.singleKey::
|
||||
In interactive commands, allow the user to provide one-letter
|
||||
input with a single key (i.e., without hitting enter).
|
||||
Currently this is used by the `--patch` mode of
|
||||
linkgit:git-add[1], linkgit:git-checkout[1], linkgit:git-commit[1],
|
||||
linkgit:git-reset[1], and linkgit:git-stash[1]. Note that this
|
||||
setting is silently ignored if portable keystroke input
|
||||
is not available; requires the Perl module Term::ReadKey.
|
||||
|
||||
interactive.diffFilter::
|
||||
When an interactive command (such as `git add --patch`) shows
|
||||
a colorized diff, git will pipe the diff through the shell
|
||||
command defined by this configuration variable. The command may
|
||||
mark up the diff further for human consumption, provided that it
|
||||
retains a one-to-one correspondence with the lines in the
|
||||
original diff. Defaults to disabled (no filtering).
|
@ -1,43 +0,0 @@
|
||||
log.abbrevCommit::
|
||||
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
|
||||
linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may
|
||||
override this option with `--no-abbrev-commit`.
|
||||
|
||||
log.date::
|
||||
Set the default date-time mode for the 'log' command.
|
||||
Setting a value for log.date is similar to using 'git log''s
|
||||
`--date` option. See linkgit:git-log[1] for details.
|
||||
|
||||
log.decorate::
|
||||
Print out the ref names of any commits that are shown by the log
|
||||
command. 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. This is the same as the `--decorate` option
|
||||
of the `git log`.
|
||||
|
||||
log.follow::
|
||||
If `true`, `git log` will act as if the `--follow` option was used when
|
||||
a single <path> is given. This has the same limitations as `--follow`,
|
||||
i.e. it cannot be used to follow multiple files and does not work well
|
||||
on non-linear history.
|
||||
|
||||
log.graphColors::
|
||||
A list of colors, separated by commas, that can be used to draw
|
||||
history lines in `git log --graph`.
|
||||
|
||||
log.showRoot::
|
||||
If true, the initial commit will be shown as a big creation event.
|
||||
This is equivalent to a diff against an empty tree.
|
||||
Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
|
||||
normally hide the root commit will now show it. True by default.
|
||||
|
||||
log.showSignature::
|
||||
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
|
||||
linkgit:git-whatchanged[1] assume `--show-signature`.
|
||||
|
||||
log.mailmap::
|
||||
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
|
||||
linkgit:git-whatchanged[1] assume `--use-mailmap`.
|
@ -1,6 +0,0 @@
|
||||
mailinfo.scissors::
|
||||
If true, makes linkgit:git-mailinfo[1] (and therefore
|
||||
linkgit:git-am[1]) act by default as if the --scissors option
|
||||
was provided on the command-line. When active, this features
|
||||
removes everything from the message body before a scissors
|
||||
line (i.e. consisting mainly of ">8", "8<" and "-").
|
@ -1,15 +0,0 @@
|
||||
mailmap.file::
|
||||
The location of an augmenting mailmap file. The default
|
||||
mailmap, located in the root of the repository, is loaded
|
||||
first, then the mailmap file pointed to by this variable.
|
||||
The location of the mailmap file may be in a repository
|
||||
subdirectory, or somewhere outside of the repository itself.
|
||||
See linkgit:git-shortlog[1] and linkgit:git-blame[1].
|
||||
|
||||
mailmap.blob::
|
||||
Like `mailmap.file`, but consider the value as a reference to a
|
||||
blob in the repository. If both `mailmap.file` and
|
||||
`mailmap.blob` are given, both are parsed, with entries from
|
||||
`mailmap.file` taking precedence. In a bare repository, this
|
||||
defaults to `HEAD:.mailmap`. In a non-bare repository, it
|
||||
defaults to empty.
|
@ -1,12 +0,0 @@
|
||||
man.viewer::
|
||||
Specify the programs that may be used to display help in the
|
||||
'man' format. See linkgit:git-help[1].
|
||||
|
||||
man.<tool>.cmd::
|
||||
Specify the command to invoke the specified man viewer. The
|
||||
specified command is evaluated in shell with the man page
|
||||
passed as argument. (See linkgit:git-help[1].)
|
||||
|
||||
man.<tool>.path::
|
||||
Override the path for the given tool that may be used to
|
||||
display help in the 'man' format. See linkgit:git-help[1].
|
@ -1,53 +0,0 @@
|
||||
mergetool.<tool>.path::
|
||||
Override the path for the given tool. This is useful in case
|
||||
your tool is not in the PATH.
|
||||
|
||||
mergetool.<tool>.cmd::
|
||||
Specify the command to invoke the specified merge tool. The
|
||||
specified command is evaluated in shell with the following
|
||||
variables available: 'BASE' is the name of a temporary file
|
||||
containing the common base of the files to be merged, if available;
|
||||
'LOCAL' is the name of a temporary file containing the contents of
|
||||
the file on the current branch; 'REMOTE' is the name of a temporary
|
||||
file containing the contents of the file from the branch being
|
||||
merged; 'MERGED' contains the name of the file to which the merge
|
||||
tool should write the results of a successful merge.
|
||||
|
||||
mergetool.<tool>.trustExitCode::
|
||||
For a custom merge command, specify whether the exit code of
|
||||
the merge command can be used to determine whether the merge was
|
||||
successful. If this is not set to true then the merge target file
|
||||
timestamp is checked and the merge assumed to have been successful
|
||||
if the file has been updated, otherwise the user is prompted to
|
||||
indicate the success of the merge.
|
||||
|
||||
mergetool.meld.hasOutput::
|
||||
Older versions of `meld` do not support the `--output` option.
|
||||
Git will attempt to detect whether `meld` supports `--output`
|
||||
by inspecting the output of `meld --help`. Configuring
|
||||
`mergetool.meld.hasOutput` will make Git skip these checks and
|
||||
use the configured value instead. Setting `mergetool.meld.hasOutput`
|
||||
to `true` tells Git to unconditionally use the `--output` option,
|
||||
and `false` avoids using `--output`.
|
||||
|
||||
mergetool.keepBackup::
|
||||
After performing a merge, the original file with conflict markers
|
||||
can be saved as a file with a `.orig` extension. If this variable
|
||||
is set to `false` then this file is not preserved. Defaults to
|
||||
`true` (i.e. keep the backup files).
|
||||
|
||||
mergetool.keepTemporaries::
|
||||
When invoking a custom merge tool, Git uses a set of temporary
|
||||
files to pass to the tool. If the tool returns an error and this
|
||||
variable is set to `true`, then these temporary files will be
|
||||
preserved, otherwise they will be removed after the tool has
|
||||
exited. Defaults to `false`.
|
||||
|
||||
mergetool.writeToTemp::
|
||||
Git writes temporary 'BASE', 'LOCAL', and 'REMOTE' versions of
|
||||
conflicting files in the worktree by default. Git will attempt
|
||||
to use a temporary directory for these files when set `true`.
|
||||
Defaults to `false`.
|
||||
|
||||
mergetool.prompt::
|
||||
Prompt before each invocation of the merge resolution program.
|
@ -1,59 +0,0 @@
|
||||
notes.mergeStrategy::
|
||||
Which merge strategy to choose by default when resolving notes
|
||||
conflicts. Must be one of `manual`, `ours`, `theirs`, `union`, or
|
||||
`cat_sort_uniq`. Defaults to `manual`. See "NOTES MERGE STRATEGIES"
|
||||
section of linkgit:git-notes[1] for more information on each strategy.
|
||||
|
||||
notes.<name>.mergeStrategy::
|
||||
Which merge strategy to choose when doing a notes merge into
|
||||
refs/notes/<name>. This overrides the more general
|
||||
"notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section in
|
||||
linkgit:git-notes[1] for more information on the available strategies.
|
||||
|
||||
notes.displayRef::
|
||||
The (fully qualified) refname from which to show notes when
|
||||
showing commit messages. The value of this variable can be set
|
||||
to a glob, in which case notes from all matching refs will be
|
||||
shown. You may also specify this configuration variable
|
||||
several 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 overridden with the `GIT_NOTES_DISPLAY_REF`
|
||||
environment variable, which must be a colon separated list of refs or
|
||||
globs.
|
||||
+
|
||||
The effective value of "core.notesRef" (possibly overridden by
|
||||
GIT_NOTES_REF) is also implicitly added to the list of refs to be
|
||||
displayed.
|
||||
|
||||
notes.rewrite.<command>::
|
||||
When rewriting commits with <command> (currently `amend` or
|
||||
`rebase`) and this variable is set to `true`, Git
|
||||
automatically copies your notes from the original to the
|
||||
rewritten commit. Defaults to `true`, but see
|
||||
"notes.rewriteRef" below.
|
||||
|
||||
notes.rewriteMode::
|
||||
When copying notes during a rewrite (see the
|
||||
"notes.rewrite.<command>" option), determines what to do if
|
||||
the target commit already has a note. Must be one of
|
||||
`overwrite`, `concatenate`, `cat_sort_uniq`, or `ignore`.
|
||||
Defaults to `concatenate`.
|
||||
+
|
||||
This setting can be overridden with the `GIT_NOTES_REWRITE_MODE`
|
||||
environment variable.
|
||||
|
||||
notes.rewriteRef::
|
||||
When copying notes during a rewrite, specifies the (fully
|
||||
qualified) ref whose notes should be copied. The ref may be a
|
||||
glob, in which case notes in all matching refs will be copied.
|
||||
You may also specify this configuration several times.
|
||||
+
|
||||
Does not have a default value; you must configure this variable to
|
||||
enable note rewriting. Set it to `refs/notes/commits` to enable
|
||||
rewriting for the default commit notes.
|
||||
+
|
||||
This setting can be overridden with the `GIT_NOTES_REWRITE_REF`
|
||||
environment variable, which must be a colon separated list of refs or
|
||||
globs.
|
@ -1,120 +0,0 @@
|
||||
pack.window::
|
||||
The size of the window used by linkgit:git-pack-objects[1] when no
|
||||
window size is given on the command line. Defaults to 10.
|
||||
|
||||
pack.depth::
|
||||
The maximum delta depth used by linkgit:git-pack-objects[1] when no
|
||||
maximum depth is given on the command line. Defaults to 50.
|
||||
Maximum value is 4095.
|
||||
|
||||
pack.windowMemory::
|
||||
The maximum size of memory that is consumed by each thread
|
||||
in linkgit:git-pack-objects[1] for pack window memory when
|
||||
no limit is given on the command line. The value can be
|
||||
suffixed with "k", "m", or "g". When left unconfigured (or
|
||||
set explicitly to 0), there will be no limit.
|
||||
|
||||
pack.compression::
|
||||
An integer -1..9, indicating the compression level for objects
|
||||
in a pack file. -1 is the zlib default. 0 means no
|
||||
compression, and 1..9 are various speed/size tradeoffs, 9 being
|
||||
slowest. If not set, defaults to core.compression. If that is
|
||||
not set, defaults to -1, the zlib default, which is "a default
|
||||
compromise between speed and compression (currently equivalent
|
||||
to level 6)."
|
||||
+
|
||||
Note that changing the compression level will not automatically recompress
|
||||
all existing objects. You can force recompression by passing the -F option
|
||||
to linkgit:git-repack[1].
|
||||
|
||||
pack.island::
|
||||
An extended regular expression configuring a set of delta
|
||||
islands. See "DELTA ISLANDS" in linkgit:git-pack-objects[1]
|
||||
for details.
|
||||
|
||||
pack.islandCore::
|
||||
Specify an island name which gets to have its objects be
|
||||
packed first. This creates a kind of pseudo-pack at the front
|
||||
of one pack, so that the objects from the specified island are
|
||||
hopefully faster to copy into any pack that should be served
|
||||
to a user requesting these objects. In practice this means
|
||||
that the island specified should likely correspond to what is
|
||||
the most commonly cloned in the repo. See also "DELTA ISLANDS"
|
||||
in linkgit:git-pack-objects[1].
|
||||
|
||||
pack.deltaCacheSize::
|
||||
The maximum memory in bytes used for caching deltas in
|
||||
linkgit:git-pack-objects[1] before writing them out to a pack.
|
||||
This cache is used to speed up the writing object phase by not
|
||||
having to recompute the final delta result once the best match
|
||||
for all objects is found. Repacking large repositories on machines
|
||||
which are tight with memory might be badly impacted by this though,
|
||||
especially if this cache pushes the system into swapping.
|
||||
A value of 0 means no limit. The smallest size of 1 byte may be
|
||||
used to virtually disable this cache. Defaults to 256 MiB.
|
||||
|
||||
pack.deltaCacheLimit::
|
||||
The maximum size of a delta, that is cached in
|
||||
linkgit:git-pack-objects[1]. This cache is used to speed up the
|
||||
writing object phase by not having to recompute the final delta
|
||||
result once the best match for all objects is found.
|
||||
Defaults to 1000. Maximum value is 65535.
|
||||
|
||||
pack.threads::
|
||||
Specifies the number of threads to spawn when searching for best
|
||||
delta matches. This requires that linkgit:git-pack-objects[1]
|
||||
be compiled with pthreads otherwise this option is ignored with a
|
||||
warning. This is meant to reduce packing time on multiprocessor
|
||||
machines. The required amount of memory for the delta search window
|
||||
is however multiplied by the number of threads.
|
||||
Specifying 0 will cause Git to auto-detect the number of CPU's
|
||||
and set the number of threads accordingly.
|
||||
|
||||
pack.indexVersion::
|
||||
Specify the default pack index version. Valid values are 1 for
|
||||
legacy pack index used by Git versions prior to 1.5.2, and 2 for
|
||||
the new pack index with capabilities for packs larger than 4 GB
|
||||
as well as proper protection against the repacking of corrupted
|
||||
packs. Version 2 is the default. Note that version 2 is enforced
|
||||
and this config option ignored whenever the corresponding pack is
|
||||
larger than 2 GB.
|
||||
+
|
||||
If you have an old Git that does not understand the version 2 `*.idx` file,
|
||||
cloning or fetching over a non native protocol (e.g. "http")
|
||||
that will copy both `*.pack` file and corresponding `*.idx` file from the
|
||||
other side may give you a repository that cannot be accessed with your
|
||||
older version of Git. If the `*.pack` file is smaller than 2 GB, however,
|
||||
you can use linkgit:git-index-pack[1] on the *.pack file to regenerate
|
||||
the `*.idx` file.
|
||||
|
||||
pack.packSizeLimit::
|
||||
The maximum size of a pack. This setting only affects
|
||||
packing to a file when repacking, i.e. the git:// protocol
|
||||
is unaffected. It can be overridden by the `--max-pack-size`
|
||||
option of linkgit:git-repack[1]. Reaching this limit results
|
||||
in the creation of multiple packfiles; which in turn prevents
|
||||
bitmaps from being created.
|
||||
The minimum size allowed is limited to 1 MiB.
|
||||
The default is unlimited.
|
||||
Common unit suffixes of 'k', 'm', or 'g' are
|
||||
supported.
|
||||
|
||||
pack.useBitmaps::
|
||||
When true, git will use pack bitmaps (if available) when packing
|
||||
to stdout (e.g., during the server side of a fetch). Defaults to
|
||||
true. You should not generally need to turn this off unless
|
||||
you are debugging pack bitmaps.
|
||||
|
||||
pack.writeBitmaps (deprecated)::
|
||||
This is a deprecated synonym for `repack.writeBitmaps`.
|
||||
|
||||
pack.writeBitmapHashCache::
|
||||
When true, git will include a "hash cache" section in the bitmap
|
||||
index (if one is written). This cache can be used to feed git's
|
||||
delta heuristics, potentially leading to better deltas between
|
||||
bitmapped and non-bitmapped objects (e.g., when serving a fetch
|
||||
between an older, bitmapped pack and objects that have been
|
||||
pushed since the last gc). The downside is that it consumes 4
|
||||
bytes per object of disk space, and that JGit's bitmap
|
||||
implementation does not understand it, causing it to complain if
|
||||
Git and JGit are used on the same repository. Defaults to false.
|
@ -1,8 +0,0 @@
|
||||
pager.<cmd>::
|
||||
If the value is boolean, turns on or off pagination of the
|
||||
output of a particular Git subcommand when writing to a tty.
|
||||
Otherwise, turns on pagination for the subcommand using the
|
||||
pager specified by the value of `pager.<cmd>`. If `--paginate`
|
||||
or `--no-pager` is specified on the command line, it takes
|
||||
precedence over this option. To disable pagination for all
|
||||
commands, set `core.pager` or `GIT_PAGER` to `cat`.
|
@ -1,9 +0,0 @@
|
||||
pretty.<name>::
|
||||
Alias for a --pretty= format string, as specified in
|
||||
linkgit:git-log[1]. Any aliases defined here can be used just
|
||||
as the built-in pretty formats could. For example,
|
||||
running `git config pretty.changelog "format:* %H %s"`
|
||||
would cause the invocation `git log --pretty=changelog`
|
||||
to be equivalent to running `git log "--pretty=format:* %H %s"`.
|
||||
Note that an alias with the same name as a built-in format
|
||||
will be silently ignored.
|
@ -1,64 +0,0 @@
|
||||
protocol.allow::
|
||||
If set, provide a user defined default policy for all protocols which
|
||||
don't explicitly have a policy (`protocol.<name>.allow`). By default,
|
||||
if unset, known-safe protocols (http, https, git, ssh, file) have a
|
||||
default policy of `always`, known-dangerous protocols (ext) have a
|
||||
default policy of `never`, and all other protocols have a default
|
||||
policy of `user`. Supported policies:
|
||||
+
|
||||
--
|
||||
|
||||
* `always` - protocol is always able to be used.
|
||||
|
||||
* `never` - protocol is never able to be used.
|
||||
|
||||
* `user` - protocol is only able to be used when `GIT_PROTOCOL_FROM_USER` is
|
||||
either unset or has a value of 1. This policy should be used when you want a
|
||||
protocol to be directly usable by the user but don't want it used by commands which
|
||||
execute clone/fetch/push commands without user input, e.g. recursive
|
||||
submodule initialization.
|
||||
|
||||
--
|
||||
|
||||
protocol.<name>.allow::
|
||||
Set a policy to be used by protocol `<name>` with clone/fetch/push
|
||||
commands. See `protocol.allow` above for the available policies.
|
||||
+
|
||||
The protocol names currently used by git are:
|
||||
+
|
||||
--
|
||||
- `file`: any local file-based path (including `file://` URLs,
|
||||
or local paths)
|
||||
|
||||
- `git`: the anonymous git protocol over a direct TCP
|
||||
connection (or proxy, if configured)
|
||||
|
||||
- `ssh`: git over ssh (including `host:path` syntax,
|
||||
`ssh://`, etc).
|
||||
|
||||
- `http`: git over http, both "smart http" and "dumb http".
|
||||
Note that this does _not_ include `https`; if you want to configure
|
||||
both, you must do so individually.
|
||||
|
||||
- any external helpers are named by their protocol (e.g., use
|
||||
`hg` to allow the `git-remote-hg` helper)
|
||||
--
|
||||
|
||||
protocol.version::
|
||||
Experimental. If set, clients will attempt to communicate with a
|
||||
server using the specified protocol version. If unset, no
|
||||
attempt will be made by the client to communicate using a
|
||||
particular protocol version, this results in protocol version 0
|
||||
being used.
|
||||
Supported versions:
|
||||
+
|
||||
--
|
||||
|
||||
* `0` - the original wire protocol.
|
||||
|
||||
* `1` - the original wire protocol with the addition of a version string
|
||||
in the initial response from the server.
|
||||
|
||||
* `2` - link:technical/protocol-v2.html[wire protocol version 2].
|
||||
|
||||
--
|
@ -1,36 +0,0 @@
|
||||
pull.ff::
|
||||
By default, Git does not create an extra merge commit when merging
|
||||
a commit that is a descendant of the current commit. Instead, the
|
||||
tip of the current branch is fast-forwarded. When set to `false`,
|
||||
this variable tells Git to create an extra merge commit in such
|
||||
a case (equivalent to giving the `--no-ff` option from the command
|
||||
line). When set to `only`, only such fast-forward merges are
|
||||
allowed (equivalent to giving the `--ff-only` option from the
|
||||
command line). This setting overrides `merge.ff` when pulling.
|
||||
|
||||
pull.rebase::
|
||||
When true, rebase branches on top of the fetched branch, instead
|
||||
of merging the default branch from the default remote when "git
|
||||
pull" is run. See "branch.<name>.rebase" for setting this on a
|
||||
per-branch basis.
|
||||
+
|
||||
When `merges`, pass the `--rebase-merges` option to 'git rebase'
|
||||
so that the local merge commits are included in the rebase (see
|
||||
linkgit:git-rebase[1] for details).
|
||||
+
|
||||
When preserve, also pass `--preserve-merges` along to 'git rebase'
|
||||
so that locally committed merge commits will not be flattened
|
||||
by running 'git pull'.
|
||||
+
|
||||
When the value is `interactive`, the rebase is run in interactive mode.
|
||||
+
|
||||
*NOTE*: this is a possibly dangerous operation; do *not* use
|
||||
it unless you understand the implications (see linkgit:git-rebase[1]
|
||||
for details).
|
||||
|
||||
pull.octopus::
|
||||
The default merge strategy to use when pulling multiple branches
|
||||
at once.
|
||||
|
||||
pull.twohead::
|
||||
The default merge strategy to use when pulling a single branch.
|
@ -1,113 +0,0 @@
|
||||
push.default::
|
||||
Defines the action `git push` should take if no refspec is
|
||||
explicitly given. Different values are well-suited for
|
||||
specific workflows; for instance, in a purely central workflow
|
||||
(i.e. the fetch source is equal to the push destination),
|
||||
`upstream` is probably what you want. Possible values are:
|
||||
+
|
||||
--
|
||||
|
||||
* `nothing` - do not push anything (error out) unless a refspec is
|
||||
explicitly given. This is primarily meant for people who want to
|
||||
avoid mistakes by always being explicit.
|
||||
|
||||
* `current` - push the current branch to update a branch with the same
|
||||
name on the receiving end. Works in both central and non-central
|
||||
workflows.
|
||||
|
||||
* `upstream` - push the current branch back to the branch whose
|
||||
changes are usually integrated into the current branch (which is
|
||||
called `@{upstream}`). This mode only makes sense if you are
|
||||
pushing to the same repository you would normally pull from
|
||||
(i.e. central workflow).
|
||||
|
||||
* `tracking` - This is a deprecated synonym for `upstream`.
|
||||
|
||||
* `simple` - in centralized workflow, work like `upstream` with an
|
||||
added safety to refuse to push if the upstream branch's name is
|
||||
different from the local one.
|
||||
+
|
||||
When pushing to a remote that is different from the remote you normally
|
||||
pull from, work as `current`. This is the safest option and is suited
|
||||
for beginners.
|
||||
+
|
||||
This mode has become the default in Git 2.0.
|
||||
|
||||
* `matching` - push all branches having the same name on both ends.
|
||||
This makes the repository you are pushing to remember the set of
|
||||
branches that will be pushed out (e.g. if you always push 'maint'
|
||||
and 'master' there and no other branches, the repository you push
|
||||
to will have these two branches, and your local 'maint' and
|
||||
'master' will be pushed there).
|
||||
+
|
||||
To use this mode effectively, you have to make sure _all_ the
|
||||
branches you would push out are ready to be pushed out before
|
||||
running 'git push', as the whole point of this mode is to allow you
|
||||
to push all of the branches in one go. If you usually finish work
|
||||
on only one branch and push out the result, while other branches are
|
||||
unfinished, this mode is not for you. Also this mode is not
|
||||
suitable for pushing into a shared central repository, as other
|
||||
people may add new branches there, or update the tip of existing
|
||||
branches outside your control.
|
||||
+
|
||||
This used to be the default, but not since Git 2.0 (`simple` is the
|
||||
new default).
|
||||
|
||||
--
|
||||
|
||||
push.followTags::
|
||||
If set to true enable `--follow-tags` option by default. You
|
||||
may override this configuration at time of push by specifying
|
||||
`--no-follow-tags`.
|
||||
|
||||
push.gpgSign::
|
||||
May be set to a boolean value, or the string 'if-asked'. A true
|
||||
value causes all pushes to be GPG signed, as if `--signed` is
|
||||
passed to linkgit:git-push[1]. The string 'if-asked' causes
|
||||
pushes to be signed if the server supports it, as if
|
||||
`--signed=if-asked` is passed to 'git push'. A false value may
|
||||
override a value from a lower-priority config file. An explicit
|
||||
command-line flag always overrides this config option.
|
||||
|
||||
push.pushOption::
|
||||
When no `--push-option=<option>` argument is given from the
|
||||
command line, `git push` behaves as if each <value> of
|
||||
this variable is given as `--push-option=<value>`.
|
||||
+
|
||||
This is a multi-valued variable, and an empty value can be used in a
|
||||
higher priority configuration file (e.g. `.git/config` in a
|
||||
repository) to clear the values inherited from a lower priority
|
||||
configuration files (e.g. `$HOME/.gitconfig`).
|
||||
+
|
||||
--
|
||||
|
||||
Example:
|
||||
|
||||
/etc/gitconfig
|
||||
push.pushoption = a
|
||||
push.pushoption = b
|
||||
|
||||
~/.gitconfig
|
||||
push.pushoption = c
|
||||
|
||||
repo/.git/config
|
||||
push.pushoption =
|
||||
push.pushoption = b
|
||||
|
||||
This will result in only b (a and c are cleared).
|
||||
|
||||
--
|
||||
|
||||
push.recurseSubmodules::
|
||||
Make sure all submodule commits used by the revisions to be pushed
|
||||
are available on a remote-tracking branch. If the value is 'check'
|
||||
then Git will verify that all submodule commits that changed in the
|
||||
revisions to be pushed are available on at least one remote of the
|
||||
submodule. If any commits are missing, the push will be aborted and
|
||||
exit with non-zero status. If the value is 'on-demand' then all
|
||||
submodules that changed in the revisions to be pushed will be
|
||||
pushed. If on-demand was not able to push all necessary revisions
|
||||
it will also be aborted and exit with non-zero status. If the value
|
||||
is 'no' then default behavior of ignoring submodules when pushing
|
||||
is retained. You may override this configuration at time of push by
|
||||
specifying '--recurse-submodules=check|on-demand|no'.
|
@ -1,123 +0,0 @@
|
||||
receive.advertiseAtomic::
|
||||
By default, git-receive-pack will advertise the atomic push
|
||||
capability to its clients. If you don't want to advertise this
|
||||
capability, set this variable to false.
|
||||
|
||||
receive.advertisePushOptions::
|
||||
When set to true, git-receive-pack will advertise the push options
|
||||
capability to its clients. False by default.
|
||||
|
||||
receive.autogc::
|
||||
By default, git-receive-pack will run "git-gc --auto" after
|
||||
receiving data from git-push and updating refs. You can stop
|
||||
it by setting this variable to false.
|
||||
|
||||
receive.certNonceSeed::
|
||||
By setting this variable to a string, `git receive-pack`
|
||||
will accept a `git push --signed` and verifies it by using
|
||||
a "nonce" protected by HMAC using this string as a secret
|
||||
key.
|
||||
|
||||
receive.certNonceSlop::
|
||||
When a `git push --signed` sent a push certificate with a
|
||||
"nonce" that was issued by a receive-pack serving the same
|
||||
repository within this many seconds, export the "nonce"
|
||||
found in the certificate to `GIT_PUSH_CERT_NONCE` to the
|
||||
hooks (instead of what the receive-pack asked the sending
|
||||
side to include). This may allow writing checks in
|
||||
`pre-receive` and `post-receive` a bit easier. Instead of
|
||||
checking `GIT_PUSH_CERT_NONCE_SLOP` environment variable
|
||||
that records by how many seconds the nonce is stale to
|
||||
decide if they want to accept the certificate, they only
|
||||
can check `GIT_PUSH_CERT_NONCE_STATUS` is `OK`.
|
||||
|
||||
receive.fsckObjects::
|
||||
If it is set to true, git-receive-pack will check all received
|
||||
objects. See `transfer.fsckObjects` for what's checked.
|
||||
Defaults to false. If not set, the value of
|
||||
`transfer.fsckObjects` is used instead.
|
||||
|
||||
receive.fsck.<msg-id>::
|
||||
Acts like `fsck.<msg-id>`, but is used by
|
||||
linkgit:git-receive-pack[1] instead of
|
||||
linkgit:git-fsck[1]. See the `fsck.<msg-id>` documentation for
|
||||
details.
|
||||
|
||||
receive.fsck.skipList::
|
||||
Acts like `fsck.skipList`, but is used by
|
||||
linkgit:git-receive-pack[1] instead of
|
||||
linkgit:git-fsck[1]. See the `fsck.skipList` documentation for
|
||||
details.
|
||||
|
||||
receive.keepAlive::
|
||||
After receiving the pack from the client, `receive-pack` may
|
||||
produce no output (if `--quiet` was specified) while processing
|
||||
the pack, causing some networks to drop the TCP connection.
|
||||
With this option set, if `receive-pack` does not transmit
|
||||
any data in this phase for `receive.keepAlive` seconds, it will
|
||||
send a short keepalive packet. The default is 5 seconds; set
|
||||
to 0 to disable keepalives entirely.
|
||||
|
||||
receive.unpackLimit::
|
||||
If the number of objects received in a push is below this
|
||||
limit then the objects will be unpacked into loose object
|
||||
files. However if the number of received objects equals or
|
||||
exceeds this limit then the received pack will be stored as
|
||||
a pack, after adding any missing delta bases. Storing the
|
||||
pack from a push can make the push operation complete faster,
|
||||
especially on slow filesystems. If not set, the value of
|
||||
`transfer.unpackLimit` is used instead.
|
||||
|
||||
receive.maxInputSize::
|
||||
If the size of the incoming pack stream is larger than this
|
||||
limit, then git-receive-pack will error out, instead of
|
||||
accepting the pack file. If not set or set to 0, then the size
|
||||
is unlimited.
|
||||
|
||||
receive.denyDeletes::
|
||||
If set to true, git-receive-pack will deny a ref update that deletes
|
||||
the ref. Use this to prevent such a ref deletion via a push.
|
||||
|
||||
receive.denyDeleteCurrent::
|
||||
If set to true, git-receive-pack will deny a ref update that
|
||||
deletes the currently checked out branch of a non-bare repository.
|
||||
|
||||
receive.denyCurrentBranch::
|
||||
If set to true or "refuse", git-receive-pack will deny a ref update
|
||||
to the currently checked out branch of a non-bare repository.
|
||||
Such a push is potentially dangerous because it brings the HEAD
|
||||
out of sync with the index and working tree. If set to "warn",
|
||||
print a warning of such a push to stderr, but allow the push to
|
||||
proceed. If set to false or "ignore", allow such pushes with no
|
||||
message. Defaults to "refuse".
|
||||
+
|
||||
Another option is "updateInstead" which will update the working
|
||||
tree if pushing into the current branch. This option is
|
||||
intended for synchronizing working directories when one side is not easily
|
||||
accessible via interactive ssh (e.g. a live web site, hence the requirement
|
||||
that the working directory be clean). This mode also comes in handy when
|
||||
developing inside a VM to test and fix code on different Operating Systems.
|
||||
+
|
||||
By default, "updateInstead" will refuse the push if the working tree or
|
||||
the index have any difference from the HEAD, but the `push-to-checkout`
|
||||
hook can be used to customize this. See linkgit:githooks[5].
|
||||
|
||||
receive.denyNonFastForwards::
|
||||
If set to true, git-receive-pack will deny a ref update which is
|
||||
not a fast-forward. Use this to prevent such an update via a push,
|
||||
even if that push is forced. This configuration variable is
|
||||
set when initializing a shared repository.
|
||||
|
||||
receive.hideRefs::
|
||||
This variable is the same as `transfer.hideRefs`, but applies
|
||||
only to `receive-pack` (and so affects pushes, but not fetches).
|
||||
An attempt to update or delete a hidden ref by `git push` is
|
||||
rejected.
|
||||
|
||||
receive.updateServerInfo::
|
||||
If set to true, git-receive-pack will run git-update-server-info
|
||||
after receiving data from git-push and updating refs.
|
||||
|
||||
receive.shallowUpdate::
|
||||
If set to true, .git/shallow can be updated when new refs
|
||||
require new shallow roots. Otherwise those refs are rejected.
|
@ -1,78 +0,0 @@
|
||||
remote.pushDefault::
|
||||
The remote to push to by default. Overrides
|
||||
`branch.<name>.remote` for all branches, and is overridden by
|
||||
`branch.<name>.pushRemote` for specific branches.
|
||||
|
||||
remote.<name>.url::
|
||||
The URL of a remote repository. See linkgit:git-fetch[1] or
|
||||
linkgit:git-push[1].
|
||||
|
||||
remote.<name>.pushurl::
|
||||
The push URL of a remote repository. See linkgit:git-push[1].
|
||||
|
||||
remote.<name>.proxy::
|
||||
For remotes that require curl (http, https and ftp), the URL to
|
||||
the proxy to use for that remote. Set to the empty string to
|
||||
disable proxying for that remote.
|
||||
|
||||
remote.<name>.proxyAuthMethod::
|
||||
For remotes that require curl (http, https and ftp), the method to use for
|
||||
authenticating against the proxy in use (probably set in
|
||||
`remote.<name>.proxy`). See `http.proxyAuthMethod`.
|
||||
|
||||
remote.<name>.fetch::
|
||||
The default set of "refspec" for linkgit:git-fetch[1]. See
|
||||
linkgit:git-fetch[1].
|
||||
|
||||
remote.<name>.push::
|
||||
The default set of "refspec" for linkgit:git-push[1]. See
|
||||
linkgit:git-push[1].
|
||||
|
||||
remote.<name>.mirror::
|
||||
If true, pushing to this remote will automatically behave
|
||||
as if the `--mirror` option was given on the command line.
|
||||
|
||||
remote.<name>.skipDefaultUpdate::
|
||||
If true, this remote will be skipped by default when updating
|
||||
using linkgit:git-fetch[1] or the `update` subcommand of
|
||||
linkgit:git-remote[1].
|
||||
|
||||
remote.<name>.skipFetchAll::
|
||||
If true, this remote will be skipped by default when updating
|
||||
using linkgit:git-fetch[1] or the `update` subcommand of
|
||||
linkgit:git-remote[1].
|
||||
|
||||
remote.<name>.receivepack::
|
||||
The default program to execute on the remote side when pushing. See
|
||||
option --receive-pack of linkgit:git-push[1].
|
||||
|
||||
remote.<name>.uploadpack::
|
||||
The default program to execute on the remote side when fetching. See
|
||||
option --upload-pack of linkgit:git-fetch-pack[1].
|
||||
|
||||
remote.<name>.tagOpt::
|
||||
Setting this value to --no-tags disables automatic tag following when
|
||||
fetching from remote <name>. Setting it to --tags will fetch every
|
||||
tag from remote <name>, even if they are not reachable from remote
|
||||
branch heads. Passing these flags directly to linkgit:git-fetch[1] can
|
||||
override this setting. See options --tags and --no-tags of
|
||||
linkgit:git-fetch[1].
|
||||
|
||||
remote.<name>.vcs::
|
||||
Setting this to a value <vcs> will cause Git to interact with
|
||||
the remote with the git-remote-<vcs> helper.
|
||||
|
||||
remote.<name>.prune::
|
||||
When set to true, fetching from this remote by default will also
|
||||
remove any remote-tracking references that no longer exist on the
|
||||
remote (as if the `--prune` option was given on the command line).
|
||||
Overrides `fetch.prune` settings, if any.
|
||||
|
||||
remote.<name>.pruneTags::
|
||||
When set to true, fetching from this remote by default will also
|
||||
remove any local tags that no longer exist on the remote if pruning
|
||||
is activated in general via `remote.<name>.prune`, `fetch.prune` or
|
||||
`--prune`. Overrides `fetch.pruneTags` settings, if any.
|
||||
+
|
||||
See also `remote.<name>.prune` and the PRUNING section of
|
||||
linkgit:git-fetch[1].
|
@ -1,3 +0,0 @@
|
||||
remotes.<group>::
|
||||
The list of remotes which are fetched by "git remote update
|
||||
<group>". See linkgit:git-remote[1].
|
@ -1,27 +0,0 @@
|
||||
repack.useDeltaBaseOffset::
|
||||
By default, linkgit:git-repack[1] creates packs that use
|
||||
delta-base offset. If you need to share your repository with
|
||||
Git older than version 1.4.4, either directly or via a dumb
|
||||
protocol such as http, then you need to set this option to
|
||||
"false" and repack. Access from old Git versions over the
|
||||
native protocol are unaffected by this option.
|
||||
|
||||
repack.packKeptObjects::
|
||||
If set to true, makes `git repack` act as if
|
||||
`--pack-kept-objects` was passed. See linkgit:git-repack[1] for
|
||||
details. Defaults to `false` normally, but `true` if a bitmap
|
||||
index is being written (either via `--write-bitmap-index` or
|
||||
`repack.writeBitmaps`).
|
||||
|
||||
repack.useDeltaIslands::
|
||||
If set to true, makes `git repack` act as if `--delta-islands`
|
||||
was passed. Defaults to `false`.
|
||||
|
||||
repack.writeBitmaps::
|
||||
When true, git will write a bitmap index when packing all
|
||||
objects to disk (e.g., when `git repack -a` is run). This
|
||||
index can speed up the "counting objects" phase of subsequent
|
||||
packs created for clones and fetches, at the cost of some disk
|
||||
space and extra time spent on the initial repack. This has
|
||||
no effect if multiple packfiles are created.
|
||||
Defaults to false.
|
@ -1,12 +0,0 @@
|
||||
rerere.autoUpdate::
|
||||
When set to true, `git-rerere` updates the index with the
|
||||
resulting contents after it cleanly resolves conflicts using
|
||||
previously recorded resolution. Defaults to false.
|
||||
|
||||
rerere.enabled::
|
||||
Activate recording of resolved conflicts, so that identical
|
||||
conflict hunks can be resolved automatically, should they be
|
||||
encountered again. By default, linkgit:git-rerere[1] is
|
||||
enabled if there is an `rr-cache` directory under the
|
||||
`$GIT_DIR`, e.g. if "rerere" was previously used in the
|
||||
repository.
|
@ -1,2 +0,0 @@
|
||||
reset.quiet::
|
||||
When set to true, 'git reset' will default to the '--quiet' option.
|
@ -1,63 +0,0 @@
|
||||
sendemail.identity::
|
||||
A configuration identity. When given, causes values in the
|
||||
'sendemail.<identity>' subsection to take precedence over
|
||||
values in the 'sendemail' section. The default identity is
|
||||
the value of `sendemail.identity`.
|
||||
|
||||
sendemail.smtpEncryption::
|
||||
See linkgit:git-send-email[1] for description. Note that this
|
||||
setting is not subject to the 'identity' mechanism.
|
||||
|
||||
sendemail.smtpssl (deprecated)::
|
||||
Deprecated alias for 'sendemail.smtpEncryption = ssl'.
|
||||
|
||||
sendemail.smtpsslcertpath::
|
||||
Path to ca-certificates (either a directory or a single file).
|
||||
Set it to an empty string to disable certificate verification.
|
||||
|
||||
sendemail.<identity>.*::
|
||||
Identity-specific versions of the 'sendemail.*' parameters
|
||||
found below, taking precedence over those when this
|
||||
identity is selected, through either the command-line or
|
||||
`sendemail.identity`.
|
||||
|
||||
sendemail.aliasesFile::
|
||||
sendemail.aliasFileType::
|
||||
sendemail.annotate::
|
||||
sendemail.bcc::
|
||||
sendemail.cc::
|
||||
sendemail.ccCmd::
|
||||
sendemail.chainReplyTo::
|
||||
sendemail.confirm::
|
||||
sendemail.envelopeSender::
|
||||
sendemail.from::
|
||||
sendemail.multiEdit::
|
||||
sendemail.signedoffbycc::
|
||||
sendemail.smtpPass::
|
||||
sendemail.suppresscc::
|
||||
sendemail.suppressFrom::
|
||||
sendemail.to::
|
||||
sendemail.tocmd::
|
||||
sendemail.smtpDomain::
|
||||
sendemail.smtpServer::
|
||||
sendemail.smtpServerPort::
|
||||
sendemail.smtpServerOption::
|
||||
sendemail.smtpUser::
|
||||
sendemail.thread::
|
||||
sendemail.transferEncoding::
|
||||
sendemail.validate::
|
||||
sendemail.xmailer::
|
||||
See linkgit:git-send-email[1] for description.
|
||||
|
||||
sendemail.signedoffcc (deprecated)::
|
||||
Deprecated alias for `sendemail.signedoffbycc`.
|
||||
|
||||
sendemail.smtpBatchSize::
|
||||
Number of messages to be sent per connection, after that a relogin
|
||||
will happen. If the value is 0 or undefined, send all messages in
|
||||
one connection.
|
||||
See also the `--batch-size` option of linkgit:git-send-email[1].
|
||||
|
||||
sendemail.smtpReloginDelay::
|
||||
Seconds wait before reconnecting to smtp server.
|
||||
See also the `--relogin-delay` option of linkgit:git-send-email[1].
|
@ -1,5 +0,0 @@
|
||||
sequence.editor::
|
||||
Text editor used by `git rebase -i` for editing the rebase instruction file.
|
||||
The value is meant to be interpreted by the shell when it is used.
|
||||
It can be overridden by the `GIT_SEQUENCE_EDITOR` environment variable.
|
||||
When not configured the default commit message editor is used instead.
|
@ -1,3 +0,0 @@
|
||||
showBranch.default::
|
||||
The default set of branches for linkgit:git-show-branch[1].
|
||||
See linkgit:git-show-branch[1].
|
@ -1,24 +0,0 @@
|
||||
splitIndex.maxPercentChange::
|
||||
When the split index feature is used, this specifies the
|
||||
percent of entries the split index can contain compared to the
|
||||
total number of entries in both the split index and the shared
|
||||
index before a new shared index is written.
|
||||
The value should be between 0 and 100. If the value is 0 then
|
||||
a new shared index is always written, if it is 100 a new
|
||||
shared index is never written.
|
||||
By default the value is 20, so a new shared index is written
|
||||
if the number of entries in the split index would be greater
|
||||
than 20 percent of the total number of entries.
|
||||
See linkgit:git-update-index[1].
|
||||
|
||||
splitIndex.sharedIndexExpire::
|
||||
When the split index feature is used, shared index files that
|
||||
were not modified since the time this variable specifies will
|
||||
be removed when a new shared index file is created. The value
|
||||
"now" expires all entries immediately, and "never" suppresses
|
||||
expiration altogether.
|
||||
The default value is "2.weeks.ago".
|
||||
Note that a shared index file is considered modified (for the
|
||||
purpose of expiration) each time a new split-index file is
|
||||
either created based on it or read from it.
|
||||
See linkgit:git-update-index[1].
|
@ -1,35 +0,0 @@
|
||||
ssh.variant::
|
||||
By default, Git determines the command line arguments to use
|
||||
based on the basename of the configured SSH command (configured
|
||||
using the environment variable `GIT_SSH` or `GIT_SSH_COMMAND` or
|
||||
the config setting `core.sshCommand`). If the basename is
|
||||
unrecognized, Git will attempt to detect support of OpenSSH
|
||||
options by first invoking the configured SSH command with the
|
||||
`-G` (print configuration) option and will subsequently use
|
||||
OpenSSH options (if that is successful) or no options besides
|
||||
the host and remote command (if it fails).
|
||||
+
|
||||
The config variable `ssh.variant` can be set to override this detection.
|
||||
Valid values are `ssh` (to use OpenSSH options), `plink`, `putty`,
|
||||
`tortoiseplink`, `simple` (no options except the host and remote command).
|
||||
The default auto-detection can be explicitly requested using the value
|
||||
`auto`. Any other value is treated as `ssh`. This setting can also be
|
||||
overridden via the environment variable `GIT_SSH_VARIANT`.
|
||||
+
|
||||
The current command-line parameters used for each variant are as
|
||||
follows:
|
||||
+
|
||||
--
|
||||
|
||||
* `ssh` - [-p port] [-4] [-6] [-o option] [username@]host command
|
||||
|
||||
* `simple` - [username@]host command
|
||||
|
||||
* `plink` or `putty` - [-P port] [-4] [-6] [username@]host command
|
||||
|
||||
* `tortoiseplink` - [-P port] [-4] [-6] -batch [username@]host command
|
||||
|
||||
--
|
||||
+
|
||||
Except for the `simple` variant, command-line parameters are likely to
|
||||
change as git gains new features.
|
@ -1,9 +0,0 @@
|
||||
stash.showPatch::
|
||||
If this is set to true, the `git stash show` command without an
|
||||
option will show the stash entry in patch form. Defaults to false.
|
||||
See description of 'show' command in linkgit:git-stash[1].
|
||||
|
||||
stash.showStat::
|
||||
If this is set to true, the `git stash show` command without an
|
||||
option will show diffstat of the stash entry. Defaults to true.
|
||||
See description of 'show' command in linkgit:git-stash[1].
|
@ -1,72 +0,0 @@
|
||||
status.relativePaths::
|
||||
By default, linkgit:git-status[1] shows paths relative to the
|
||||
current directory. Setting this variable to `false` shows paths
|
||||
relative to the repository root (this was the default for Git
|
||||
prior to v1.5.4).
|
||||
|
||||
status.short::
|
||||
Set to true to enable --short by default in linkgit:git-status[1].
|
||||
The option --no-short takes precedence over this variable.
|
||||
|
||||
status.branch::
|
||||
Set to true to enable --branch by default in linkgit:git-status[1].
|
||||
The option --no-branch takes precedence over this variable.
|
||||
|
||||
status.displayCommentPrefix::
|
||||
If set to true, linkgit:git-status[1] will insert a comment
|
||||
prefix before each output line (starting with
|
||||
`core.commentChar`, i.e. `#` by default). This was the
|
||||
behavior of linkgit:git-status[1] in Git 1.8.4 and previous.
|
||||
Defaults to false.
|
||||
|
||||
status.renameLimit::
|
||||
The number of files to consider when performing rename detection
|
||||
in linkgit:git-status[1] and linkgit:git-commit[1]. Defaults to
|
||||
the value of diff.renameLimit.
|
||||
|
||||
status.renames::
|
||||
Whether and how Git detects renames in linkgit:git-status[1] and
|
||||
linkgit:git-commit[1] . 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 the value of diff.renames.
|
||||
|
||||
status.showStash::
|
||||
If set to true, linkgit:git-status[1] will display the number of
|
||||
entries currently stashed away.
|
||||
Defaults to false.
|
||||
|
||||
status.showUntrackedFiles::
|
||||
By default, linkgit:git-status[1] and linkgit:git-commit[1] show
|
||||
files which are not currently tracked by Git. Directories which
|
||||
contain only untracked files, are shown with the directory name
|
||||
only. Showing untracked files means that Git needs to lstat() all
|
||||
the files in the whole repository, which might be slow on some
|
||||
systems. So, this variable controls how the commands displays
|
||||
the untracked files. Possible values are:
|
||||
+
|
||||
--
|
||||
* `no` - Show no untracked files.
|
||||
* `normal` - Show untracked files and directories.
|
||||
* `all` - Show also individual files in untracked directories.
|
||||
--
|
||||
+
|
||||
If this variable is not specified, it defaults to 'normal'.
|
||||
This variable can be overridden with the -u|--untracked-files option
|
||||
of linkgit:git-status[1] and linkgit:git-commit[1].
|
||||
|
||||
status.submoduleSummary::
|
||||
Defaults to false.
|
||||
If this is set to a non zero number or true (identical to -1 or an
|
||||
unlimited number), the submodule summary will be enabled and a
|
||||
summary of commits for modified submodules will be shown (see
|
||||
--summary-limit option of linkgit:git-submodule[1]). Please note
|
||||
that the summary output command will be suppressed for all
|
||||
submodules when `diff.ignoreSubmodules` is set to 'all' or only
|
||||
for those submodules where `submodule.<name>.ignore=all`. The only
|
||||
exception to that rule is that status and commit will show staged
|
||||
submodule changes. To
|
||||
also view the summary for ignored submodules you can either use
|
||||
the --ignore-submodules=dirty command-line option or the 'git
|
||||
submodule summary' command, which shows a similar output but does
|
||||
not honor these settings.
|
@ -1,82 +0,0 @@
|
||||
submodule.<name>.url::
|
||||
The URL for a submodule. This variable is copied from the .gitmodules
|
||||
file to the git config via 'git submodule init'. The user can change
|
||||
the configured URL before obtaining the submodule via 'git submodule
|
||||
update'. If neither submodule.<name>.active or submodule.active are
|
||||
set, the presence of this variable is used as a fallback to indicate
|
||||
whether the submodule is of interest to git commands.
|
||||
See linkgit:git-submodule[1] and linkgit:gitmodules[5] for details.
|
||||
|
||||
submodule.<name>.update::
|
||||
The method by which a submodule is updated by 'git submodule update',
|
||||
which is the only affected command, others such as
|
||||
'git checkout --recurse-submodules' are unaffected. It exists for
|
||||
historical reasons, when 'git submodule' was the only command to
|
||||
interact with submodules; settings like `submodule.active`
|
||||
and `pull.rebase` are more specific. It is populated by
|
||||
`git submodule init` from the linkgit:gitmodules[5] file.
|
||||
See description of 'update' command in linkgit:git-submodule[1].
|
||||
|
||||
submodule.<name>.branch::
|
||||
The remote branch name for a submodule, used by `git submodule
|
||||
update --remote`. Set this option to override the value found in
|
||||
the `.gitmodules` file. See linkgit:git-submodule[1] and
|
||||
linkgit:gitmodules[5] for details.
|
||||
|
||||
submodule.<name>.fetchRecurseSubmodules::
|
||||
This option can be used to control recursive fetching of this
|
||||
submodule. It can be overridden by using the --[no-]recurse-submodules
|
||||
command-line option to "git fetch" and "git pull".
|
||||
This setting will override that from in the linkgit:gitmodules[5]
|
||||
file.
|
||||
|
||||
submodule.<name>.ignore::
|
||||
Defines under what circumstances "git status" and the diff family show
|
||||
a submodule as modified. When set to "all", it will never be considered
|
||||
modified (but it will nonetheless show up in the output of status and
|
||||
commit when it has been staged), "dirty" will ignore all changes
|
||||
to the submodules work tree and
|
||||
takes only differences between the HEAD of the submodule and the commit
|
||||
recorded in the superproject into account. "untracked" will additionally
|
||||
let submodules with modified tracked files in their work tree show up.
|
||||
Using "none" (the default when this option is not set) also shows
|
||||
submodules that have untracked files in their work tree as changed.
|
||||
This setting overrides any setting made in .gitmodules for this submodule,
|
||||
both settings can be overridden on the command line by using the
|
||||
"--ignore-submodules" option. The 'git submodule' commands are not
|
||||
affected by this setting.
|
||||
|
||||
submodule.<name>.active::
|
||||
Boolean value indicating if the submodule is of interest to git
|
||||
commands. This config option takes precedence over the
|
||||
submodule.active config option. See linkgit:gitsubmodules[7] for
|
||||
details.
|
||||
|
||||
submodule.active::
|
||||
A repeated field which contains a pathspec used to match against a
|
||||
submodule's path to determine if the submodule is of interest to git
|
||||
commands. See linkgit:gitsubmodules[7] for details.
|
||||
|
||||
submodule.recurse::
|
||||
Specifies if commands recurse into submodules by default. This
|
||||
applies to all commands that have a `--recurse-submodules` option,
|
||||
except `clone`.
|
||||
Defaults to false.
|
||||
|
||||
submodule.fetchJobs::
|
||||
Specifies how many submodules are fetched/cloned at the same time.
|
||||
A positive integer allows up to that number of submodules fetched
|
||||
in parallel. A value of 0 will give some reasonable default.
|
||||
If unset, it defaults to 1.
|
||||
|
||||
submodule.alternateLocation::
|
||||
Specifies how the submodules obtain alternates when submodules are
|
||||
cloned. Possible values are `no`, `superproject`.
|
||||
By default `no` is assumed, which doesn't add references. When the
|
||||
value is set to `superproject` the submodule to be cloned computes
|
||||
its alternates location relative to the superprojects alternate.
|
||||
|
||||
submodule.alternateErrorStrategy::
|
||||
Specifies how to treat errors with the alternates for a submodule
|
||||
as computed via `submodule.alternateLocation`. Possible values are
|
||||
`ignore`, `info`, `die`. Default is `die`.
|
@ -1,16 +0,0 @@
|
||||
tag.forceSignAnnotated::
|
||||
A boolean to specify whether annotated tags created should be GPG signed.
|
||||
If `--annotate` is specified on the command line, it takes
|
||||
precedence over this option.
|
||||
|
||||
tag.sort::
|
||||
This variable controls the sort ordering of tags when displayed by
|
||||
linkgit:git-tag[1]. Without the "--sort=<value>" option provided, the
|
||||
value of this variable will be used as the default.
|
||||
|
||||
tar.umask::
|
||||
This variable can be used to restrict the permission bits of
|
||||
tar archive entries. The default is 0002, which turns off the
|
||||
world write bit. The special value "user" indicates that the
|
||||
archiving user's umask will be used instead. See umask(2) and
|
||||
linkgit:git-archive[1].
|
@ -1,71 +0,0 @@
|
||||
transfer.fsckObjects::
|
||||
When `fetch.fsckObjects` or `receive.fsckObjects` are
|
||||
not set, the value of this variable is used instead.
|
||||
Defaults to false.
|
||||
+
|
||||
When set, the fetch or receive will abort in the case of a malformed
|
||||
object or a link to a nonexistent object. In addition, various other
|
||||
issues are checked for, including legacy issues (see `fsck.<msg-id>`),
|
||||
and potential security issues like the existence of a `.GIT` directory
|
||||
or a malicious `.gitmodules` file (see the release notes for v2.2.1
|
||||
and v2.17.1 for details). Other sanity and security checks may be
|
||||
added in future releases.
|
||||
+
|
||||
On the receiving side, failing fsckObjects will make those objects
|
||||
unreachable, see "QUARANTINE ENVIRONMENT" in
|
||||
linkgit:git-receive-pack[1]. On the fetch side, malformed objects will
|
||||
instead be left unreferenced in the repository.
|
||||
+
|
||||
Due to the non-quarantine nature of the `fetch.fsckObjects`
|
||||
implementation it can not be relied upon to leave the object store
|
||||
clean like `receive.fsckObjects` can.
|
||||
+
|
||||
As objects are unpacked they're written to the object store, so there
|
||||
can be cases where malicious objects get introduced even though the
|
||||
"fetch" failed, only to have a subsequent "fetch" succeed because only
|
||||
new incoming objects are checked, not those that have already been
|
||||
written to the object store. That difference in behavior should not be
|
||||
relied upon. In the future, such objects may be quarantined for
|
||||
"fetch" as well.
|
||||
+
|
||||
For now, the paranoid need to find some way to emulate the quarantine
|
||||
environment if they'd like the same protection as "push". E.g. in the
|
||||
case of an internal mirror do the mirroring in two steps, one to fetch
|
||||
the untrusted objects, and then do a second "push" (which will use the
|
||||
quarantine) to another internal repo, and have internal clients
|
||||
consume this pushed-to repository, or embargo internal fetches and
|
||||
only allow them once a full "fsck" has run (and no new fetches have
|
||||
happened in the meantime).
|
||||
|
||||
transfer.hideRefs::
|
||||
String(s) `receive-pack` and `upload-pack` use to decide which
|
||||
refs to omit from their initial advertisements. Use more than
|
||||
one definition to specify multiple prefix strings. A ref that is
|
||||
under the hierarchies listed in the value of this variable is
|
||||
excluded, and is hidden when responding to `git push` or `git
|
||||
fetch`. See `receive.hideRefs` and `uploadpack.hideRefs` for
|
||||
program-specific versions of this config.
|
||||
+
|
||||
You may also include a `!` in front of the ref name to negate the entry,
|
||||
explicitly exposing it, even if an earlier entry marked it as hidden.
|
||||
If you have multiple hideRefs values, later entries override earlier ones
|
||||
(and entries in more-specific config files override less-specific ones).
|
||||
+
|
||||
If a namespace is in use, the namespace prefix is stripped from each
|
||||
reference before it is matched against `transfer.hiderefs` patterns.
|
||||
For example, if `refs/heads/master` is specified in `transfer.hideRefs` and
|
||||
the current namespace is `foo`, then `refs/namespaces/foo/refs/heads/master`
|
||||
is omitted from the advertisements but `refs/heads/master` and
|
||||
`refs/namespaces/bar/refs/heads/master` are still advertised as so-called
|
||||
"have" lines. In order to match refs before stripping, add a `^` in front of
|
||||
the ref name. If you combine `!` and `^`, `!` must be specified first.
|
||||
+
|
||||
Even if you hide refs, a client may still be able to steal the target
|
||||
objects via the techniques described in the "SECURITY" section of the
|
||||
linkgit:gitnamespaces[7] man page; it's best to keep private data in a
|
||||
separate repository.
|
||||
|
||||
transfer.unpackLimit::
|
||||
When `fetch.unpackLimit` or `receive.unpackLimit` are
|
||||
not set, the value of this variable is used instead.
|
||||
The default value is 100.
|
@ -1,6 +0,0 @@
|
||||
uploadarchive.allowUnreachable::
|
||||
If true, allow clients to use `git archive --remote` to request
|
||||
any tree, whether reachable from the ref tips or not. See the
|
||||
discussion in the "SECURITY" section of
|
||||
linkgit:git-upload-archive[1] for more details. Defaults to
|
||||
`false`.
|
@ -1,65 +0,0 @@
|
||||
uploadpack.hideRefs::
|
||||
This variable is the same as `transfer.hideRefs`, but applies
|
||||
only to `upload-pack` (and so affects only fetches, not pushes).
|
||||
An attempt to fetch a hidden ref by `git fetch` will fail. See
|
||||
also `uploadpack.allowTipSHA1InWant`.
|
||||
|
||||
uploadpack.allowTipSHA1InWant::
|
||||
When `uploadpack.hideRefs` is in effect, allow `upload-pack`
|
||||
to accept a fetch request that asks for an object at the tip
|
||||
of a hidden ref (by default, such a request is rejected).
|
||||
See also `uploadpack.hideRefs`. Even if this is false, a client
|
||||
may be able to steal objects via the techniques described in the
|
||||
"SECURITY" section of the linkgit:gitnamespaces[7] man page; it's
|
||||
best to keep private data in a separate repository.
|
||||
|
||||
uploadpack.allowReachableSHA1InWant::
|
||||
Allow `upload-pack` to accept a fetch request that asks for an
|
||||
object that is reachable from any ref tip. However, note that
|
||||
calculating object reachability is computationally expensive.
|
||||
Defaults to `false`. Even if this is false, a client may be able
|
||||
to steal objects via the techniques described in the "SECURITY"
|
||||
section of the linkgit:gitnamespaces[7] man page; it's best to
|
||||
keep private data in a separate repository.
|
||||
|
||||
uploadpack.allowAnySHA1InWant::
|
||||
Allow `upload-pack` to accept a fetch request that asks for any
|
||||
object at all.
|
||||
Defaults to `false`.
|
||||
|
||||
uploadpack.keepAlive::
|
||||
When `upload-pack` has started `pack-objects`, there may be a
|
||||
quiet period while `pack-objects` prepares the pack. Normally
|
||||
it would output progress information, but if `--quiet` was used
|
||||
for the fetch, `pack-objects` will output nothing at all until
|
||||
the pack data begins. Some clients and networks may consider
|
||||
the server to be hung and give up. Setting this option instructs
|
||||
`upload-pack` to send an empty keepalive packet every
|
||||
`uploadpack.keepAlive` seconds. Setting this option to 0
|
||||
disables keepalive packets entirely. The default is 5 seconds.
|
||||
|
||||
uploadpack.packObjectsHook::
|
||||
If this option is set, when `upload-pack` would run
|
||||
`git pack-objects` to create a packfile for a client, it will
|
||||
run this shell command instead. The `pack-objects` command and
|
||||
arguments it _would_ have run (including the `git pack-objects`
|
||||
at the beginning) are appended to the shell command. The stdin
|
||||
and stdout of the hook are treated as if `pack-objects` itself
|
||||
was run. I.e., `upload-pack` will feed input intended for
|
||||
`pack-objects` to the hook, and expects a completed packfile on
|
||||
stdout.
|
||||
+
|
||||
Note that this configuration variable is ignored if it is seen in the
|
||||
repository-level config (this is a safety measure against fetching from
|
||||
untrusted repositories).
|
||||
|
||||
uploadpack.allowFilter::
|
||||
If this option is set, `upload-pack` will support partial
|
||||
clone and partial fetch object filtering.
|
||||
|
||||
uploadpack.allowRefInWant::
|
||||
If this option is set, `upload-pack` will support the `ref-in-want`
|
||||
feature of the protocol version 2 `fetch` command. This feature
|
||||
is intended for the benefit of load-balanced servers which may
|
||||
not have the same view of what OIDs their refs point to due to
|
||||
replication delay.
|
@ -1,30 +0,0 @@
|
||||
url.<base>.insteadOf::
|
||||
Any URL that starts with this value will be rewritten to
|
||||
start, instead, with <base>. In cases where some site serves a
|
||||
large number of repositories, and serves them with multiple
|
||||
access methods, and some users need to use different access
|
||||
methods, this feature allows people to specify any of the
|
||||
equivalent URLs and have Git automatically rewrite the URL to
|
||||
the best alternative for the particular user, even for a
|
||||
never-before-seen repository on the site. When more than one
|
||||
insteadOf strings match a given URL, the longest match is used.
|
||||
+
|
||||
Note that any protocol restrictions will be applied to the rewritten
|
||||
URL. If the rewrite changes the URL to use a custom protocol or remote
|
||||
helper, you may need to adjust the `protocol.*.allow` config to permit
|
||||
the request. In particular, protocols you expect to use for submodules
|
||||
must be set to `always` rather than the default of `user`. See the
|
||||
description of `protocol.allow` above.
|
||||
|
||||
url.<base>.pushInsteadOf::
|
||||
Any URL that starts with this value will not be pushed to;
|
||||
instead, it will be rewritten to start with <base>, and the
|
||||
resulting URL will be pushed to. In cases where some site serves
|
||||
a large number of repositories, and serves them with multiple
|
||||
access methods, some of which do not allow push, this feature
|
||||
allows people to specify a pull-only URL and have Git
|
||||
automatically use an appropriate URL to push, even for a
|
||||
never-before-seen repository on the site. When more than one
|
||||
pushInsteadOf strings match a given URL, the longest match is
|
||||
used. If a remote has an explicit pushurl, Git will ignore this
|
||||
setting for that remote.
|
@ -1,26 +0,0 @@
|
||||
user.email::
|
||||
Your email address to be recorded in any newly created commits.
|
||||
Can be overridden by the `GIT_AUTHOR_EMAIL`, `GIT_COMMITTER_EMAIL`, and
|
||||
`EMAIL` environment variables. See linkgit:git-commit-tree[1].
|
||||
|
||||
user.name::
|
||||
Your full name to be recorded in any newly created commits.
|
||||
Can be overridden by the `GIT_AUTHOR_NAME` and `GIT_COMMITTER_NAME`
|
||||
environment variables. See linkgit:git-commit-tree[1].
|
||||
|
||||
user.useConfigOnly::
|
||||
Instruct Git to avoid trying to guess defaults for `user.email`
|
||||
and `user.name`, and instead retrieve the values only from the
|
||||
configuration. For example, if you have multiple email addresses
|
||||
and would like to use a different one for each repository, then
|
||||
with this configuration option set to `true` in the global config
|
||||
along with a name, Git will prompt you to set up an email before
|
||||
making new commits in a newly cloned repository.
|
||||
Defaults to `false`.
|
||||
|
||||
user.signingKey::
|
||||
If linkgit:git-tag[1] or linkgit:git-commit[1] is not selecting the
|
||||
key you want it to automatically when creating a signed tag or
|
||||
commit, you can override the default selection with this variable.
|
||||
This option is passed unchanged to gpg's --local-user parameter,
|
||||
so you may specify a key using any method that gpg supports.
|
@ -1,33 +0,0 @@
|
||||
versionsort.prereleaseSuffix (deprecated)::
|
||||
Deprecated alias for `versionsort.suffix`. Ignored if
|
||||
`versionsort.suffix` is set.
|
||||
|
||||
versionsort.suffix::
|
||||
Even when version sort is used in linkgit:git-tag[1], tagnames
|
||||
with the same base version but different suffixes are still sorted
|
||||
lexicographically, resulting e.g. in prerelease tags appearing
|
||||
after the main release (e.g. "1.0-rc1" after "1.0"). This
|
||||
variable can be specified to determine the sorting order of tags
|
||||
with different suffixes.
|
||||
+
|
||||
By specifying a single suffix in this variable, any tagname containing
|
||||
that suffix will appear before the corresponding main release. E.g. if
|
||||
the variable is set to "-rc", then all "1.0-rcX" tags will appear before
|
||||
"1.0". If specified multiple times, once per suffix, then the order of
|
||||
suffixes in the configuration will determine the sorting order of tagnames
|
||||
with those suffixes. E.g. if "-pre" appears before "-rc" in the
|
||||
configuration, then all "1.0-preX" tags will be listed before any
|
||||
"1.0-rcX" tags. The placement of the main release tag relative to tags
|
||||
with various suffixes can be determined by specifying the empty suffix
|
||||
among those other suffixes. E.g. if the suffixes "-rc", "", "-ck" and
|
||||
"-bfs" appear in the configuration in this order, then all "v4.8-rcX" tags
|
||||
are listed first, followed by "v4.8", then "v4.8-ckX" and finally
|
||||
"v4.8-bfsX".
|
||||
+
|
||||
If more than one suffixes match the same tagname, then that tagname will
|
||||
be sorted according to the suffix which starts at the earliest position in
|
||||
the tagname. If more than one different matching suffixes start at
|
||||
that earliest position, then that tagname will be sorted according to the
|
||||
longest of those suffixes.
|
||||
The sorting order between different suffixes is undefined if they are
|
||||
in multiple config files.
|
@ -1,4 +0,0 @@
|
||||
web.browser::
|
||||
Specify a web browser that may be used by some commands.
|
||||
Currently only linkgit:git-instaweb[1] and linkgit:git-help[1]
|
||||
may use it.
|
@ -1,9 +0,0 @@
|
||||
worktree.guessRemote::
|
||||
With `add`, if no branch argument, and neither of `-b` nor
|
||||
`-B` nor `--detach` are given, the command defaults to
|
||||
creating a new branch from HEAD. If `worktree.guessRemote` is
|
||||
set to true, `worktree add` tries to find a remote-tracking
|
||||
branch whose name uniquely matches the new branch name. If
|
||||
such a branch exists, it is checked out and set as "upstream"
|
||||
for the new branch. If no such match can be found, it falls
|
||||
back to creating a new branch from the current HEAD.
|
@ -112,8 +112,7 @@ diff.orderFile::
|
||||
|
||||
diff.renameLimit::
|
||||
The number of files to consider when performing the copy/rename
|
||||
detection; equivalent to the 'git diff' option `-l`. This setting
|
||||
has no effect if rename detection is turned off.
|
||||
detection; equivalent to the 'git diff' option `-l`.
|
||||
|
||||
diff.renames::
|
||||
Whether and how Git detects renames. If set to "false",
|
||||
@ -177,15 +176,7 @@ diff.tool::
|
||||
Any other value is treated as a custom diff tool and requires
|
||||
that a corresponding difftool.<tool>.cmd variable is defined.
|
||||
|
||||
diff.guitool::
|
||||
Controls which diff tool is used by linkgit:git-difftool[1] when
|
||||
the -g/--gui flag is specified. This variable overrides the value
|
||||
configured in `merge.guitool`. The list below shows the valid
|
||||
built-in values. Any other value is treated as a custom diff tool
|
||||
and requires that a corresponding difftool.<guitool>.cmd variable
|
||||
is defined.
|
||||
|
||||
include::../mergetools-diff.txt[]
|
||||
include::mergetools-diff.txt[]
|
||||
|
||||
diff.indentHeuristic::
|
||||
Set this option to `true` to enable experimental heuristics
|
||||
@ -216,15 +207,3 @@ diff.wsErrorHighlight::
|
||||
whitespace errors are colored with `color.diff.whitespace`.
|
||||
The command line option `--ws-error-highlight=<kind>`
|
||||
overrides this setting.
|
||||
|
||||
diff.colorMoved::
|
||||
If set to either a valid `<mode>` or a true value, moved lines
|
||||
in a diff are colored differently, for details of valid modes
|
||||
see '--color-moved' in linkgit:git-diff[1]. If simply set to
|
||||
true the default color mode will be used. When set to false,
|
||||
moved lines are not colored.
|
||||
|
||||
diff.colorMovedWS::
|
||||
When moved lines are colored using e.g. the `diff.colorMoved` setting,
|
||||
this option controls the `<mode>` how spaces are treated
|
||||
for details of valid modes see '--color-moved-ws' in linkgit:git-diff[1].
|
@ -26,12 +26,12 @@ line per changed file.
|
||||
An output line is formatted this way:
|
||||
|
||||
------------------------------------------------
|
||||
in-place edit :100644 100644 bcd1234 0123456 M file0
|
||||
copy-edit :100644 100644 abcd123 1234567 C68 file1 file2
|
||||
rename-edit :100644 100644 abcd123 1234567 R86 file1 file3
|
||||
create :000000 100644 0000000 1234567 A file4
|
||||
delete :100644 000000 1234567 0000000 D file5
|
||||
unmerged :000000 000000 0000000 0000000 U file6
|
||||
in-place edit :100644 100644 bcd1234... 0123456... M file0
|
||||
copy-edit :100644 100644 abcd123... 1234567... C68 file1 file2
|
||||
rename-edit :100644 100644 abcd123... 1234567... R86 file1 file3
|
||||
create :000000 100644 0000000... 1234567... A file4
|
||||
delete :100644 000000 1234567... 0000000... D file5
|
||||
unmerged :000000 000000 0000000... 0000000... U file6
|
||||
------------------------------------------------
|
||||
|
||||
That is, from the left to the right:
|
||||
@ -75,7 +75,7 @@ and it is out of sync with the index.
|
||||
Example:
|
||||
|
||||
------------------------------------------------
|
||||
:100644 100644 5be4a4a 0000000 M file.c
|
||||
:100644 100644 5be4a4...... 000000...... M file.c
|
||||
------------------------------------------------
|
||||
|
||||
Without the `-z` option, pathnames with "unusual" characters are
|
||||
@ -100,7 +100,7 @@ from the format described above in the following way:
|
||||
Example:
|
||||
|
||||
------------------------------------------------
|
||||
::100644 100644 100644 fabadb8 cc95eb0 4866510 MM describe.c
|
||||
::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c
|
||||
------------------------------------------------
|
||||
|
||||
Note that 'combined diff' lists only files which were modified from
|
||||
|
@ -64,7 +64,7 @@ ifndef::git-format-patch[]
|
||||
endif::git-format-patch[]
|
||||
|
||||
--indent-heuristic::
|
||||
Enable the heuristic that shifts diff hunk boundaries to make patches
|
||||
Enable the heuristic that shift diff hunk boundaries to make patches
|
||||
easier to read. This is the default.
|
||||
|
||||
--no-indent-heuristic::
|
||||
@ -106,7 +106,7 @@ diff" algorithm internally.
|
||||
low-occurrence common elements".
|
||||
--
|
||||
+
|
||||
For instance, if you configured the `diff.algorithm` variable to a
|
||||
For instance, if you configured diff.algorithm variable to a
|
||||
non-default value and want to use the default one, then you
|
||||
have to use `--diff-algorithm=default` option.
|
||||
|
||||
@ -133,7 +133,7 @@ These parameters can also be set individually with `--stat-width=<width>`,
|
||||
as file creations or deletions ("new" or "gone", optionally "+l"
|
||||
if it's a symlink) and mode changes ("+x" or "-x" for adding
|
||||
or removing executable bit respectively) in diffstat. The
|
||||
information is put between the filename part and the graph
|
||||
information is put betwen the filename part and the graph
|
||||
part. Implies `--stat`.
|
||||
|
||||
--numstat::
|
||||
@ -276,46 +276,16 @@ plain::
|
||||
that are added somewhere else in the diff. This mode picks up any
|
||||
moved line, but it is not very useful in a review to determine
|
||||
if a block of code was moved without permutation.
|
||||
blocks::
|
||||
zebra::
|
||||
Blocks of moved text of at least 20 alphanumeric characters
|
||||
are detected greedily. The detected blocks are
|
||||
painted using either the 'color.diff.{old,new}Moved' color.
|
||||
Adjacent blocks cannot be told apart.
|
||||
zebra::
|
||||
Blocks of moved text are detected as in 'blocks' mode. The blocks
|
||||
are painted using either the 'color.diff.{old,new}Moved' color or
|
||||
painted using either the 'color.diff.{old,new}Moved' color or
|
||||
'color.diff.{old,new}MovedAlternative'. The change between
|
||||
the two colors indicates that a new block was detected.
|
||||
dimmed-zebra::
|
||||
dimmed_zebra::
|
||||
Similar to 'zebra', but additional dimming of uninteresting parts
|
||||
of moved code is performed. The bordering lines of two adjacent
|
||||
blocks are considered interesting, the rest is uninteresting.
|
||||
`dimmed_zebra` is a deprecated synonym.
|
||||
--
|
||||
|
||||
--color-moved-ws=<modes>::
|
||||
This configures how white spaces are ignored when performing the
|
||||
move detection for `--color-moved`.
|
||||
ifdef::git-diff[]
|
||||
It can be set by the `diff.colorMovedWS` configuration setting.
|
||||
endif::git-diff[]
|
||||
These modes can be given as a comma separated list:
|
||||
+
|
||||
--
|
||||
ignore-space-at-eol::
|
||||
Ignore changes in whitespace at EOL.
|
||||
ignore-space-change::
|
||||
Ignore changes in amount of whitespace. This ignores whitespace
|
||||
at line end, and considers all other sequences of one or
|
||||
more whitespace characters to be equivalent.
|
||||
ignore-all-space::
|
||||
Ignore whitespace when comparing lines. This ignores differences
|
||||
even if one line has whitespace where the other line has none.
|
||||
allow-indentation-change::
|
||||
Initially ignore any white spaces in the move detection, then
|
||||
group the moved code blocks only into a block if the change in
|
||||
whitespace is the same per line. This is incompatible with the
|
||||
other modes.
|
||||
--
|
||||
|
||||
--word-diff[=<mode>]::
|
||||
@ -380,7 +350,7 @@ ifndef::git-format-patch[]
|
||||
Warn if changes introduce conflict markers or whitespace errors.
|
||||
What are considered whitespace errors is controlled by `core.whitespace`
|
||||
configuration. By default, trailing whitespaces (including
|
||||
lines that consist solely of whitespaces) and a space character
|
||||
lines that solely consist of whitespaces) and a space character
|
||||
that is immediately followed by a tab character inside the
|
||||
initial indent of the line are considered whitespace errors.
|
||||
Exits with non-zero status if problems are found. Not compatible
|
||||
@ -394,7 +364,7 @@ ifndef::git-format-patch[]
|
||||
this option is not given, and the configuration variable
|
||||
`diff.wsErrorHighlight` is not set, only whitespace errors in
|
||||
`new` lines are highlighted. The whitespace errors are colored
|
||||
with `color.diff.whitespace`.
|
||||
whith `color.diff.whitespace`.
|
||||
|
||||
endif::git-format-patch[]
|
||||
|
||||
@ -598,7 +568,7 @@ the normal order.
|
||||
--
|
||||
+
|
||||
Patterns have the same syntax and semantics as patterns used for
|
||||
fnmatch(3) without the FNM_PATHNAME flag, except a pathname also
|
||||
fnmantch(3) without the FNM_PATHNAME flag, except a pathname also
|
||||
matches a pattern if removing any number of the final pathname
|
||||
components matches the pattern. For example, the pattern "`foo*bar`"
|
||||
matches "`fooasdfbar`" and "`foo/bar/baz/asdf`" but not "`foobarx`".
|
||||
@ -622,7 +592,7 @@ endif::git-format-patch[]
|
||||
Treat all files as text.
|
||||
|
||||
--ignore-cr-at-eol::
|
||||
Ignore carriage-return at the end of line when doing a comparison.
|
||||
Ignore carrige-return at the end of line when doing a comparison.
|
||||
|
||||
--ignore-space-at-eol::
|
||||
Ignore changes in whitespace at EOL.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user