Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
c735d7470e | |||
b1726b1a38 | |||
8b1a5f33d3 | |||
804963848e | |||
9fb2a1fb08 | |||
fb049fd85b | |||
6eed462c8f | |||
9b77cec89b | |||
6b82d3eea6 | |||
22539ec3b5 | |||
0d58fef58a | |||
684dd4c2b4 |
@ -148,21 +148,8 @@ SpacesInSquareBrackets: false
|
||||
Cpp11BracedListStyle: false
|
||||
|
||||
# A list of macros that should be interpreted as foreach loops instead of as
|
||||
# function calls. Taken from:
|
||||
# git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' \
|
||||
# | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$, - '\1'," \
|
||||
# | sort | uniq
|
||||
ForEachMacros:
|
||||
- 'for_each_abbrev'
|
||||
- 'for_each_builtin'
|
||||
- 'for_each_string_list_item'
|
||||
- 'for_each_ut'
|
||||
- 'for_each_wanted_builtin'
|
||||
- 'list_for_each'
|
||||
- 'list_for_each_dir'
|
||||
- 'list_for_each_prev'
|
||||
- 'list_for_each_prev_safe'
|
||||
- 'list_for_each_safe'
|
||||
# function calls.
|
||||
ForEachMacros: ['for_each_string_list_item']
|
||||
|
||||
# The maximum number of consecutive empty lines to keep.
|
||||
MaxEmptyLinesToKeep: 1
|
||||
|
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@ -5,7 +5,7 @@ Git community does not use github.com for their contributions. Instead, we use
|
||||
a mailing list (git@vger.kernel.org) for code submissions, code
|
||||
reviews, and bug reports.
|
||||
|
||||
Nevertheless, you can use [GitGitGadget](https://gitgitgadget.github.io/) to
|
||||
Nevertheless, you can use [submitGit](http://submitgit.herokuapp.com/) to
|
||||
conveniently send your Pull Requests commits to our mailing list.
|
||||
|
||||
Please read ["A note from the maintainer"](https://git.kernel.org/pub/scm/git/git.git/plain/MaintNotes?h=todo)
|
||||
|
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,7 +1,7 @@
|
||||
Thanks for taking the time to contribute to Git! Please be advised that the
|
||||
Git community does not use github.com for their contributions. Instead, we use
|
||||
a mailing list (git@vger.kernel.org) for code submissions, code reviews, and
|
||||
bug reports. Nevertheless, you can use GitGitGadget (https://gitgitgadget.github.io/)
|
||||
to conveniently send your Pull Requests commits to our mailing list.
|
||||
bug reports. Nevertheless, you can use submitGit to conveniently send your Pull
|
||||
Requests commits to our mailing list.
|
||||
|
||||
Please read the "guidelines for contributing" linked above!
|
||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -82,7 +82,7 @@
|
||||
/git-init-db
|
||||
/git-interpret-trailers
|
||||
/git-instaweb
|
||||
/git-legacy-stash
|
||||
/git-legacy-rebase
|
||||
/git-log
|
||||
/git-ls-files
|
||||
/git-ls-remote
|
||||
@ -135,6 +135,7 @@
|
||||
/git-remote-ftps
|
||||
/git-remote-fd
|
||||
/git-remote-ext
|
||||
/git-remote-testgit
|
||||
/git-remote-testpy
|
||||
/git-remote-testsvn
|
||||
/git-repack
|
||||
|
1
.mailmap
1
.mailmap
@ -210,7 +210,6 @@ Petr Baudis <pasky@ucw.cz> <pasky@suse.cz>
|
||||
Petr Baudis <pasky@ucw.cz> <xpasky@machine>
|
||||
Phil Hord <hordp@cisco.com> <phil.hord@gmail.com>
|
||||
Philip Jägenstedt <philip@foolip.org> <philip.jagenstedt@gmail.com>
|
||||
Philip Oakley <philipoakley@iee.email> <philipoakley@iee.org> # secondary <philipoakley@dunelm.org.uk>
|
||||
Philipp A. Hartmann <pah@qo.cx> <ph@sorgh.de>
|
||||
Philippe Bruhat <book@cpan.org>
|
||||
Ralf Thielow <ralf.thielow@gmail.com> <ralf.thielow@googlemail.com>
|
||||
|
10
.travis.yml
10
.travis.yml
@ -21,6 +21,16 @@ matrix:
|
||||
compiler:
|
||||
addons:
|
||||
before_install:
|
||||
- env: jobname=Windows
|
||||
os: linux
|
||||
compiler:
|
||||
addons:
|
||||
before_install:
|
||||
script:
|
||||
- >
|
||||
test "$TRAVIS_REPO_SLUG" != "git/git" ||
|
||||
ci/run-windows-build.sh $TRAVIS_BRANCH $(git rev-parse HEAD)
|
||||
after_failure:
|
||||
- env: jobname=Linux32
|
||||
os: linux
|
||||
compiler:
|
||||
|
2
Documentation/.gitignore
vendored
2
Documentation/.gitignore
vendored
@ -13,5 +13,3 @@ mergetools-*.txt
|
||||
manpage-base-url.xsl
|
||||
SubmittingPatches.txt
|
||||
tmp-doc-diff/
|
||||
GIT-ASCIIDOCFLAGS
|
||||
/GIT-EXCLUDED-PROGRAMS
|
||||
|
@ -195,30 +195,10 @@ For C programs:
|
||||
by e.g. "echo DEVELOPER=1 >>config.mak".
|
||||
|
||||
- We try to support a wide range of C compilers to compile Git with,
|
||||
including old ones. You should not use features from newer C
|
||||
standard, even if your compiler groks them.
|
||||
including old ones. That means that you should not use C99
|
||||
initializers, even if a lot of compilers grok it.
|
||||
|
||||
There are a few exceptions to this guideline:
|
||||
|
||||
. since early 2012 with e1327023ea, we have been using an enum
|
||||
definition whose last element is followed by a comma. This, like
|
||||
an array initializer that ends with a trailing comma, can be used
|
||||
to reduce the patch noise when adding a new identifer at the end.
|
||||
|
||||
. since mid 2017 with cbc0f81d, we have been using designated
|
||||
initializers for struct (e.g. "struct t v = { .val = 'a' };").
|
||||
|
||||
. since mid 2017 with 512f41cf, we have been using designated
|
||||
initializers for array (e.g. "int array[10] = { [5] = 2 }").
|
||||
|
||||
These used to be forbidden, but we have not heard any breakage
|
||||
report, and they are assumed to be safe.
|
||||
|
||||
- Variables have to be declared at the beginning of the block, before
|
||||
the first statement (i.e. -Wdeclaration-after-statement).
|
||||
|
||||
- Declaring a variable in the for loop "for (int i = 0; i < 10; i++)"
|
||||
is still not allowed in this codebase.
|
||||
- Variables have to be declared at the beginning of the block.
|
||||
|
||||
- NULL pointers shall be written as NULL, not as 0.
|
||||
|
||||
@ -432,12 +412,6 @@ For C programs:
|
||||
must be declared with "extern" in header files. However, function
|
||||
declarations should not use "extern", as that is already the default.
|
||||
|
||||
- You can launch gdb around your program using the shorthand GIT_DEBUGGER.
|
||||
Run `GIT_DEBUGGER=1 ./bin-wrappers/git foo` to simply use gdb as is, or
|
||||
run `GIT_DEBUGGER="<debugger> <debugger-args>" ./bin-wrappers/git foo` to
|
||||
use your own debugger and arguments. Example: `GIT_DEBUGGER="ddd --gdb"
|
||||
./bin-wrappers/git log` (See `wrap-for-bin.sh`.)
|
||||
|
||||
For Perl programs:
|
||||
|
||||
- Most of the C guidelines above apply.
|
||||
@ -606,14 +580,11 @@ Writing Documentation:
|
||||
or commands:
|
||||
|
||||
Literal examples (e.g. use of command-line options, command names,
|
||||
branch names, URLs, pathnames (files and directories), configuration and
|
||||
environment variables) must be typeset in monospace (i.e. wrapped with
|
||||
backticks):
|
||||
branch names, configuration and environment variables) must be
|
||||
typeset in monospace (i.e. wrapped with backticks):
|
||||
`--pretty=oneline`
|
||||
`git rev-list`
|
||||
`remote.pushDefault`
|
||||
`http://git.example.com`
|
||||
`.git/config`
|
||||
`GIT_DIR`
|
||||
`HEAD`
|
||||
|
||||
|
@ -7,14 +7,12 @@ ARTICLES =
|
||||
SP_ARTICLES =
|
||||
OBSOLETE_HTML =
|
||||
|
||||
-include GIT-EXCLUDED-PROGRAMS
|
||||
|
||||
MAN1_TXT += $(filter-out \
|
||||
$(patsubst %,%.txt,$(EXCLUDED_PROGRAMS)) \
|
||||
$(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
|
||||
$(wildcard git-*.txt))
|
||||
MAN1_TXT += git.txt
|
||||
MAN1_TXT += gitk.txt
|
||||
MAN1_TXT += gitremote-helpers.txt
|
||||
MAN1_TXT += gitweb.txt
|
||||
|
||||
MAN5_TXT += gitattributes.txt
|
||||
@ -32,7 +30,6 @@ MAN7_TXT += gitdiffcore.txt
|
||||
MAN7_TXT += giteveryday.txt
|
||||
MAN7_TXT += gitglossary.txt
|
||||
MAN7_TXT += gitnamespaces.txt
|
||||
MAN7_TXT += gitremote-helpers.txt
|
||||
MAN7_TXT += gitrevisions.txt
|
||||
MAN7_TXT += gitsubmodules.txt
|
||||
MAN7_TXT += gittutorial-2.txt
|
||||
@ -334,15 +331,6 @@ mergetools-list.made: ../git-mergetool--lib.sh $(wildcard ../mergetools/*)
|
||||
show_tool_names can_merge "* " || :' >mergetools-merge.txt && \
|
||||
date >$@
|
||||
|
||||
TRACK_ASCIIDOCFLAGS = $(subst ','\'',$(ASCIIDOC_COMMON):$(ASCIIDOC_HTML):$(ASCIIDOC_DOCBOOK))
|
||||
|
||||
GIT-ASCIIDOCFLAGS: FORCE
|
||||
@FLAGS='$(TRACK_ASCIIDOCFLAGS)'; \
|
||||
if test x"$$FLAGS" != x"`cat GIT-ASCIIDOCFLAGS 2>/dev/null`" ; then \
|
||||
echo >&2 " * new asciidoc flags"; \
|
||||
echo "$$FLAGS" >GIT-ASCIIDOCFLAGS; \
|
||||
fi
|
||||
|
||||
clean:
|
||||
$(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
|
||||
$(RM) *.texi *.texi+ *.texi++ git.info gitman.info
|
||||
@ -352,14 +340,13 @@ clean:
|
||||
$(RM) SubmittingPatches.txt
|
||||
$(RM) $(cmds_txt) $(mergetools_txt) *.made
|
||||
$(RM) manpage-base-url.xsl
|
||||
$(RM) GIT-ASCIIDOCFLAGS
|
||||
|
||||
$(MAN_HTML): %.html : %.txt asciidoc.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
|
||||
$(MAN_HTML): %.html : %.txt asciidoc.conf
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
$(TXT_TO_HTML) -d manpage -o $@+ $< && \
|
||||
mv $@+ $@
|
||||
|
||||
$(OBSOLETE_HTML): %.html : %.txto asciidoc.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
|
||||
$(OBSOLETE_HTML): %.html : %.txto asciidoc.conf
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
$(TXT_TO_HTML) -o $@+ $< && \
|
||||
mv $@+ $@
|
||||
@ -367,16 +354,16 @@ $(OBSOLETE_HTML): %.html : %.txto asciidoc.conf asciidoctor-extensions.rb GIT-AS
|
||||
manpage-base-url.xsl: manpage-base-url.xsl.in
|
||||
$(QUIET_GEN)sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
|
||||
|
||||
%.1 %.5 %.7 : %.xml manpage-base-url.xsl $(wildcard manpage*.xsl)
|
||||
%.1 %.5 %.7 : %.xml manpage-base-url.xsl
|
||||
$(QUIET_XMLTO)$(RM) $@ && \
|
||||
$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
|
||||
|
||||
%.xml : %.txt asciidoc.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
|
||||
%.xml : %.txt asciidoc.conf
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
$(TXT_TO_XML) -d manpage -o $@+ $< && \
|
||||
mv $@+ $@
|
||||
|
||||
user-manual.xml: user-manual.txt user-manual.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
|
||||
user-manual.xml: user-manual.txt user-manual.conf
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
$(TXT_TO_XML) -d book -o $@+ $< && \
|
||||
mv $@+ $@
|
||||
@ -386,8 +373,7 @@ technical/api-index.txt: technical/api-index-skel.txt \
|
||||
$(QUIET_GEN)cd technical && '$(SHELL_PATH_SQ)' ./api-index.sh
|
||||
|
||||
technical/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
|
||||
$(patsubst %,%.html,$(API_DOCS) technical/api-index $(TECH_DOCS)): %.html : %.txt \
|
||||
asciidoc.conf GIT-ASCIIDOCFLAGS
|
||||
$(patsubst %,%.html,$(API_DOCS) technical/api-index $(TECH_DOCS)): %.html : %.txt asciidoc.conf
|
||||
$(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.txt
|
||||
|
||||
SubmittingPatches.txt: SubmittingPatches
|
||||
@ -444,7 +430,7 @@ $(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
|
||||
WEBDOC_DEST = /pub/software/scm/git/docs
|
||||
|
||||
howto/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
|
||||
$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt GIT-ASCIIDOCFLAGS
|
||||
$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
sed -e '1,/^$$/d' $< | \
|
||||
$(TXT_TO_HTML) - >$@+ && \
|
||||
|
16
Documentation/RelNotes/2.17.6.txt
Normal file
16
Documentation/RelNotes/2.17.6.txt
Normal file
@ -0,0 +1,16 @@
|
||||
Git v2.17.6 Release Notes
|
||||
=========================
|
||||
|
||||
This release addresses the security issues CVE-2021-21300.
|
||||
|
||||
Fixes since v2.17.5
|
||||
-------------------
|
||||
|
||||
* CVE-2021-21300:
|
||||
On case-insensitive file systems with support for symbolic links,
|
||||
if Git is configured globally to apply delay-capable clean/smudge
|
||||
filters (such as Git LFS), Git could be fooled into running
|
||||
remote code during a clone.
|
||||
|
||||
Credit for finding and fixing this vulnerability goes to Matheus
|
||||
Tavares, helped by Johannes Schindelin.
|
6
Documentation/RelNotes/2.18.5.txt
Normal file
6
Documentation/RelNotes/2.18.5.txt
Normal file
@ -0,0 +1,6 @@
|
||||
Git v2.18.5 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.17.6 to address
|
||||
the security issue CVE-2021-21300; see the release notes for that
|
||||
version for details.
|
6
Documentation/RelNotes/2.19.6.txt
Normal file
6
Documentation/RelNotes/2.19.6.txt
Normal file
@ -0,0 +1,6 @@
|
||||
Git v2.19.6 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.17.6 and
|
||||
v2.18.5 to address the security issue CVE-2021-21300; see the
|
||||
release notes for these versions for details.
|
6
Documentation/RelNotes/2.20.5.txt
Normal file
6
Documentation/RelNotes/2.20.5.txt
Normal file
@ -0,0 +1,6 @@
|
||||
Git v2.20.5 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.17.6, v2.18.5
|
||||
and v2.19.6 to address the security issue CVE-2021-21300; see
|
||||
the release notes for these versions for details.
|
6
Documentation/RelNotes/2.21.4.txt
Normal file
6
Documentation/RelNotes/2.21.4.txt
Normal file
@ -0,0 +1,6 @@
|
||||
Git v2.21.4 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.17.6, v2.18.5,
|
||||
v2.19.6 and v2.20.5 to address the security issue CVE-2021-21300;
|
||||
see the release notes for these versions for details.
|
@ -1,597 +0,0 @@
|
||||
Git 2.22 Release Notes
|
||||
======================
|
||||
|
||||
Updates since v2.21
|
||||
-------------------
|
||||
|
||||
Backward compatibility note
|
||||
|
||||
* The filter specification "--filter=sparse:path=<path>" used to
|
||||
create a lazy/partial clone has been removed. Using a blob that is
|
||||
part of the project as sparse specification is still supported with
|
||||
the "--filter=sparse:oid=<blob>" option.
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* "git checkout --no-overlay" can be used to trigger a new mode of
|
||||
checking out paths out of the tree-ish, that allows paths that
|
||||
match the pathspec that are in the current index and working tree
|
||||
and are not in the tree-ish.
|
||||
|
||||
* The %(trailers) formatter in "git log --format=..." now allows to
|
||||
optionally pick trailers selectively by keyword, show only values,
|
||||
etc.
|
||||
|
||||
* Four new configuration variables {author,committer}.{name,email}
|
||||
have been introduced to override user.{name,email} in more specific
|
||||
cases.
|
||||
|
||||
* Command-line completion (in contrib/) learned to tab-complete the
|
||||
"git submodule absorbgitdirs" subcommand.
|
||||
|
||||
* "git branch" learned a new subcommand "--show-current".
|
||||
|
||||
* Output from "diff --cc" did not show the original paths when the
|
||||
merge involved renames. A new option adds the paths in the
|
||||
original trees to the output.
|
||||
|
||||
* The command line completion (in contrib/) has been taught to
|
||||
complete more subcommand parameters.
|
||||
|
||||
* The final report from "git bisect" used to show the suspected
|
||||
culprit using a raw "diff-tree", with which there is no output for
|
||||
a merge commit. This has been updated to use a more modern and
|
||||
human readable output that still is concise enough.
|
||||
|
||||
* "git rebase --rebase-merges" replaces its old "--preserve-merges"
|
||||
option; the latter is now marked as deprecated.
|
||||
|
||||
* Error message given while cloning with --recurse-submodules has
|
||||
been updated.
|
||||
|
||||
* The completion helper code now pays attention to repository-local
|
||||
configuration (when available), which allows --list-cmds to honour
|
||||
a repository specific setting of completion.commands, for example.
|
||||
|
||||
* "git mergetool" learned to offer Sublime Merge (smerge) as one of
|
||||
its backends.
|
||||
|
||||
* A new hook "post-index-change" is called when the on-disk index
|
||||
file changes, which can help e.g. a virtualized working tree
|
||||
implementation.
|
||||
|
||||
* "git difftool" can now run outside a repository.
|
||||
|
||||
* "git checkout -m <other>" was about carrying the differences
|
||||
between HEAD and the working-tree files forward while checking out
|
||||
another branch, and ignored the differences between HEAD and the
|
||||
index. The command has been taught to abort when the index and the
|
||||
HEAD are different.
|
||||
|
||||
* A progress indicator has been added to the "index-pack" step, which
|
||||
often makes users wait for completion during "git clone".
|
||||
|
||||
* "git submodule" learns "set-branch" subcommand that allows the
|
||||
submodule.*.branch settings to be modified.
|
||||
|
||||
* "git merge-recursive" backend recently learned a new heuristics to
|
||||
infer file movement based on how other files in the same directory
|
||||
moved. As this is inherently less robust heuristics than the one
|
||||
based on the content similarity of the file itself (rather than
|
||||
based on what its neighbours are doing), it sometimes gives an
|
||||
outcome unexpected by the end users. This has been toned down to
|
||||
leave the renamed paths in higher/conflicted stages in the index so
|
||||
that the user can examine and confirm the result.
|
||||
|
||||
* "git tag" learned to give an advice suggesting it might be a
|
||||
mistake when creating an annotated or signed tag that points at
|
||||
another tag.
|
||||
|
||||
* The "git pack-objects" command learned to report the number of
|
||||
objects it packed via the trace2 mechanism.
|
||||
|
||||
* The list of conflicted paths shown in the editor while concluding a
|
||||
conflicted merge was shown above the scissors line when the
|
||||
clean-up mode is set to "scissors", even though it was commented
|
||||
out just like the list of updated paths and other information to
|
||||
help the user explain the merge better.
|
||||
|
||||
* The trace2 tracing facility learned to auto-generate a filename
|
||||
when told to log to a directory.
|
||||
|
||||
* "git clone" learned a new --server-option option when talking over
|
||||
the protocol version 2.
|
||||
|
||||
* The connectivity bitmaps are created by default in bare
|
||||
repositories now; also the pathname hash-cache is created by
|
||||
default to avoid making crappy deltas when repacking.
|
||||
|
||||
* "git branch new A...B" and "git checkout -b new A...B" have been
|
||||
taught that in their contexts, the notation A...B means "the merge
|
||||
base between these two commits", just like "git checkout A...B"
|
||||
detaches HEAD at that commit.
|
||||
|
||||
* Update "git difftool" and "git mergetool" so that the combinations
|
||||
of {diff,merge}.{tool,guitool} configuration variables serve as
|
||||
fallback settings of each other in a sensible order.
|
||||
|
||||
* The "--dir-diff" mode of "git difftool" is not useful in "--no-index"
|
||||
mode; they are now explicitly marked as mutually incompatible.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* The diff machinery, one of the oldest parts of the system, which
|
||||
long predates the parse-options API, uses fairly long and complex
|
||||
handcrafted option parser. This is being rewritten to use the
|
||||
parse-options API.
|
||||
|
||||
* The implementation of pack-redundant has been updated for
|
||||
performance in a repository with many packfiles.
|
||||
|
||||
* A more structured way to obtain execution trace has been added.
|
||||
|
||||
* "git prune" has been taught to take advantage of reachability
|
||||
bitmap when able.
|
||||
|
||||
* The command line parser of "git commit-tree" has been rewritten to
|
||||
use the parse-options API.
|
||||
|
||||
* Suggest GitGitGadget instead of submitGit as a way to submit
|
||||
patches based on GitHub PR to us.
|
||||
|
||||
* The test framework has been updated to help developers by making it
|
||||
easier to run most of the tests under different versions of
|
||||
over-the-wire protocols.
|
||||
|
||||
* Dev support update to make it easier to compare two formatted
|
||||
results from our documentation.
|
||||
|
||||
* The scripted "git rebase" implementation has been retired.
|
||||
|
||||
* "git multi-pack-index verify" did not scale well with the number of
|
||||
packfiles, which is being improved.
|
||||
|
||||
* "git stash" has been rewritten in C.
|
||||
|
||||
* The "check-docs" Makefile target to support developers has been
|
||||
updated.
|
||||
|
||||
* The tests have been updated not to rely on the abbreviated option
|
||||
names the parse-options API offers, to protect us from an
|
||||
abbreviated form of an option that used to be unique within the
|
||||
command getting non-unique when a new option that share the same
|
||||
prefix is added.
|
||||
|
||||
* The scripted version of "git rebase -i" wrote and rewrote the todo
|
||||
list many times during a single step of its operation, and the
|
||||
recent C-rewrite made a faithful conversion of the logic to C. The
|
||||
implementation has been updated to carry necessary information
|
||||
around in-core to avoid rewriting the same file over and over
|
||||
unnecessarily.
|
||||
|
||||
* Test framework update to more robustly clean up leftover files and
|
||||
processes after tests are done.
|
||||
|
||||
* Conversion from unsigned char[20] to struct object_id continues.
|
||||
|
||||
* While running "git diff" in a lazy clone, we can upfront know which
|
||||
missing blobs we will need, instead of waiting for the on-demand
|
||||
machinery to discover them one by one. The code learned to aim to
|
||||
achieve better performance by batching the request for these
|
||||
promised blobs.
|
||||
|
||||
* During an initial "git clone --depth=..." partial clone, it is
|
||||
pointless to spend cycles for a large portion of the connectivity
|
||||
check that enumerates and skips promisor objects (which by
|
||||
definition is all objects fetched from the other side). This has
|
||||
been optimized out.
|
||||
|
||||
* Mechanically and systematically drop "extern" from function
|
||||
declaration.
|
||||
|
||||
* The script to aggregate perf result unconditionally depended on
|
||||
libjson-perl even though it did not have to, which has been
|
||||
corrected.
|
||||
|
||||
* The internal implementation of "git rebase -i" has been updated to
|
||||
avoid forking a separate "rebase--interactive" process.
|
||||
|
||||
* Allow DEP and ASLR for Windows build to for security hardening.
|
||||
|
||||
* Performance test framework has been broken and measured the version
|
||||
of Git that happens to be on $PATH, not the specified one to
|
||||
measure, for a while, which has been corrected.
|
||||
|
||||
* Optionally "make coccicheck" can feed multiple source files to
|
||||
spatch, gaining performance while spending more memory.
|
||||
|
||||
* Attempt to use an abbreviated option in "git clone --recurs" is
|
||||
responded by a request to disambiguate between --recursive and
|
||||
--recurse-submodules, which is bad because these two are synonyms.
|
||||
The parse-options API has been extended to define such synonyms
|
||||
more easily and not produce an unnecessary failure.
|
||||
|
||||
* A pair of private functions in http.c that had names similar to
|
||||
fread/fwrite did not return the number of elements, which was found
|
||||
to be confusing.
|
||||
|
||||
* Update collision-detecting SHA-1 code to build properly on HP-UX.
|
||||
|
||||
|
||||
Fixes since v2.21
|
||||
-----------------
|
||||
|
||||
* "git prune-packed" did not notice and complain against excess
|
||||
arguments given from the command line, which now it does.
|
||||
(merge 9b0bd87ed2 rj/prune-packed-excess-args later to maint).
|
||||
|
||||
* Split-index fix.
|
||||
(merge 6e37c8ed3c nd/split-index-null-base-fix later to maint).
|
||||
|
||||
* "git diff --no-index" may still want to access Git goodies like
|
||||
--ext-diff and --textconv, but so far these have been ignored,
|
||||
which has been corrected.
|
||||
(merge 287ab28bfa jk/diff-no-index-initialize later to maint).
|
||||
|
||||
* Unify RPC code for smart http in protocol v0/v1 and v2, which fixes
|
||||
a bug in the latter (lack of authentication retry) and generally
|
||||
improves the code base.
|
||||
(merge a97d00799a jt/http-auth-proto-v2-fix later to maint).
|
||||
|
||||
* The include file compat/bswap.h has been updated so that it is safe
|
||||
to (accidentally) include it more than once.
|
||||
(merge 33aa579a55 jk/guard-bswap-header later to maint).
|
||||
|
||||
* The set of header files used by "make hdr-check" unconditionally
|
||||
included sha256/gcrypt.h, even when it is not used, causing the
|
||||
make target to fail. We now skip it when GCRYPT_SHA256 is not in
|
||||
use.
|
||||
(merge f23aa18e7f rj/hdr-check-gcrypt-fix later to maint).
|
||||
|
||||
* The Makefile uses 'find' utility to enumerate all the *.h header
|
||||
files, which is expensive on platforms with slow filesystems; it
|
||||
now optionally uses "ls-files" if working within a repository,
|
||||
which is a trick similar to how all sources are enumerated to run
|
||||
ETAGS on.
|
||||
(merge 92b88eba9f js/find-lib-h-with-ls-files-when-possible later to maint).
|
||||
|
||||
* "git rebase" that was reimplemented in C did not set ORIG_HEAD
|
||||
correctly, which has been corrected.
|
||||
(merge cbd29ead92 js/rebase-orig-head-fix later to maint).
|
||||
|
||||
* Dev support.
|
||||
(merge f545737144 js/stress-test-ui-tweak later to maint).
|
||||
|
||||
* CFLAGS now can be tweaked when invoking Make while using
|
||||
DEVELOPER=YesPlease; this did not work well before.
|
||||
(merge 6d5d4b4e93 ab/makefile-help-devs-more later to maint).
|
||||
|
||||
* "git fsck --connectivity-only" omits computation necessary to sift
|
||||
the objects that are not reachable from any of the refs into
|
||||
unreachable and dangling. This is now enabled when dangling
|
||||
objects are requested (which is done by default, but can be
|
||||
overridden with the "--no-dangling" option).
|
||||
(merge 8d8c2a5aef jk/fsck-doc later to maint).
|
||||
|
||||
* On platforms where "git fetch" is killed with SIGPIPE (e.g. OSX),
|
||||
the upload-pack that runs on the other end that hangs up after
|
||||
detecting an error could cause "git fetch" to die with a signal,
|
||||
which led to a flaky test. "git fetch" now ignores SIGPIPE during
|
||||
the network portion of its operation (this is not a problem as we
|
||||
check the return status from our write(2)s).
|
||||
(merge 143588949c jk/no-sigpipe-during-network-transport later to maint).
|
||||
|
||||
* A recent update broke "is this object available to us?" check for
|
||||
well-known objects like an empty tree (which should yield "yes",
|
||||
even when there is no on-disk object for an empty tree), which has
|
||||
been corrected.
|
||||
(merge f06ab027ef jk/virtual-objects-do-exist later to maint).
|
||||
|
||||
* The setup code has been cleaned up to avoid leaks around the
|
||||
repository_format structure.
|
||||
(merge e8805af1c3 ma/clear-repository-format later to maint).
|
||||
|
||||
* "git config --type=color ..." is meant to replace "git config --get-color"
|
||||
but there is a slight difference that wasn't documented, which is
|
||||
now fixed.
|
||||
(merge cd8e7593b9 jk/config-type-color-ends-with-lf later to maint).
|
||||
|
||||
* When the "clean" filter can reduce the size of a huge file in the
|
||||
working tree down to a small "token" (a la Git LFS), there is no
|
||||
point in allocating a huge scratch area upfront, but the buffer is
|
||||
sized based on the original file size. The convert mechanism now
|
||||
allocates very minimum and reallocates as it receives the output
|
||||
from the clean filter process.
|
||||
(merge 02156ab031 jh/resize-convert-scratch-buffer later to maint).
|
||||
|
||||
* "git rebase" uses the refs/rewritten/ hierarchy to store its
|
||||
intermediate states, which inherently makes the hierarchy per
|
||||
worktree, but it didn't quite work well.
|
||||
(merge b9317d55a3 nd/rewritten-ref-is-per-worktree later to maint).
|
||||
|
||||
* "git log -L<from>,<to>:<path>" with "-s" did not suppress the patch
|
||||
output as it should. This has been corrected.
|
||||
(merge 05314efaea jk/line-log-with-patch later to maint).
|
||||
|
||||
* "git worktree add" used to do a "find an available name with stat
|
||||
and then mkdir", which is race-prone. This has been fixed by using
|
||||
mkdir and reacting to EEXIST in a loop.
|
||||
(merge 7af01f2367 ms/worktree-add-atomic-mkdir later to maint).
|
||||
|
||||
* Build update for SHA-1 with collision detection.
|
||||
(merge 07a20f569b jk/sha1dc later to maint).
|
||||
|
||||
* Build procedure has been fixed around use of asciidoctor instead of
|
||||
asciidoc.
|
||||
(merge 185f9a0ea0 ma/asciidoctor-fixes later to maint).
|
||||
|
||||
* remote-http transport did not anonymize URLs reported in its error
|
||||
messages at places.
|
||||
(merge c1284b21f2 js/anonymize-remote-curl-diag later to maint).
|
||||
|
||||
* Error messages given from the http transport have been updated so
|
||||
that they can be localized.
|
||||
(merge ed8b4132c8 js/remote-curl-i18n later to maint).
|
||||
|
||||
* "git init" forgot to read platform-specific repository
|
||||
configuration, which made Windows port to ignore settings of
|
||||
core.hidedotfiles, for example.
|
||||
|
||||
* A corner-case object name ambiguity while the sequencer machinery
|
||||
is working (e.g. "rebase -i -x") has been fixed.
|
||||
|
||||
* "git format-patch" did not diagnose an error while opening the
|
||||
output file for the cover-letter, which has been corrected.
|
||||
(merge 2fe95f494c jc/format-patch-error-check later to maint).
|
||||
|
||||
* "git checkout -f <branch>" while the index has an unmerged path
|
||||
incorrectly left some paths in an unmerged state, which has been
|
||||
corrected.
|
||||
|
||||
* A corner case bug in the refs API has been corrected.
|
||||
(merge d3322eb28b jk/refs-double-abort later to maint).
|
||||
|
||||
* Unicode update.
|
||||
(merge 584b62c37b bb/unicode-12 later to maint).
|
||||
|
||||
* dumb-http walker has been updated to share more error recovery
|
||||
strategy with the normal codepath.
|
||||
|
||||
* A buglet in configuration parser has been fixed.
|
||||
(merge 19e7fdaa58 nd/include-if-wildmatch later to maint).
|
||||
|
||||
* The documentation for "git read-tree --reset -u" has been updated.
|
||||
(merge b5a0bd694c nd/read-tree-reset-doc later to maint).
|
||||
|
||||
* Code clean-up around a much-less-important-than-it-used-to-be
|
||||
update_server_info() function.
|
||||
(merge b3223761c8 jk/server-info-rabbit-hole later to maint).
|
||||
|
||||
* The message given when "git commit -a <paths>" errors out has been
|
||||
updated.
|
||||
(merge 5a1dbd48bc nd/commit-a-with-paths-msg-update later to maint).
|
||||
|
||||
* "git cherry-pick --options A..B", after giving control back to the
|
||||
user to ask help resolving a conflicted step, did not honor the
|
||||
options it originally received, which has been corrected.
|
||||
|
||||
* Various glitches in "git gc" around reflog handling have been fixed.
|
||||
|
||||
* The code to read from commit-graph file has been cleanup with more
|
||||
careful error checking before using data read from it.
|
||||
|
||||
* Performance fix around "git fetch" that grabs many refs.
|
||||
(merge b764300912 jt/fetch-pack-wanted-refs-optim later to maint).
|
||||
|
||||
* Protocol v2 support in "git fetch-pack" of shallow clones has been
|
||||
corrected.
|
||||
|
||||
* Performance fix around "git blame", especially in a linear history
|
||||
(which is the norm we should optimize for).
|
||||
(merge f892014943 dk/blame-keep-origin-blob later to maint).
|
||||
|
||||
* Performance fix for "rev-list --parents -- pathspec".
|
||||
(merge 8320b1dbe7 jk/revision-rewritten-parents-in-prio-queue later to maint).
|
||||
|
||||
* Updating the display with progress message has been cleaned up to
|
||||
deal better with overlong messages.
|
||||
(merge 545dc345eb sg/overlong-progress-fix later to maint).
|
||||
|
||||
* "git blame -- path" in a non-bare repository starts blaming from
|
||||
the working tree, and the same command in a bare repository errors
|
||||
out because there is no working tree by definition. The command
|
||||
has been taught to instead start blaming from the commit at HEAD,
|
||||
which is more useful.
|
||||
(merge a544fb08f8 sg/blame-in-bare-start-at-head later to maint).
|
||||
|
||||
* An underallocation in the code to read the untracked cache
|
||||
extension has been corrected.
|
||||
(merge 3a7b45a623 js/untracked-cache-allocfix later to maint).
|
||||
|
||||
* The code is updated to check the result of memory allocation before
|
||||
it is used in more places, by using xmalloc and/or xcalloc calls.
|
||||
(merge 999b951b28 jk/xmalloc later to maint).
|
||||
|
||||
* The GETTEXT_POISON test option has been quite broken ever since it
|
||||
was made runtime-tunable, which has been fixed.
|
||||
(merge f88b9cb603 jc/gettext-test-fix later to maint).
|
||||
|
||||
* Test fix on APFS that is incapable of store paths in Latin-1.
|
||||
(merge 3889149619 js/iso8895-test-on-apfs later to maint).
|
||||
|
||||
* "git submodule foreach <command> --quiet" did not pass the option
|
||||
down correctly, which has been corrected.
|
||||
(merge a282f5a906 nd/submodule-foreach-quiet later to maint).
|
||||
|
||||
* "git send-email" has been taught to use quoted-printable when the
|
||||
payload contains carriage-return. The use of the mechanism is in
|
||||
line with the design originally added the codepath that chooses QP
|
||||
when the payload has overly long lines.
|
||||
(merge 74d76a1701 bc/send-email-qp-cr later to maint).
|
||||
|
||||
* The recently added feature to add addresses that are on
|
||||
anything-by: trailers in 'git send-email' was found to be way too
|
||||
eager and considered nonsense strings as if they can be legitimate
|
||||
beginning of *-by: trailer. This has been tightened.
|
||||
|
||||
* Builds with gettext broke on recent macOS w/ Homebrew, which
|
||||
seems to have stopped including from /usr/local/include; this
|
||||
has been corrected.
|
||||
(merge 92a1377a2a js/macos-gettext-build later to maint).
|
||||
|
||||
* Running "git add" on a repository created inside the current
|
||||
repository is an explicit indication that the user wants to add it
|
||||
as a submodule, but when the HEAD of the inner repository is on an
|
||||
unborn branch, it cannot be added as a submodule. Worse, the files
|
||||
in its working tree can be added as if they are a part of the outer
|
||||
repository, which is not what the user wants. These problems are
|
||||
being addressed.
|
||||
(merge f937bc2f86 km/empty-repo-is-still-a-repo later to maint).
|
||||
|
||||
* "git cherry-pick" run with the "-x" or the "--signoff" option used
|
||||
to (and more importantly, ought to) clean up the commit log message
|
||||
with the --cleanup=space option by default, but this has been
|
||||
broken since late 2017. This has been fixed.
|
||||
|
||||
* When given a tag that points at a commit-ish, "git replace --graft"
|
||||
failed to peel the tag before writing a replace ref, which did not
|
||||
make sense because the old graft mechanism the feature wants to
|
||||
mimic only allowed to replace one commit object with another.
|
||||
This has been fixed.
|
||||
(merge ee521ec4cb cc/replace-graft-peel-tags later to maint).
|
||||
|
||||
* Code tightening against a "wrong" object appearing where an object
|
||||
of a different type is expected, instead of blindly assuming that
|
||||
the connection between objects are correctly made.
|
||||
(merge 97dd512af7 tb/unexpected later to maint).
|
||||
|
||||
* An earlier update for MinGW and Cygwin accidentally broke MSVC build,
|
||||
which has been fixed.
|
||||
(merge 22c3634c0f ss/msvc-path-utils-fix later to maint).
|
||||
|
||||
* %(push:track) token used in the --format option to "git
|
||||
for-each-ref" and friends was not showing the right branch, which
|
||||
has been fixed.
|
||||
(merge c646d0934e dr/ref-filter-push-track-fix later to maint).
|
||||
|
||||
* "make check-docs", "git help -a", etc. did not account for cases
|
||||
where a particular build may deliberately omit some subcommands,
|
||||
which has been corrected.
|
||||
|
||||
* The logic to tell if a Git repository has a working tree protects
|
||||
"git branch -D" from removing the branch that is currently checked
|
||||
out by mistake. The implementation of this logic was broken for
|
||||
repositories with unusual name, which unfortunately is the norm for
|
||||
submodules these days. This has been fixed.
|
||||
(merge f3534c98e4 jt/submodule-repo-is-with-worktree later to maint).
|
||||
|
||||
* AIX shared the same build issues with other BSDs around fileno(fp),
|
||||
which has been corrected.
|
||||
(merge ee662bf5c6 cc/aix-has-fileno-as-a-macro later to maint).
|
||||
|
||||
* The autoconf generated configure script failed to use the right
|
||||
gettext() implementations from -libintl by ignoring useless stub
|
||||
implementations shipped in some C library, which has been
|
||||
corrected.
|
||||
(merge b71e56a683 vk/autoconf-gettext later to maint).
|
||||
|
||||
* Fix index-pack perf test so that the repeated invocations always
|
||||
run in an empty repository, which emulates the initial clone
|
||||
situation better.
|
||||
(merge 775c71e16d jk/p5302-avoid-collision-check-cost later to maint).
|
||||
|
||||
* A "ls-files" that emulates "find" to enumerate files in the working
|
||||
tree resulted in duplicated Makefile rules that caused the build to
|
||||
issue an unnecessary warning during a trial build after merge
|
||||
conflicts are resolved in working tree *.h files but before the
|
||||
resolved results are added to the index. This has been corrected.
|
||||
|
||||
* "git cherry-pick" (and "revert" that shares the same runtime engine)
|
||||
that deals with multiple commits got confused when the final step
|
||||
gets stopped with a conflict and the user concluded the sequence
|
||||
with "git commit". Attempt to fix it by cleaning up the state
|
||||
files used by these commands in such a situation.
|
||||
(merge 4a72486de9 pw/clean-sequencer-state-upon-final-commit later to maint).
|
||||
|
||||
* On a filesystem like HFS+, the names of the refs stored as filesystem
|
||||
entities may become different from what the end-user expects, just
|
||||
like files in the working tree get "renamed". Work around the
|
||||
mismatch by paying attention to the core.precomposeUnicode
|
||||
configuration.
|
||||
(merge 8e712ef6fc en/unicode-in-refnames later to maint).
|
||||
|
||||
* The code to generate the multi-pack idx file was not prepared to
|
||||
see too many packfiles and ran out of open file descriptor, which
|
||||
has been corrected.
|
||||
|
||||
* To run tests for Git SVN, our scripts for CI used to install the
|
||||
git-svn package (in the hope that it would bring in the right
|
||||
dependencies). This has been updated to install the more direct
|
||||
dependency, namely, libsvn-perl.
|
||||
(merge db864306cf sg/ci-libsvn-perl later to maint).
|
||||
|
||||
* "git cvsexportcommit" running on msys did not expect cvsnt showed
|
||||
"cvs status" output with CRLF line endings.
|
||||
|
||||
* The fsmonitor interface got out of sync after the in-core index
|
||||
file gets discarded, which has been corrected.
|
||||
(merge 398a3b0899 js/fsmonitor-refresh-after-discarding-index later to maint).
|
||||
|
||||
* "git status" did not know that the "label" instruction in the
|
||||
todo-list "rebase -i -r" uses should not be shown as a hex object
|
||||
name.
|
||||
|
||||
* A prerequisite check in the test suite to see if a working jgit is
|
||||
available was made more robust.
|
||||
(merge abd0f28983 tz/test-lib-check-working-jgit later to maint).
|
||||
|
||||
* The codepath to parse :<path> that obtains the object name for an
|
||||
indexed object has been made more robust.
|
||||
|
||||
* Code cleanup, docfix, build fix, etc.
|
||||
(merge 11f470aee7 jc/test-yes-doc later to maint).
|
||||
(merge 90503a240b js/doc-symref-in-proto-v1 later to maint).
|
||||
(merge 5c326d1252 jk/unused-params later to maint).
|
||||
(merge 68cabbfda3 dl/doc-submodule-wo-subcommand later to maint).
|
||||
(merge 9903623761 ab/receive-pack-use-after-free-fix later to maint).
|
||||
(merge 1ede45e44b en/merge-options-doc later to maint).
|
||||
(merge 3e14dd2c8e rd/doc-hook-used-in-sample later to maint).
|
||||
(merge c271dc28fd nd/no-more-check-racy later to maint).
|
||||
(merge e6e15194a8 yb/utf-16le-bom-spellfix later to maint).
|
||||
(merge bb101aaf0c rd/attr.c-comment-typofix later to maint).
|
||||
(merge 716a5af812 rd/gc-prune-doc-fix later to maint).
|
||||
(merge 50b206371d js/untravis-windows later to maint).
|
||||
(merge dbf47215e3 js/rebase-recreate-merge later to maint).
|
||||
(merge 56cb2d30f8 dl/reset-doc-no-wrt-abbrev later to maint).
|
||||
(merge 64eca306a2 ja/dir-rename-doc-markup-fix later to maint).
|
||||
(merge af91b0230c dl/ignore-docs later to maint).
|
||||
(merge 59a06e947b ra/t3600-test-path-funcs later to maint).
|
||||
(merge e041d0781b ar/t4150-remove-cruft later to maint).
|
||||
(merge 8d75a1d183 ma/asciidoctor-fixes-more later to maint).
|
||||
(merge 74cc547b0f mh/pack-protocol-doc-fix later to maint).
|
||||
(merge ed31851fa6 ab/doc-misc-typofixes later to maint).
|
||||
(merge a7256debd4 nd/checkout-m-doc-update later to maint).
|
||||
(merge 3a9e1ad78d jt/t5551-protocol-v2-does-not-have-half-auth later to maint).
|
||||
(merge 0b918b75af sg/t5318-cleanup later to maint).
|
||||
(merge 68ed71b53c cb/doco-mono later to maint).
|
||||
(merge a34dca2451 nd/interpret-trailers-docfix later to maint).
|
||||
(merge cf7b857a77 en/fast-import-parsing-fix later to maint).
|
||||
(merge fe61ccbc35 po/rerere-doc-fmt later to maint).
|
||||
(merge ffea0248bf po/describe-not-necessarily-7 later to maint).
|
||||
(merge 7cb7283adb tg/ls-files-debug-format-fix later to maint).
|
||||
(merge f64a21bd82 tz/doc-apostrophe-no-longer-needed later to maint).
|
||||
(merge dbe7b41019 js/t3301-unbreak-notes-test later to maint).
|
||||
(merge d8083e4180 km/t3000-retitle later to maint).
|
||||
(merge 9e4cbccbd7 tz/git-svn-doc-markup-fix later to maint).
|
||||
(merge da9ca955a7 jk/ls-files-doc-markup-fix later to maint).
|
||||
(merge 6804ba3a58 cw/diff-highlight later to maint).
|
||||
(merge 1a8787144d nd/submodule-helper-incomplete-line-fix later to maint).
|
||||
(merge d9ef573837 jk/apache-lsan later to maint).
|
||||
(merge c871fbee2b js/t6500-use-windows-pid-on-mingw later to maint).
|
||||
(merge ce4c7bfc90 bl/t4253-exit-code-from-format-patch later to maint).
|
||||
(merge 397a46db78 js/t5580-unc-alternate-test later to maint).
|
||||
(merge d4907720a2 cm/notes-comment-fix later to maint).
|
||||
(merge 9dde06de13 cb/http-push-null-in-message-fix later to maint).
|
||||
(merge 4c785c0edc js/rebase-config-bitfix later to maint).
|
||||
(merge 8e9fe16c87 es/doc-gitsubmodules-markup later to maint).
|
@ -1,150 +0,0 @@
|
||||
Git 2.22.1 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.22
|
||||
-----------------
|
||||
|
||||
* A relative pathname given to "git init --template=<path> <repo>"
|
||||
ought to be relative to the directory "git init" gets invoked in,
|
||||
but it instead was made relative to the repository, which has been
|
||||
corrected.
|
||||
|
||||
* "git worktree add" used to fail when another worktree connected to
|
||||
the same repository was corrupt, which has been corrected.
|
||||
|
||||
* The ownership rule for the file descriptor to fast-import remote
|
||||
backend was mixed up, leading to unrelated file descriptor getting
|
||||
closed, which has been fixed.
|
||||
|
||||
* "git update-server-info" used to leave stale packfiles in its
|
||||
output, which has been corrected.
|
||||
|
||||
* The server side support for "git fetch" used to show incorrect
|
||||
value for the HEAD symbolic ref when the namespace feature is in
|
||||
use, which has been corrected.
|
||||
|
||||
* "git am -i --resolved" segfaulted after trying to see a commit as
|
||||
if it were a tree, which has been corrected.
|
||||
|
||||
* "git bundle verify" needs to see if prerequisite objects exist in
|
||||
the receiving repository, but the command did not check if we are
|
||||
in a repository upfront, which has been corrected.
|
||||
|
||||
* "git merge --squash" is designed to update the working tree and the
|
||||
index without creating the commit, and this cannot be countermanded
|
||||
by adding the "--commit" option; the command now refuses to work
|
||||
when both options are given.
|
||||
|
||||
* The data collected by fsmonitor was not properly written back to
|
||||
the on-disk index file, breaking t7519 tests occasionally, which
|
||||
has been corrected.
|
||||
|
||||
* Update to Unicode 12.1 width table.
|
||||
|
||||
* The command line to invoke a "git cat-file" command from inside
|
||||
"git p4" was not properly quoted to protect a caret and running a
|
||||
broken command on Windows, which has been corrected.
|
||||
|
||||
* "git request-pull" learned to warn when the ref we ask them to pull
|
||||
from in the local repository and in the published repository are
|
||||
different.
|
||||
|
||||
* When creating a partial clone, the object filtering criteria is
|
||||
recorded for the origin of the clone, but this incorrectly used a
|
||||
hardcoded name "origin" to name that remote; it has been corrected
|
||||
to honor the "--origin <name>" option.
|
||||
|
||||
* "git fetch" into a lazy clone forgot to fetch base objects that are
|
||||
necessary to complete delta in a thin packfile, which has been
|
||||
corrected.
|
||||
|
||||
* The filter_data used in the list-objects-filter (which manages a
|
||||
lazily sparse clone repository) did not use the dynamic array API
|
||||
correctly---'nr' is supposed to point at one past the last element
|
||||
of the array in use. This has been corrected.
|
||||
|
||||
* The description about slashes in gitignore patterns (used to
|
||||
indicate things like "anchored to this level only" and "only
|
||||
matches directories") has been revamped.
|
||||
|
||||
* The URL decoding code has been updated to avoid going past the end
|
||||
of the string while parsing %-<hex>-<hex> sequence.
|
||||
|
||||
* The list of for-each like macros used by clang-format has been
|
||||
updated.
|
||||
|
||||
* "git push --atomic" that goes over the transport-helper (namely,
|
||||
the smart http transport) failed to prevent refs to be pushed when
|
||||
it can locally tell that one of the ref update will fail without
|
||||
having to consult the other end, which has been corrected.
|
||||
|
||||
* "git clean" silently skipped a path when it cannot lstat() it; now
|
||||
it gives a warning.
|
||||
|
||||
* A codepath that reads from GPG for signed object verification read
|
||||
past the end of allocated buffer, which has been fixed.
|
||||
|
||||
* "git rm" to resolve a conflicted path leaked an internal message
|
||||
"needs merge" before actually removing the path, which was
|
||||
confusing. This has been corrected.
|
||||
|
||||
* The "git clone" documentation refers to command line options in its
|
||||
description in the short form; they have been replaced with long
|
||||
forms to make them more recognisable.
|
||||
|
||||
* The configuration variable rebase.rescheduleFailedExec should be
|
||||
effective only while running an interactive rebase and should not
|
||||
affect anything when running a non-interactive one, which was not
|
||||
the case. This has been corrected.
|
||||
|
||||
* "git submodule foreach" did not protect command line options passed
|
||||
to the command to be run in each submodule correctly, when the
|
||||
"--recursive" option was in use.
|
||||
|
||||
* Use "Erase in Line" CSI sequence that is already used in the editor
|
||||
support to clear cruft in the progress output.
|
||||
|
||||
* The codepath to compute delta islands used to spew progress output
|
||||
without giving the callers any way to squelch it, which has been
|
||||
fixed.
|
||||
|
||||
* The code to parse scaled numbers out of configuration files has
|
||||
been made more robust and also easier to follow.
|
||||
|
||||
* An incorrect list of options was cached after command line
|
||||
completion failed (e.g. trying to complete a command that requires
|
||||
a repository outside one), which has been corrected.
|
||||
|
||||
* "git rebase --abort" used to leave refs/rewritten/ when concluding
|
||||
"git rebase -r", which has been corrected.
|
||||
|
||||
* "git stash show 23" used to work, but no more after getting
|
||||
rewritten in C; this regression has been corrected.
|
||||
|
||||
* "git interpret-trailers" always treated '#' as the comment
|
||||
character, regardless of core.commentChar setting, which has been
|
||||
corrected.
|
||||
|
||||
* Code clean-up to avoid signed integer overlaps during binary search.
|
||||
|
||||
* "git checkout -p" needs to selectively apply a patch in reverse,
|
||||
which did not work well.
|
||||
|
||||
* The commit-graph file is now part of the "files that the runtime
|
||||
may keep open file descriptors on, all of which would need to be
|
||||
closed when done with the object store", and the file descriptor to
|
||||
an existing commit-graph file now is closed before "gc" finalizes a
|
||||
new instance to replace it.
|
||||
|
||||
* Code restructuring during 2.20 period broke fetching tags via
|
||||
"import" based transports.
|
||||
|
||||
* We have been trying out a few language features outside c89; the
|
||||
coding guidelines document did not talk about them and instead had
|
||||
a blanket ban against them.
|
||||
|
||||
* The internal diff machinery can be made to read out of bounds while
|
||||
looking for --funcion-context line in a corner case, which has been
|
||||
corrected.
|
||||
|
||||
Also contains various documentation updates, code clean-ups and minor fixups.
|
@ -1,8 +0,0 @@
|
||||
Git v2.22.2 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.14.6, v2.15.4,
|
||||
v2.17.3, v2.20.2 and in v2.21.1, 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, CVE-2019-1387, and
|
||||
CVE-2019-19604; see the release notes for those versions for details.
|
@ -1,5 +0,0 @@
|
||||
Git v2.22.3 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges the security fix that appears in v2.17.4; see
|
||||
the release notes for that version for details.
|
@ -1,5 +0,0 @@
|
||||
Git v2.22.4 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges the security fix that appears in v2.17.5; see
|
||||
the release notes for that version for details.
|
@ -372,15 +372,15 @@ such as "Thanks-to:", "Based-on-patch-by:", or "Mentored-by:".
|
||||
Some parts of the system have dedicated maintainers with their own
|
||||
repositories.
|
||||
|
||||
- `git-gui/` comes from git-gui project, maintained by Pat Thoyts:
|
||||
- 'git-gui/' comes from git-gui project, maintained by Pat Thoyts:
|
||||
|
||||
git://repo.or.cz/git-gui.git
|
||||
|
||||
- `gitk-git/` comes from Paul Mackerras's gitk project:
|
||||
- 'gitk-git/' comes from Paul Mackerras's gitk project:
|
||||
|
||||
git://ozlabs.org/~paulus/gitk
|
||||
|
||||
- `po/` comes from the localization coordinator, Jiang Xin:
|
||||
- 'po/' comes from the localization coordinator, Jiang Xin:
|
||||
|
||||
https://github.com/git-l10n/git-po/
|
||||
|
||||
|
@ -11,12 +11,12 @@ module Git
|
||||
def process(parent, target, attrs)
|
||||
if parent.document.basebackend? 'html'
|
||||
prefix = parent.document.attr('git-relative-html-prefix')
|
||||
%(<a href="#{prefix}#{target}.html">#{target}(#{attrs[1]})</a>)
|
||||
%(<a href="#{prefix}#{target}.html">#{target}(#{attrs[1]})</a>\n)
|
||||
elsif parent.document.basebackend? 'docbook'
|
||||
"<citerefentry>\n" \
|
||||
"<refentrytitle>#{target}</refentrytitle>" \
|
||||
"<manvolnum>#{attrs[1]}</manvolnum>\n" \
|
||||
"</citerefentry>"
|
||||
"</citerefentry>\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -422,8 +422,6 @@ include::config/submodule.txt[]
|
||||
|
||||
include::config/tag.txt[]
|
||||
|
||||
include::config/trace2.txt[]
|
||||
|
||||
include::config/transfer.txt[]
|
||||
|
||||
include::config/uploadarchive.txt[]
|
||||
|
@ -90,6 +90,4 @@ advice.*::
|
||||
waitingForEditor::
|
||||
Print a message to the terminal whenever Git is waiting for
|
||||
editor input from the user.
|
||||
nestedTag::
|
||||
Advice shown if a user attempts to recursively tag a tag object.
|
||||
--
|
||||
|
@ -1,28 +1,18 @@
|
||||
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
|
||||
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.
|
||||
+
|
||||
Note that the first word of an alias does not necessarily have to be a
|
||||
command. It can be a command-line option that will be passed into the
|
||||
invocation of `git`. In particular, this is useful when used with `-c`
|
||||
to pass in one-time configurations or `-p` to force pagination. For example,
|
||||
`loud-rebase = -c commit.verbose=true rebase` can be defined such that
|
||||
running `git loud-rebase` would be equivalent to
|
||||
`git -c commit.verbose=true rebase`. Also, `ps = -p status` would be a
|
||||
helpful alias since `git ps` would paginate the output of `git status`
|
||||
where the original command does not.
|
||||
+
|
||||
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
|
||||
"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`
|
||||
`GIT_PREFIX` is set as returned by running 'git rev-parse --show-prefix'
|
||||
from the original current directory. See linkgit:git-rev-parse[1].
|
||||
|
@ -85,9 +85,9 @@ 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` (deprecated in favor of `merges`), also pass
|
||||
`--preserve-merges` along to 'git rebase' so that locally committed merge
|
||||
commits will not be flattened by running 'git pull'.
|
||||
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.
|
||||
+
|
||||
|
@ -414,7 +414,7 @@ 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`.
|
||||
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].
|
||||
@ -429,8 +429,8 @@ core.askPass::
|
||||
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
|
||||
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
|
||||
@ -438,10 +438,10 @@ core.attributesFile::
|
||||
|
||||
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`.
|
||||
'$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
|
||||
|
@ -10,7 +10,7 @@ diff.autoRefreshIndex::
|
||||
|
||||
diff.dirstat::
|
||||
A comma separated list of `--dirstat` parameters specifying the
|
||||
default behavior of the `--dirstat` option to linkgit:git-diff[1]
|
||||
default behavior of the `--dirstat` option to linkgit:git-diff[1]`
|
||||
and friends. The defaults can be overridden on the command line
|
||||
(using `--dirstat=<param1,param2,...>`). The fallback defaults
|
||||
(when not changed by `diff.dirstat`) are `changes,noncumulative,3`.
|
||||
@ -73,7 +73,7 @@ diff.external::
|
||||
environment variable. The command is called with parameters
|
||||
as described under "git Diffs" in linkgit:git[1]. Note: if
|
||||
you want to use an external diff program only on a subset of
|
||||
your files, you might want to use linkgit:gitattributes[5] instead.
|
||||
your files, you might want to use linkgit:gitattributes[5] instead.
|
||||
|
||||
diff.ignoreSubmodules::
|
||||
Sets the default value of --ignore-submodules. Note that this
|
||||
|
@ -23,9 +23,9 @@ 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.
|
||||
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
|
||||
|
@ -1,42 +1,25 @@
|
||||
gc.aggressiveDepth::
|
||||
The depth parameter used in the delta compression
|
||||
algorithm used by 'git gc --aggressive'. This defaults
|
||||
to 50, which is the default for the `--depth` option when
|
||||
`--aggressive` isn't in use.
|
||||
+
|
||||
See the documentation for the `--depth` option in
|
||||
linkgit:git-repack[1] for more details.
|
||||
to 50.
|
||||
|
||||
gc.aggressiveWindow::
|
||||
The window size parameter used in the delta compression
|
||||
algorithm used by 'git gc --aggressive'. This defaults
|
||||
to 250, which is a much more aggressive window size than
|
||||
the default `--window` of 10.
|
||||
+
|
||||
See the documentation for the `--window` option in
|
||||
linkgit:git-repack[1] for more details.
|
||||
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 not only automatic packing based on the
|
||||
number of loose objects, but any other heuristic `git gc --auto` will
|
||||
otherwise use to determine if there's work to do, such as
|
||||
`gc.autoPackLimit`.
|
||||
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.
|
||||
Setting `gc.auto` to 0 will also disable this.
|
||||
+
|
||||
See the `gc.bigPackThreshold` configuration variable below. When in
|
||||
use, it'll affect how the auto pack limit works.
|
||||
default value is 50. Setting this to 0 disables it.
|
||||
|
||||
gc.autoDetach::
|
||||
Make `git gc --auto` return immediately and run in background
|
||||
@ -53,16 +36,11 @@ 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.
|
||||
+
|
||||
If the amount of memory estimated for `git repack` to run smoothly is
|
||||
not available and `gc.bigPackThreshold` is not set, the largest pack
|
||||
will also be excluded (this is the equivalent of running `git gc` with
|
||||
`--keep-base-pack`).
|
||||
|
||||
gc.writeCommitGraph::
|
||||
If true, then gc will rewrite the commit-graph file when
|
||||
linkgit:git-gc[1] is run. When using `git gc --auto`
|
||||
the commit-graph will be updated if housekeeping is
|
||||
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.
|
||||
|
||||
@ -116,12 +94,6 @@ gc.<pattern>.reflogExpireUnreachable::
|
||||
With "<pattern>" (e.g. "refs/stash")
|
||||
in the middle, the setting applies only to the refs that
|
||||
match the <pattern>.
|
||||
+
|
||||
These types of entries are generally created as a result of using `git
|
||||
commit --amend` or `git rebase` and are the commits prior to the amend
|
||||
or rebase occurring. Since these changes are not part of the current
|
||||
project most users will want to expire them sooner, which is why the
|
||||
default is more aggressive than `gc.reflogExpire`.
|
||||
|
||||
gc.rerereResolved::
|
||||
Records of conflicted merge you resolved earlier are
|
||||
|
@ -2,7 +2,7 @@ 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 $signature - <$file`" is run, and the
|
||||
signature, "`gpg --verify $file - <$signature`" is run, and the
|
||||
program is expected to signal a good signature by exiting with
|
||||
code 0, and to generate an ASCII-armored detached signature, the
|
||||
standard input of "`gpg -bsau $key`" is fed with the contents to be
|
||||
@ -16,5 +16,5 @@ gpg.format::
|
||||
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
|
||||
be used as a legacy synonym for `gpg.openpgp.program`. The default
|
||||
value for `gpg.x509.program` is "gpgsm".
|
||||
|
@ -39,22 +39,9 @@ merge.renameLimit::
|
||||
is turned off.
|
||||
|
||||
merge.renames::
|
||||
Whether Git detects renames. If set to "false", rename detection
|
||||
is disabled. If set to "true", basic rename detection is enabled.
|
||||
Defaults to the value of diff.renames.
|
||||
|
||||
merge.directoryRenames::
|
||||
Whether Git detects directory renames, affecting what happens at
|
||||
merge time to new files added to a directory on one side of
|
||||
history when that directory was renamed on the other side of
|
||||
history. If merge.directoryRenames is set to "false", directory
|
||||
rename detection is disabled, meaning that such new files will be
|
||||
left behind in the old directory. If set to "true", directory
|
||||
rename detection is enabled, meaning that such new files will be
|
||||
moved into the new directory. If set to "conflict", a conflict
|
||||
will be reported for such paths. If merge.renames is false,
|
||||
merge.directoryRenames is ignored and treated as false. Defaults
|
||||
to "conflict".
|
||||
Whether and how Git detects renames. If set to "false",
|
||||
rename detection is disabled. If set to "true", basic rename
|
||||
detection is enabled. Defaults to the value of diff.renames.
|
||||
|
||||
merge.renormalize::
|
||||
Tell Git that canonical representation of files in the
|
||||
|
@ -124,4 +124,6 @@ pack.writeBitmapHashCache::
|
||||
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. Defaults to true.
|
||||
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.
|
||||
|
@ -18,9 +18,9 @@ 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` (deprecated in favor of `merges`), also pass
|
||||
`--preserve-merges` along to 'git rebase' so that locally committed merge
|
||||
commits will not be flattened by running 'git pull'.
|
||||
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.
|
||||
+
|
||||
|
@ -1,9 +1,16 @@
|
||||
rebase.useBuiltin::
|
||||
Unused configuration variable. Used in Git versions 2.20 and
|
||||
2.21 as an escape hatch to enable the legacy shellscript
|
||||
implementation of rebase. Now the built-in rewrite of it in C
|
||||
is always used. Setting this will emit a warning, to alert any
|
||||
remaining users that setting this now does nothing.
|
||||
Set to `false` to use the legacy shellscript implementation of
|
||||
linkgit:git-rebase[1]. Is `true` by default, which means use
|
||||
the built-in rewrite of it in C.
|
||||
+
|
||||
The C rewrite is first included with Git version 2.20. This option
|
||||
serves an an escape hatch to re-enable the legacy version in case any
|
||||
bugs are found in the rewrite. This option and the shellscript version
|
||||
of linkgit:git-rebase[1] will be removed in some future release.
|
||||
+
|
||||
If you find some reason to set this option to `false` other than
|
||||
one-off testing you should report the behavior difference as a bug in
|
||||
git.
|
||||
|
||||
rebase.stat::
|
||||
Whether to show a diffstat of what changed upstream since the last
|
||||
|
@ -24,4 +24,4 @@ repack.writeBitmaps::
|
||||
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 true on bare repos, false otherwise.
|
||||
Defaults to false.
|
||||
|
@ -1,18 +1,3 @@
|
||||
stash.useBuiltin::
|
||||
Set to `false` to use the legacy shell script implementation of
|
||||
linkgit:git-stash[1]. Is `true` by default, which means use
|
||||
the built-in rewrite of it in C.
|
||||
+
|
||||
The C rewrite is first included with Git version 2.22 (and Git for Windows
|
||||
version 2.19). This option serves an an escape hatch to re-enable the
|
||||
legacy version in case any bugs are found in the rewrite. This option and
|
||||
the shell script version of linkgit:git-stash[1] will be removed in some
|
||||
future release.
|
||||
+
|
||||
If you find some reason to set this option to `false`, other than
|
||||
one-off testing, you should report the behavior difference as a bug in
|
||||
Git (see https://git-scm.com/community for details).
|
||||
|
||||
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.
|
||||
|
@ -1,56 +0,0 @@
|
||||
Trace2 config settings are only read from the system and global
|
||||
config files; repository local and worktree config files and `-c`
|
||||
command line arguments are not respected.
|
||||
|
||||
trace2.normalTarget::
|
||||
This variable controls the normal target destination.
|
||||
It may be overridden by the `GIT_TRACE2` environment variable.
|
||||
The following table shows possible values.
|
||||
|
||||
trace2.perfTarget::
|
||||
This variable controls the performance target destination.
|
||||
It may be overridden by the `GIT_TRACE2_PERF` environment variable.
|
||||
The following table shows possible values.
|
||||
|
||||
trace2.eventTarget::
|
||||
This variable controls the event target destination.
|
||||
It may be overridden by the `GIT_TRACE2_EVENT` environment variable.
|
||||
The following table shows possible values.
|
||||
+
|
||||
include::../trace2-target-values.txt[]
|
||||
|
||||
trace2.normalBrief::
|
||||
Boolean. When true `time`, `filename`, and `line` fields are
|
||||
omitted from normal output. May be overridden by the
|
||||
`GIT_TRACE2_BRIEF` environment variable. Defaults to false.
|
||||
|
||||
trace2.perfBrief::
|
||||
Boolean. When true `time`, `filename`, and `line` fields are
|
||||
omitted from PERF output. May be overridden by the
|
||||
`GIT_TRACE2_PERF_BRIEF` environment variable. Defaults to false.
|
||||
|
||||
trace2.eventBrief::
|
||||
Boolean. When true `time`, `filename`, and `line` fields are
|
||||
omitted from event output. May be overridden by the
|
||||
`GIT_TRACE2_EVENT_BRIEF` environment variable. Defaults to false.
|
||||
|
||||
trace2.eventNesting::
|
||||
Integer. Specifies desired depth of nested regions in the
|
||||
event output. Regions deeper than this value will be
|
||||
omitted. May be overridden by the `GIT_TRACE2_EVENT_NESTING`
|
||||
environment variable. Defaults to 2.
|
||||
|
||||
trace2.configParams::
|
||||
A comma-separated list of patterns of "important" config
|
||||
settings that should be recorded in the trace2 output.
|
||||
For example, `core.*,remote.*.url` would cause the trace2
|
||||
output to contain events listing each configured remote.
|
||||
May be overridden by the `GIT_TRACE2_CONFIG_PARAMS` environment
|
||||
variable. Unset by default.
|
||||
|
||||
trace2.destinationDebug::
|
||||
Boolean. When true Git will print error messages when a
|
||||
trace target destination cannot be opened for writing.
|
||||
By default, these errors are suppressed and tracing is
|
||||
silently disabled. May be overridden by the
|
||||
`GIT_TRACE2_DST_DEBUG` environment variable.
|
@ -1,19 +1,12 @@
|
||||
user.name::
|
||||
user.email::
|
||||
author.name::
|
||||
author.email::
|
||||
committer.name::
|
||||
committer.email::
|
||||
The `user.name` and `user.email` variables determine what ends
|
||||
up in the `author` and `committer` field of commit
|
||||
objects.
|
||||
If you need the `author` or `committer` to be different, the
|
||||
`author.name`, `author.email`, `committer.name` or
|
||||
`committer.email` variables can be set.
|
||||
Also, all of these can be overridden by the `GIT_AUTHOR_NAME`,
|
||||
`GIT_AUTHOR_EMAIL`, `GIT_COMMITTER_NAME`,
|
||||
`GIT_COMMITTER_EMAIL` and `EMAIL` environment variables.
|
||||
See linkgit:git-commit-tree[1] for more information.
|
||||
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`
|
||||
|
@ -95,26 +95,12 @@ from the format described above in the following way:
|
||||
. there are more "src" modes and "src" sha1
|
||||
. status is concatenated status characters for each parent
|
||||
. no optional "score" number
|
||||
. tab-separated pathname(s) of the file
|
||||
. single path, only for "dst"
|
||||
|
||||
For `-c` and `--cc`, only the destination or final path is shown even
|
||||
if the file was renamed on any side of history. With
|
||||
`--combined-all-paths`, the name of the path in each parent is shown
|
||||
followed by the name of the path in the merge commit.
|
||||
|
||||
Examples for `-c` and `--cc` without `--combined-all-paths`:
|
||||
------------------------------------------------
|
||||
::100644 100644 100644 fabadb8 cc95eb0 4866510 MM desc.c
|
||||
::100755 100755 100755 52b7a2d 6d1ac04 d2ac7d7 RM bar.sh
|
||||
::100644 100644 100644 e07d6c5 9042e82 ee91881 RR phooey.c
|
||||
------------------------------------------------
|
||||
|
||||
Examples when `--combined-all-paths` added to either `-c` or `--cc`:
|
||||
Example:
|
||||
|
||||
------------------------------------------------
|
||||
::100644 100644 100644 fabadb8 cc95eb0 4866510 MM desc.c desc.c desc.c
|
||||
::100755 100755 100755 52b7a2d 6d1ac04 d2ac7d7 RM foo.sh bar.sh bar.sh
|
||||
::100644 100644 100644 e07d6c5 9042e82 ee91881 RR fooey.c fuey.c phooey.c
|
||||
::100644 100644 100644 fabadb8 cc95eb0 4866510 MM describe.c
|
||||
------------------------------------------------
|
||||
|
||||
Note that 'combined diff' lists only files which were modified from
|
||||
|
@ -143,19 +143,6 @@ copying detection) are designed to work with diff of two
|
||||
Similar to two-line header for traditional 'unified' diff
|
||||
format, `/dev/null` is used to signal created or deleted
|
||||
files.
|
||||
+
|
||||
However, if the --combined-all-paths option is provided, instead of a
|
||||
two-line from-file/to-file you get a N+1 line from-file/to-file header,
|
||||
where N is the number of parents in the merge commit
|
||||
|
||||
--- a/file
|
||||
--- a/file
|
||||
--- a/file
|
||||
+++ b/file
|
||||
+
|
||||
This extended format can be useful if rename or copy detection is
|
||||
active, to allow you to see the original name of the file in different
|
||||
parents.
|
||||
|
||||
4. Chunk header format is modified to prevent people from
|
||||
accidentally feeding it to `patch -p1`. Combined diff format
|
||||
|
@ -36,21 +36,11 @@ endif::git-format-patch[]
|
||||
-U<n>::
|
||||
--unified=<n>::
|
||||
Generate diffs with <n> lines of context instead of
|
||||
the usual three. Implies `--patch`.
|
||||
the usual three.
|
||||
ifndef::git-format-patch[]
|
||||
Implies `-p`.
|
||||
endif::git-format-patch[]
|
||||
|
||||
--output=<file>::
|
||||
Output to a specific file instead of stdout.
|
||||
|
||||
--output-indicator-new=<char>::
|
||||
--output-indicator-old=<char>::
|
||||
--output-indicator-context=<char>::
|
||||
Specify the character used to indicate new, old or context
|
||||
lines in the generated patch. Normally they are '+', '-' and
|
||||
' ' respectively.
|
||||
|
||||
ifndef::git-format-patch[]
|
||||
--raw::
|
||||
ifndef::git-log[]
|
||||
@ -158,7 +148,6 @@ These parameters can also be set individually with `--stat-width=<width>`,
|
||||
number of modified files, as well as number of added and deleted
|
||||
lines.
|
||||
|
||||
-X[<param1,param2,...>]::
|
||||
--dirstat[=<param1,param2,...>]::
|
||||
Output the distribution of relative amount of changes for each
|
||||
sub-directory. The behavior of `--dirstat` can be customized by
|
||||
@ -203,12 +192,6 @@ directories with less than 10% of the total amount of changed files,
|
||||
and accumulating child directory counts in the parent directories:
|
||||
`--dirstat=files,10,cumulative`.
|
||||
|
||||
--cumulative::
|
||||
Synonym for --dirstat=cumulative
|
||||
|
||||
--dirstat-by-file[=<param1,param2>...]::
|
||||
Synonym for --dirstat=files,param1,param2...
|
||||
|
||||
--summary::
|
||||
Output a condensed summary of extended header information
|
||||
such as creations, renames and mode changes.
|
||||
@ -403,9 +386,6 @@ endif::git-format-patch[]
|
||||
Turn off rename detection, even when the configuration
|
||||
file gives the default to do so.
|
||||
|
||||
--[no-]rename-empty::
|
||||
Whether to use empty blobs as rename source.
|
||||
|
||||
ifndef::git-format-patch[]
|
||||
--check::
|
||||
Warn if changes introduce conflict markers or whitespace errors.
|
||||
@ -436,7 +416,7 @@ endif::git-format-patch[]
|
||||
|
||||
--binary::
|
||||
In addition to `--full-index`, output a binary diff that
|
||||
can be applied with `git-apply`. Implies `--patch`.
|
||||
can be applied with `git-apply`.
|
||||
|
||||
--abbrev[=<n>]::
|
||||
Instead of showing the full 40-byte hexadecimal object
|
||||
|
@ -12,16 +12,9 @@ OPTIONS_SPEC="\
|
||||
doc-diff [options] <from> <to> [-- <diff-options>]
|
||||
doc-diff (-c|--clean)
|
||||
--
|
||||
j=n parallel argument to pass to make
|
||||
f force rebuild; do not rely on cached results
|
||||
c,clean cleanup temporary working files
|
||||
from-asciidoc use asciidoc with the 'from'-commit
|
||||
from-asciidoctor use asciidoctor with the 'from'-commit
|
||||
asciidoc use asciidoc with both commits
|
||||
to-asciidoc use asciidoc with the 'to'-commit
|
||||
to-asciidoctor use asciidoctor with the 'to'-commit
|
||||
asciidoctor use asciidoctor with both commits
|
||||
cut-header-footer cut away header and footer
|
||||
j=n parallel argument to pass to make
|
||||
f force rebuild; do not rely on cached results
|
||||
c,clean cleanup temporary working files
|
||||
"
|
||||
SUBDIRECTORY_OK=1
|
||||
. "$(git --exec-path)/git-sh-setup"
|
||||
@ -29,9 +22,6 @@ SUBDIRECTORY_OK=1
|
||||
parallel=
|
||||
force=
|
||||
clean=
|
||||
from_program=
|
||||
to_program=
|
||||
cut_header_footer=
|
||||
while test $# -gt 0
|
||||
do
|
||||
case "$1" in
|
||||
@ -41,22 +31,6 @@ do
|
||||
clean=t ;;
|
||||
-f)
|
||||
force=t ;;
|
||||
--from-asciidoctor)
|
||||
from_program=-asciidoctor ;;
|
||||
--to-asciidoctor)
|
||||
to_program=-asciidoctor ;;
|
||||
--asciidoctor)
|
||||
from_program=-asciidoctor
|
||||
to_program=-asciidoctor ;;
|
||||
--from-asciidoc)
|
||||
from_program=-asciidoc ;;
|
||||
--to-asciidoc)
|
||||
to_program=-asciidoc ;;
|
||||
--asciidoc)
|
||||
from_program=-asciidoc
|
||||
to_program=-asciidoc ;;
|
||||
--cut-header-footer)
|
||||
cut_header_footer=-cut-header-footer ;;
|
||||
--)
|
||||
shift; break ;;
|
||||
*)
|
||||
@ -105,22 +79,6 @@ then
|
||||
ln -s "$dots/config.mak" "$tmp/worktree/config.mak"
|
||||
fi
|
||||
|
||||
construct_makemanflags () {
|
||||
if test "$1" = "-asciidoc"
|
||||
then
|
||||
echo USE_ASCIIDOCTOR=
|
||||
elif test "$1" = "-asciidoctor"
|
||||
then
|
||||
echo USE_ASCIIDOCTOR=YesPlease
|
||||
fi
|
||||
}
|
||||
|
||||
from_makemanflags=$(construct_makemanflags "$from_program") &&
|
||||
to_makemanflags=$(construct_makemanflags "$to_program") &&
|
||||
|
||||
from_dir=$from_oid$from_program$cut_header_footer &&
|
||||
to_dir=$to_oid$to_program$cut_header_footer &&
|
||||
|
||||
# generate_render_makefile <srcdir> <dstdir>
|
||||
generate_render_makefile () {
|
||||
find "$1" -type f |
|
||||
@ -136,7 +94,7 @@ generate_render_makefile () {
|
||||
done
|
||||
}
|
||||
|
||||
# render_tree <committish_oid> <directory_name> <makemanflags>
|
||||
# render_tree <committish_oid>
|
||||
render_tree () {
|
||||
# Skip install-man entirely if we already have an installed directory.
|
||||
# We can't rely on make here, since "install-man" unconditionally
|
||||
@ -144,44 +102,28 @@ render_tree () {
|
||||
# we then can't rely on during the render step). We use "mv" to make
|
||||
# sure we don't get confused by a previous run that failed partway
|
||||
# through.
|
||||
oid=$1 &&
|
||||
dname=$2 &&
|
||||
makemanflags=$3 &&
|
||||
if ! test -d "$tmp/installed/$dname"
|
||||
if ! test -d "$tmp/installed/$1"
|
||||
then
|
||||
git -C "$tmp/worktree" checkout --detach "$oid" &&
|
||||
git -C "$tmp/worktree" checkout --detach "$1" &&
|
||||
make -j$parallel -C "$tmp/worktree" \
|
||||
$makemanflags \
|
||||
GIT_VERSION=omitted \
|
||||
SOURCE_DATE_EPOCH=0 \
|
||||
DESTDIR="$tmp/installed/$dname+" \
|
||||
DESTDIR="$tmp/installed/$1+" \
|
||||
install-man &&
|
||||
mv "$tmp/installed/$dname+" "$tmp/installed/$dname"
|
||||
mv "$tmp/installed/$1+" "$tmp/installed/$1"
|
||||
fi &&
|
||||
|
||||
# As with "installed" above, we skip the render if it's already been
|
||||
# done. So using make here is primarily just about running in
|
||||
# parallel.
|
||||
if ! test -d "$tmp/rendered/$dname"
|
||||
if ! test -d "$tmp/rendered/$1"
|
||||
then
|
||||
generate_render_makefile "$tmp/installed/$dname" \
|
||||
"$tmp/rendered/$dname+" |
|
||||
generate_render_makefile "$tmp/installed/$1" "$tmp/rendered/$1+" |
|
||||
make -j$parallel -f - &&
|
||||
mv "$tmp/rendered/$dname+" "$tmp/rendered/$dname"
|
||||
|
||||
if test "$cut_header_footer" = "-cut-header-footer"
|
||||
then
|
||||
for f in $(find "$tmp/rendered/$dname" -type f)
|
||||
do
|
||||
tail -n +3 "$f" | head -n -2 |
|
||||
sed -e '1{/^$/d}' -e '${/^$/d}' >"$f+" &&
|
||||
mv "$f+" "$f" ||
|
||||
return 1
|
||||
done
|
||||
fi
|
||||
mv "$tmp/rendered/$1+" "$tmp/rendered/$1"
|
||||
fi
|
||||
}
|
||||
|
||||
render_tree $from_oid $from_dir $from_makemanflags &&
|
||||
render_tree $to_oid $to_dir $to_makemanflags &&
|
||||
git -C $tmp/rendered diff --no-index "$@" $from_dir $to_dir
|
||||
render_tree $from_oid &&
|
||||
render_tree $to_oid &&
|
||||
git -C $tmp/rendered diff --no-index "$@" $from_oid $to_oid
|
||||
|
@ -216,8 +216,7 @@ endif::git-pull[]
|
||||
--server-option=<option>::
|
||||
Transmit the given string to the server when communicating using
|
||||
protocol version 2. The given string must not contain a NUL or LF
|
||||
character. The server's handling of server options, including
|
||||
unknown ones, is server-specific.
|
||||
character.
|
||||
When multiple `--server-option=<option>` are given, they are all
|
||||
sent to the other side in the order listed on the command line.
|
||||
|
||||
|
@ -193,6 +193,15 @@ for "git add --no-all <pathspec>...", i.e. ignored removed files.
|
||||
for command-line options).
|
||||
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
|
||||
The optional configuration variable `core.excludesFile` indicates a path to a
|
||||
file containing patterns of file names to exclude from git-add, similar to
|
||||
$GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to
|
||||
those in info/exclude. See linkgit:gitignore[5].
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
|
@ -99,11 +99,6 @@ default. You can use `--no-utf8` to override this.
|
||||
am.threeWay configuration variable. For more information,
|
||||
see am.threeWay in linkgit:git-config[1].
|
||||
|
||||
--rerere-autoupdate::
|
||||
--no-rerere-autoupdate::
|
||||
Allow the rerere mechanism to update the index with the
|
||||
result of auto-conflict resolution if possible.
|
||||
|
||||
--ignore-space-change::
|
||||
--ignore-whitespace::
|
||||
--whitespace=<option>::
|
||||
|
@ -8,15 +8,12 @@ git-branch - List, create, or delete branches
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git branch' [--color[=<when>] | --no-color]
|
||||
[-v [--abbrev=<length> | --no-abbrev]]
|
||||
[--show-current]
|
||||
'git branch' [--color[=<when>] | --no-color] [-r | -a]
|
||||
[--list] [-v [--abbrev=<length> | --no-abbrev]]
|
||||
[--column[=<options>] | --no-column] [--sort=<key>]
|
||||
[(--merged | --no-merged) [<commit>]]
|
||||
[--contains [<commit]] [--no-contains [<commit>]]
|
||||
[--points-at <object>] [--format=<format>]
|
||||
[(-r | --remotes) | (-a | --all)]
|
||||
[--list] [<pattern>...]
|
||||
[--points-at <object>] [--format=<format>] [<pattern>...]
|
||||
'git branch' [--track | --no-track] [-f] <branchname> [<start-point>]
|
||||
'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
|
||||
'git branch' --unset-upstream [<branchname>]
|
||||
@ -31,15 +28,11 @@ DESCRIPTION
|
||||
If `--list` is given, or if there are no non-option arguments, existing
|
||||
branches are listed; the current branch will be highlighted with an
|
||||
asterisk. Option `-r` causes the remote-tracking branches to be listed,
|
||||
and option `-a` shows both local and remote branches.
|
||||
|
||||
If a `<pattern>`
|
||||
and option `-a` shows both local and remote branches. If a `<pattern>`
|
||||
is given, it is used as a shell wildcard to restrict the output to
|
||||
matching branches. If multiple patterns are given, a branch is shown if
|
||||
it matches any of the patterns.
|
||||
|
||||
Note that when providing a
|
||||
`<pattern>`, you must use `--list`; otherwise the command may be interpreted
|
||||
it matches any of the patterns. Note that when providing a
|
||||
`<pattern>`, you must use `--list`; otherwise the command is interpreted
|
||||
as branch creation.
|
||||
|
||||
With `--contains`, shows only the branches that contain the named commit
|
||||
@ -52,11 +45,7 @@ argument is missing it defaults to `HEAD` (i.e. the tip of the current
|
||||
branch).
|
||||
|
||||
The command's second form creates a new branch head named <branchname>
|
||||
which points to the current `HEAD`, or <start-point> if given. As a
|
||||
special case, for <start-point>, you may use `"A...B"` as a shortcut for
|
||||
the merge base of `A` and `B` if there is exactly one merge base. You
|
||||
can leave out at most one of `A` and `B`, in which case it defaults to
|
||||
`HEAD`.
|
||||
which points to the current `HEAD`, or <start-point> if given.
|
||||
|
||||
Note that this will create the new branch, but it will not switch the
|
||||
working tree to it; use "git checkout <newbranch>" to switch to the
|
||||
@ -160,12 +149,10 @@ This option is only applicable in non-verbose mode.
|
||||
-r::
|
||||
--remotes::
|
||||
List or delete (if used with -d) the remote-tracking branches.
|
||||
Combine with `--list` to match the optional pattern(s).
|
||||
|
||||
-a::
|
||||
--all::
|
||||
List both remote-tracking branches and local branches.
|
||||
Combine with `--list` to match optional pattern(s).
|
||||
|
||||
-l::
|
||||
--list::
|
||||
@ -173,10 +160,6 @@ This option is only applicable in non-verbose mode.
|
||||
branch --list 'maint-*'`, list only the branches that match
|
||||
the pattern(s).
|
||||
|
||||
--show-current::
|
||||
Print the name of the current branch. In detached HEAD state,
|
||||
nothing is printed.
|
||||
|
||||
-v::
|
||||
-vv::
|
||||
--verbose::
|
||||
@ -331,18 +314,6 @@ $ git branch -D test <2>
|
||||
<2> Delete the "test" branch even if the "master" branch (or whichever branch
|
||||
is currently checked out) does not have all commits from the test branch.
|
||||
|
||||
Listing branches from a specific remote::
|
||||
+
|
||||
------------
|
||||
$ git branch -r -l '<remote>/<pattern>' <1>
|
||||
$ git for-each-ref 'refs/remotes/<remote>/<pattern>' <2>
|
||||
------------
|
||||
+
|
||||
<1> Using `-a` would conflate <remote> with any local branches you happen to
|
||||
have been prefixed with the same <remote> pattern.
|
||||
<2> `for-each-ref` can take a wide range of options. See linkgit:git-for-each-ref[1]
|
||||
|
||||
Patterns will normally need quoting.
|
||||
|
||||
NOTES
|
||||
-----
|
||||
|
@ -242,8 +242,6 @@ should result in deletion of the path).
|
||||
+
|
||||
When checking out paths from the index, this option lets you recreate
|
||||
the conflicted merge in the specified paths.
|
||||
+
|
||||
When switching branches with `--merge`, staged changes may be lost.
|
||||
|
||||
--conflict=<style>::
|
||||
The same as --merge option above, but changes the way the
|
||||
@ -262,9 +260,6 @@ When switching branches with `--merge`, staged changes may be lost.
|
||||
This means that you can use `git checkout -p` to selectively discard
|
||||
edits from your current working tree. See the ``Interactive Mode''
|
||||
section of linkgit:git-add[1] to learn how to operate the `--patch` mode.
|
||||
+
|
||||
Note that this option uses the no overlay mode by default (see also
|
||||
`--[no-]overlay`), and currently doesn't support overlay mode.
|
||||
|
||||
--ignore-other-worktrees::
|
||||
`git checkout` refuses when the wanted ref is already checked
|
||||
@ -285,13 +280,6 @@ Note that this option uses the no overlay mode by default (see also
|
||||
Do not attempt to create a branch if a remote tracking branch
|
||||
of the same name exists.
|
||||
|
||||
--[no-]overlay::
|
||||
In the default overlay mode, `git checkout` never
|
||||
removes files from the index or the working tree. When
|
||||
specifying `--no-overlay`, files that appear in the index and
|
||||
working tree, but not in <tree-ish> are removed, to make them
|
||||
match <tree-ish> exactly.
|
||||
|
||||
<branch>::
|
||||
Branch to checkout; if it refers to a branch (i.e., a name that,
|
||||
when prepended with "refs/heads/", is a valid ref), then that
|
||||
@ -313,10 +301,6 @@ leave out at most one of `A` and `B`, in which case it defaults to `HEAD`.
|
||||
<start_point>::
|
||||
The name of a commit at which to start the new branch; see
|
||||
linkgit:git-branch[1] for details. Defaults to HEAD.
|
||||
+
|
||||
As a special case, you may use `"A...B"` as a shortcut for the
|
||||
merge base of `A` and `B` if there is exactly one merge base. You can
|
||||
leave out at most one of `A` and `B`, in which case it defaults to `HEAD`.
|
||||
|
||||
<tree-ish>::
|
||||
Tree to checkout from (when paths are given). If not specified,
|
||||
|
@ -57,13 +57,6 @@ OPTIONS
|
||||
With this option, 'git cherry-pick' will let you edit the commit
|
||||
message prior to committing.
|
||||
|
||||
--cleanup=<mode>::
|
||||
This option determines how the commit message will be cleaned up before
|
||||
being passed on to the commit machinery. See linkgit:git-commit[1] for more
|
||||
details. In particular, if the '<mode>' is given a value of `scissors`,
|
||||
scissors will be appended to `MERGE_MSG` before being passed on in the case
|
||||
of a conflict.
|
||||
|
||||
-x::
|
||||
When recording the commit, append a line that says
|
||||
"(cherry picked from commit ...)" to the original commit
|
||||
@ -155,11 +148,6 @@ effect to your index in a row.
|
||||
Pass the merge strategy-specific option through to the
|
||||
merge strategy. See linkgit:git-merge[1] for details.
|
||||
|
||||
--rerere-autoupdate::
|
||||
--no-rerere-autoupdate::
|
||||
Allow the rerere mechanism to update the index with the
|
||||
result of auto-conflict resolution if possible.
|
||||
|
||||
SEQUENCER SUBCOMMANDS
|
||||
---------------------
|
||||
include::sequencer.txt[]
|
||||
|
@ -55,13 +55,14 @@ OPTIONS
|
||||
|
||||
-e <pattern>::
|
||||
--exclude=<pattern>::
|
||||
Use the given exclude pattern in addition to the standard ignore rules
|
||||
(see linkgit:gitignore[5]).
|
||||
In addition to those found in .gitignore (per directory) and
|
||||
$GIT_DIR/info/exclude, also consider these patterns to be in the
|
||||
set of the ignore rules in effect.
|
||||
|
||||
-x::
|
||||
Don't use the standard ignore rules (see linkgit:gitignore[5]), but
|
||||
still use the ignore rules given with `-e` options from the command
|
||||
line. This allows removing all untracked
|
||||
Don't use the standard ignore rules read from .gitignore (per
|
||||
directory) and $GIT_DIR/info/exclude, but do still use the ignore
|
||||
rules given with `-e` options. This allows removing all untracked
|
||||
files, including build products. This can be used (possibly in
|
||||
conjunction with 'git reset') to create a pristine
|
||||
working directory to test a clean build.
|
||||
|
@ -22,7 +22,7 @@ DESCRIPTION
|
||||
|
||||
Clones a repository into a newly created directory, creates
|
||||
remote-tracking branches for each branch in the cloned repository
|
||||
(visible using `git branch --remotes`), and creates and checks out an
|
||||
(visible using `git branch -r`), and creates and checks out an
|
||||
initial branch that is forked from the cloned repository's
|
||||
currently active branch.
|
||||
|
||||
@ -40,8 +40,8 @@ configuration variables.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-l::
|
||||
--local::
|
||||
-l::
|
||||
When the repository to clone from is on a local machine,
|
||||
this flag bypasses the normal "Git aware" transport
|
||||
mechanism and clones the repository by making a copy of
|
||||
@ -62,8 +62,8 @@ Git transport instead.
|
||||
directory instead of using hardlinks. This may be desirable
|
||||
if you are trying to make a back-up of your repository.
|
||||
|
||||
-s::
|
||||
--shared::
|
||||
-s::
|
||||
When the repository to clone is on the local machine,
|
||||
instead of using hard links, automatically setup
|
||||
`.git/objects/info/alternates` to share the objects
|
||||
@ -80,13 +80,13 @@ which automatically call `git gc --auto`. (See linkgit:git-gc[1].)
|
||||
If these objects are removed and were referenced by the cloned repository,
|
||||
then the cloned repository will become corrupt.
|
||||
+
|
||||
Note that running `git repack` without the `--local` option in a repository
|
||||
cloned with `--shared` will copy objects from the source repository into a pack
|
||||
in the cloned repository, removing the disk space savings of `clone --shared`.
|
||||
It is safe, however, to run `git gc`, which uses the `--local` option by
|
||||
Note that running `git repack` without the `-l` option in a repository
|
||||
cloned with `-s` will copy objects from the source repository into a pack
|
||||
in the cloned repository, removing the disk space savings of `clone -s`.
|
||||
It is safe, however, to run `git gc`, which uses the `-l` option by
|
||||
default.
|
||||
+
|
||||
If you want to break the dependency of a repository cloned with `--shared` on
|
||||
If you want to break the dependency of a repository cloned with `-s` on
|
||||
its source repository, you can simply run `git repack -a` to copy all
|
||||
objects from the source repository into a pack in the cloned repository.
|
||||
|
||||
@ -115,39 +115,31 @@ objects from the source repository into a pack in the cloned repository.
|
||||
same repository, and this option can be used to stop the
|
||||
borrowing.
|
||||
|
||||
-q::
|
||||
--quiet::
|
||||
-q::
|
||||
Operate quietly. Progress is not reported to the standard
|
||||
error stream.
|
||||
|
||||
-v::
|
||||
--verbose::
|
||||
-v::
|
||||
Run verbosely. Does not affect the reporting of progress status
|
||||
to the standard error stream.
|
||||
|
||||
--progress::
|
||||
Progress status is reported on the standard error stream
|
||||
by default when it is attached to a terminal, unless `--quiet`
|
||||
by default when it is attached to a terminal, unless -q
|
||||
is specified. This flag forces progress status even if the
|
||||
standard error stream is not directed to a terminal.
|
||||
|
||||
--server-option=<option>::
|
||||
Transmit the given string to the server when communicating using
|
||||
protocol version 2. The given string must not contain a NUL or LF
|
||||
character. The server's handling of server options, including
|
||||
unknown ones, is server-specific.
|
||||
When multiple `--server-option=<option>` are given, they are all
|
||||
sent to the other side in the order listed on the command line.
|
||||
|
||||
-n::
|
||||
--no-checkout::
|
||||
-n::
|
||||
No checkout of HEAD is performed after the clone is complete.
|
||||
|
||||
--bare::
|
||||
Make a 'bare' Git repository. That is, instead of
|
||||
creating `<directory>` and placing the administrative
|
||||
files in `<directory>/.git`, make the `<directory>`
|
||||
itself the `$GIT_DIR`. This obviously implies the `--no-checkout`
|
||||
itself the `$GIT_DIR`. This obviously implies the `-n`
|
||||
because there is nowhere to check out the working tree.
|
||||
Also the branch heads at the remote are copied directly
|
||||
to corresponding local branch heads, without mapping
|
||||
@ -163,13 +155,13 @@ objects from the source repository into a pack in the cloned repository.
|
||||
that all these refs are overwritten by a `git remote update` in the
|
||||
target repository.
|
||||
|
||||
-o <name>::
|
||||
--origin <name>::
|
||||
-o <name>::
|
||||
Instead of using the remote name `origin` to keep track
|
||||
of the upstream repository, use `<name>`.
|
||||
|
||||
-b <name>::
|
||||
--branch <name>::
|
||||
-b <name>::
|
||||
Instead of pointing the newly created HEAD to the branch pointed
|
||||
to by the cloned repository's HEAD, point to `<name>` branch
|
||||
instead. In a non-bare repository, this is the branch that will
|
||||
@ -177,8 +169,8 @@ objects from the source repository into a pack in the cloned repository.
|
||||
`--branch` can also take tags and detaches the HEAD at that commit
|
||||
in the resulting repository.
|
||||
|
||||
-u <upload-pack>::
|
||||
--upload-pack <upload-pack>::
|
||||
-u <upload-pack>::
|
||||
When given, and the repository to clone from is accessed
|
||||
via ssh, this specifies a non-default path for the command
|
||||
run on the other end.
|
||||
@ -187,8 +179,8 @@ objects from the source repository into a pack in the cloned repository.
|
||||
Specify the directory from which templates will be used;
|
||||
(See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)
|
||||
|
||||
-c <key>=<value>::
|
||||
--config <key>=<value>::
|
||||
-c <key>=<value>::
|
||||
Set a configuration variable in the newly-created repository;
|
||||
this takes effect immediately after the repository is
|
||||
initialized, but before the remote history is fetched or any
|
||||
|
@ -23,10 +23,6 @@ Creates a new commit object based on the provided tree object and
|
||||
emits the new commit object id on stdout. The log message is read
|
||||
from the standard input, unless `-m` or `-F` options are given.
|
||||
|
||||
The `-m` and `-F` options can be given any number of times, in any
|
||||
order. The commit log message will be composed in the order in which
|
||||
the options are given.
|
||||
|
||||
A commit object may have any number of parents. With exactly one
|
||||
parent, it is an ordinary commit. Having more than one parent makes
|
||||
the commit a merge between several lines of history. Initial (root)
|
||||
@ -45,7 +41,7 @@ state was.
|
||||
OPTIONS
|
||||
-------
|
||||
<tree>::
|
||||
An existing tree object.
|
||||
An existing tree object
|
||||
|
||||
-p <parent>::
|
||||
Each `-p` indicates the id of a parent commit object.
|
||||
@ -56,8 +52,7 @@ OPTIONS
|
||||
|
||||
-F <file>::
|
||||
Read the commit log message from the given file. Use `-` to read
|
||||
from the standard input. This can be given more than once and the
|
||||
content of each file becomes its own paragraph.
|
||||
from the standard input.
|
||||
|
||||
-S[<keyid>]::
|
||||
--gpg-sign[=<keyid>]::
|
||||
|
@ -126,7 +126,7 @@ See also <<FILES>>.
|
||||
|
||||
--local::
|
||||
For writing options: write to the repository `.git/config` file.
|
||||
This is the default behavior.
|
||||
This is the default behavior.
|
||||
+
|
||||
For reading options: read only from the repository `.git/config` rather than
|
||||
from all available files.
|
||||
@ -240,9 +240,7 @@ Valid `<type>`'s include:
|
||||
output. The optional `default` parameter is used instead, if
|
||||
there is no color configured for `name`.
|
||||
+
|
||||
`--type=color [--default=<default>]` is preferred over `--get-color`
|
||||
(but note that `--get-color` will omit the trailing newline printed by
|
||||
`--type=color`).
|
||||
`--type=color [--default=<default>]` is preferred over `--get-color`.
|
||||
|
||||
-e::
|
||||
--edit::
|
||||
|
@ -57,7 +57,7 @@ OPTIONS
|
||||
This is sort of "Git root" - if you run 'git daemon' with
|
||||
'--base-path=/srv/git' on example.com, then if you later try to pull
|
||||
'git://example.com/hello.git', 'git daemon' will interpret the path
|
||||
as `/srv/git/hello.git`.
|
||||
as '/srv/git/hello.git'.
|
||||
|
||||
--base-path-relaxed::
|
||||
If --base-path is enabled and repo lookup fails, with this option
|
||||
|
@ -139,7 +139,7 @@ at the end.
|
||||
|
||||
The number of additional commits is the number
|
||||
of commits which would be displayed by "git log v1.0.4..parent".
|
||||
The hash suffix is "-g" + unambiguous abbreviation for the tip commit
|
||||
The hash suffix is "-g" + 7-char abbreviation for the tip commit
|
||||
of parent (which was `2414721b194453f058079d897d13c4e377f92dc6`).
|
||||
The "g" prefix stands for "git" and is used to allow describing the version of
|
||||
a software depending on the SCM the software is managed with. This is useful
|
||||
|
@ -10,8 +10,8 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git diff-tree' [--stdin] [-m] [-s] [-v] [--no-commit-id] [--pretty]
|
||||
[-t] [-r] [-c | --cc] [--combined-all-paths] [--root]
|
||||
[<common diff options>] <tree-ish> [<tree-ish>] [<path>...]
|
||||
[-t] [-r] [-c | --cc] [--root] [<common diff options>]
|
||||
<tree-ish> [<tree-ish>] [<path>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -105,20 +105,12 @@ include::pretty-options.txt[]
|
||||
itself and the commit log message is not shown, just like in any other
|
||||
"empty diff" case.
|
||||
|
||||
--combined-all-paths::
|
||||
This flag causes combined diffs (used for merge commits) to
|
||||
list the name of the file from all parents. It thus only has
|
||||
effect when -c or --cc are specified, and is likely only
|
||||
useful if filename changes are detected (i.e. when either
|
||||
rename or copy detection have been requested).
|
||||
|
||||
--always::
|
||||
Show the commit itself and the commit log message even
|
||||
if the diff itself is empty.
|
||||
|
||||
|
||||
include::pretty-formats.txt[]
|
||||
|
||||
include::diff-format.txt[]
|
||||
|
||||
GIT
|
||||
|
@ -90,9 +90,7 @@ instead. `--no-symlinks` is the default on Windows.
|
||||
When 'git-difftool' is invoked with the `-g` or `--gui` option
|
||||
the default diff tool will be read from the configured
|
||||
`diff.guitool` variable instead of `diff.tool`. The `--no-gui`
|
||||
option can be used to override this setting. If `diff.guitool`
|
||||
is not set, we will fallback in the order of `merge.guitool`,
|
||||
`diff.tool`, `merge.tool` until a tool is found.
|
||||
option can be used to override this setting.
|
||||
|
||||
--[no-]trust-exit-code::
|
||||
'git-difftool' invokes a diff tool individually on each file.
|
||||
|
@ -437,12 +437,7 @@ However it is recommended that a `filedeleteall` command precede
|
||||
all `filemodify`, `filecopy`, `filerename` and `notemodify` commands in
|
||||
the same commit, as `filedeleteall` wipes the branch clean (see below).
|
||||
|
||||
The `LF` after the command is optional (it used to be required). Note
|
||||
that for reasons of backward compatibility, if the commit ends with a
|
||||
`data` command (i.e. it has has no `from`, `merge`, `filemodify`,
|
||||
`filedelete`, `filecopy`, `filerename`, `filedeleteall` or
|
||||
`notemodify` commands) then two `LF` commands may appear at the end of
|
||||
the command instead of just one.
|
||||
The `LF` after the command is optional (it used to be required).
|
||||
|
||||
`author`
|
||||
^^^^^^^^
|
||||
@ -986,6 +981,10 @@ might want to refer to in their commit messages.
|
||||
'get-mark' SP ':' <idnum> LF
|
||||
....
|
||||
|
||||
This command can be used anywhere in the stream that comments are
|
||||
accepted. In particular, the `get-mark` command can be used in the
|
||||
middle of a commit but not in the middle of a `data` command.
|
||||
|
||||
See ``Responses To Commands'' below for details about how to read
|
||||
this output safely.
|
||||
|
||||
@ -1012,10 +1011,9 @@ Output uses the same format as `git cat-file --batch`:
|
||||
<contents> LF
|
||||
====
|
||||
|
||||
This command can be used where a `filemodify` directive can appear,
|
||||
allowing it to be used in the middle of a commit. For a `filemodify`
|
||||
using an inline directive, it can also appear right before the `data`
|
||||
directive.
|
||||
This command can be used anywhere in the stream that comments are
|
||||
accepted. In particular, the `cat-blob` command can be used in the
|
||||
middle of a commit but not in the middle of a `data` command.
|
||||
|
||||
See ``Responses To Commands'' below for details about how to read
|
||||
this output safely.
|
||||
@ -1028,8 +1026,8 @@ printing a blob from the active commit (with `cat-blob`) or copying a
|
||||
blob or tree from a previous commit for use in the current one (with
|
||||
`filemodify`).
|
||||
|
||||
The `ls` command can also be used where a `filemodify` directive can
|
||||
appear, allowing it to be used in the middle of a commit.
|
||||
The `ls` command can be used anywhere in the stream that comments are
|
||||
accepted, including the middle of a commit.
|
||||
|
||||
Reading from the active commit::
|
||||
This form can only be used in the middle of a `commit`.
|
||||
@ -1413,13 +1411,6 @@ deltas are suboptimal (see above) then also adding the `-f` option
|
||||
to force recomputation of all deltas can significantly reduce the
|
||||
final packfile size (30-50% smaller can be quite typical).
|
||||
|
||||
Instead of running `git repack` you can also run `git gc
|
||||
--aggressive`, which will also optimize other things after an import
|
||||
(e.g. pack loose refs). As noted in the "AGGRESSIVE" section in
|
||||
linkgit:git-gc[1] the `--aggressive` option will find new deltas with
|
||||
the `-f` option to linkgit:git-repack[1]. For the reasons elaborated
|
||||
on above using `--aggressive` after a fast-import is one of the few
|
||||
cases where it's known to be worthwhile.
|
||||
|
||||
MEMORY UTILIZATION
|
||||
------------------
|
||||
|
@ -189,7 +189,7 @@ to other tags will be rewritten to point to the underlying commit.
|
||||
rewriting. When applying a tree filter, the command needs to
|
||||
temporarily check out the tree to some directory, which may consume
|
||||
considerable space in case of large projects. By default it
|
||||
does this in the `.git-rewrite/` directory but you can override
|
||||
does this in the '.git-rewrite/' directory but you can override
|
||||
that choice by this parameter.
|
||||
|
||||
-f::
|
||||
|
@ -62,17 +62,9 @@ index file, all SHA-1 references in `refs` namespace, and all reflogs
|
||||
with --no-full.
|
||||
|
||||
--connectivity-only::
|
||||
Check only the connectivity of reachable objects, making sure
|
||||
that any objects referenced by a reachable tag, commit, or tree
|
||||
is present. This speeds up the operation by avoiding reading
|
||||
blobs entirely (though it does still check that referenced blobs
|
||||
exist). This will detect corruption in commits and trees, but
|
||||
not do any semantic checks (e.g., for format errors). Corruption
|
||||
in blob objects will not be detected at all.
|
||||
+
|
||||
Unreachable tags, commits, and trees will also be accessed to find the
|
||||
tips of dangling segments of history. Use `--no-dangling` if you don't
|
||||
care about this output and want to speed it up further.
|
||||
Check only the connectivity of tags, commits and tree objects. By
|
||||
avoiding to unpack blobs, this speeds up the operation, at the
|
||||
expense of missing corrupt objects or other problematic issues.
|
||||
|
||||
--strict::
|
||||
Enable more strict checking, namely to catch a file mode
|
||||
@ -104,11 +96,6 @@ care about this output and want to speed it up further.
|
||||
progress status even if the standard error stream is not
|
||||
directed to a terminal.
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
|
||||
include::config/fsck.txt[]
|
||||
|
||||
DISCUSSION
|
||||
----------
|
||||
|
||||
|
@ -20,16 +20,17 @@ created from prior invocations of 'git add', packing refs, pruning
|
||||
reflog, rerere metadata or stale working trees. May also update ancillary
|
||||
indexes such as the commit-graph.
|
||||
|
||||
When common porcelain operations that create objects are run, they
|
||||
will check whether the repository has grown substantially since the
|
||||
last maintenance, and if so run `git gc` automatically. See `gc.auto`
|
||||
below for how to disable this behavior.
|
||||
Users are encouraged to run this task on a regular basis within
|
||||
each repository to maintain good disk space utilization and good
|
||||
operating performance.
|
||||
|
||||
Running `git gc` manually should only be needed when adding objects to
|
||||
a repository without regularly running such porcelain commands, to do
|
||||
a one-off repository optimization, or e.g. to clean up a suboptimal
|
||||
mass-import. See the "PACKFILE OPTIMIZATION" section in
|
||||
linkgit:git-fast-import[1] for more details on the import case.
|
||||
Some git commands may automatically run 'git gc'; see the `--auto` flag
|
||||
below for details. If you know what you're doing and all you want is to
|
||||
disable this behavior permanently without further considerations, just do:
|
||||
|
||||
----------------------
|
||||
$ git config --global gc.auto 0
|
||||
----------------------
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
@ -39,17 +40,35 @@ OPTIONS
|
||||
space utilization and performance. This option will cause
|
||||
'git gc' to more aggressively optimize the repository at the expense
|
||||
of taking much more time. The effects of this optimization are
|
||||
mostly persistent. See the "AGGRESSIVE" section below for details.
|
||||
persistent, so this option only needs to be used occasionally; every
|
||||
few hundred changesets or so.
|
||||
|
||||
--auto::
|
||||
With this option, 'git gc' checks whether any housekeeping is
|
||||
required; if not, it exits without performing any work.
|
||||
Some git commands run `git gc --auto` after performing
|
||||
operations that could create many loose objects. Housekeeping
|
||||
is required if there are too many loose objects or too many
|
||||
packs in the repository.
|
||||
+
|
||||
See the `gc.auto` option in the "CONFIGURATION" section below for how
|
||||
this heuristic works.
|
||||
If the number of loose objects exceeds the value of the `gc.auto`
|
||||
configuration variable, then all loose objects are combined into a
|
||||
single pack using `git repack -d -l`. Setting the value of `gc.auto`
|
||||
to 0 disables automatic packing of loose objects.
|
||||
+
|
||||
Once housekeeping is triggered by exceeding the limits of
|
||||
configuration options such as `gc.auto` and `gc.autoPackLimit`, all
|
||||
If the number of packs exceeds the value of `gc.autoPackLimit`,
|
||||
then existing packs (except those marked with a `.keep` file
|
||||
or over `gc.bigPackThreshold` limit)
|
||||
are consolidated into a single pack by using the `-A` option of
|
||||
'git repack'.
|
||||
If the amount of memory is estimated not enough for `git repack` to
|
||||
run smoothly and `gc.bigPackThreshold` is not set, the largest
|
||||
pack will also be excluded (this is the equivalent of running `git gc`
|
||||
with `--keep-base-pack`).
|
||||
Setting `gc.autoPackLimit` to 0 disables automatic consolidation of
|
||||
packs.
|
||||
+
|
||||
If houskeeping is required due to many loose objects or packs, all
|
||||
other housekeeping tasks (e.g. rerere, working trees, reflog...) will
|
||||
be performed as well.
|
||||
|
||||
@ -57,7 +76,7 @@ be performed as well.
|
||||
--prune=<date>::
|
||||
Prune loose objects older than date (default is 2 weeks ago,
|
||||
overridable by the config variable `gc.pruneExpire`).
|
||||
--prune=now prunes loose objects regardless of their age and
|
||||
--prune=all prunes loose objects regardless of their age and
|
||||
increases the risk of corruption if another process is writing to
|
||||
the repository concurrently; see "NOTES" below. --prune is on by
|
||||
default.
|
||||
@ -77,39 +96,69 @@ be performed as well.
|
||||
`.keep` files are consolidated into a single pack. When this
|
||||
option is used, `gc.bigPackThreshold` is ignored.
|
||||
|
||||
AGGRESSIVE
|
||||
----------
|
||||
|
||||
When the `--aggressive` option is supplied, linkgit:git-repack[1] will
|
||||
be invoked with the `-f` flag, which in turn will pass
|
||||
`--no-reuse-delta` to linkgit:git-pack-objects[1]. This will throw
|
||||
away any existing deltas and re-compute them, at the expense of
|
||||
spending much more time on the repacking.
|
||||
|
||||
The effects of this are mostly persistent, e.g. when packs and loose
|
||||
objects are coalesced into one another pack the existing deltas in
|
||||
that pack might get re-used, but there are also various cases where we
|
||||
might pick a sub-optimal delta from a newer pack instead.
|
||||
|
||||
Furthermore, supplying `--aggressive` will tweak the `--depth` and
|
||||
`--window` options passed to linkgit:git-repack[1]. See the
|
||||
`gc.aggressiveDepth` and `gc.aggressiveWindow` settings below. By
|
||||
using a larger window size we're more likely to find more optimal
|
||||
deltas.
|
||||
|
||||
It's probably not worth it to use this option on a given repository
|
||||
without running tailored performance benchmarks on it. It takes a lot
|
||||
more time, and the resulting space/delta optimization may or may not
|
||||
be worth it. Not using this at all is the right trade-off for most
|
||||
users and their repositories.
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
|
||||
The below documentation is the same as what's found in
|
||||
linkgit:git-config[1]:
|
||||
The optional configuration variable `gc.reflogExpire` can be
|
||||
set to indicate how long historical entries within each branch's
|
||||
reflog should remain available in this repository. The setting is
|
||||
expressed as a length of time, for example '90 days' or '3 months'.
|
||||
It defaults to '90 days'.
|
||||
|
||||
The optional configuration variable `gc.reflogExpireUnreachable`
|
||||
can be set to indicate how long historical reflog entries which
|
||||
are not part of the current branch should remain available in
|
||||
this repository. These types of entries are generally created as
|
||||
a result of using `git commit --amend` or `git rebase` and are the
|
||||
commits prior to the amend or rebase occurring. Since these changes
|
||||
are not part of the current project most users will want to expire
|
||||
them sooner. This option defaults to '30 days'.
|
||||
|
||||
The above two configuration variables can be given to a pattern. For
|
||||
example, this sets non-default expiry values only to remote-tracking
|
||||
branches:
|
||||
|
||||
------------
|
||||
[gc "refs/remotes/*"]
|
||||
reflogExpire = never
|
||||
reflogExpireUnreachable = 3 days
|
||||
------------
|
||||
|
||||
The optional configuration variable `gc.rerereResolved` indicates
|
||||
how long records of conflicted merge you resolved earlier are
|
||||
kept. This defaults to 60 days.
|
||||
|
||||
The optional configuration variable `gc.rerereUnresolved` indicates
|
||||
how long records of conflicted merge you have not resolved are
|
||||
kept. This defaults to 15 days.
|
||||
|
||||
The optional configuration variable `gc.packRefs` determines if
|
||||
'git gc' runs 'git pack-refs'. This can be set to "notbare" to enable
|
||||
it within all non-bare repos or it can be set to a boolean value.
|
||||
This defaults to true.
|
||||
|
||||
The optional configuration variable `gc.writeCommitGraph` determines if
|
||||
'git gc' should run 'git commit-graph write'. This can be set to a
|
||||
boolean value. This defaults to false.
|
||||
|
||||
The optional configuration variable `gc.aggressiveWindow` controls how
|
||||
much time is spent optimizing the delta compression of the objects in
|
||||
the repository when the --aggressive option is specified. The larger
|
||||
the value, the more time is spent optimizing the delta compression. See
|
||||
the documentation for the --window option in linkgit:git-repack[1] for
|
||||
more details. This defaults to 250.
|
||||
|
||||
Similarly, the optional configuration variable `gc.aggressiveDepth`
|
||||
controls --depth option in linkgit:git-repack[1]. This defaults to 50.
|
||||
|
||||
The optional configuration variable `gc.pruneExpire` controls how old
|
||||
the unreferenced loose objects have to be before they are pruned. The
|
||||
default is "2 weeks ago".
|
||||
|
||||
Optional configuration variable `gc.worktreePruneExpire` controls how
|
||||
old a stale working tree should be before `git worktree prune` deletes
|
||||
it. Default is "3 months ago".
|
||||
|
||||
include::config/gc.txt[]
|
||||
|
||||
NOTES
|
||||
-----
|
||||
@ -119,8 +168,8 @@ anywhere in your repository. In
|
||||
particular, it will keep not only objects referenced by your current set
|
||||
of branches and tags, but also objects referenced by the index,
|
||||
remote-tracking branches, refs saved by 'git filter-branch' in
|
||||
refs/original/, reflogs (which may reference commits in branches
|
||||
that were later amended or rewound), and anything else in the refs/* namespace.
|
||||
refs/original/, or reflogs (which may reference commits in branches
|
||||
that were later amended or rewound).
|
||||
If you are expecting some objects to be deleted and they aren't, check
|
||||
all of those locations and decide whether it makes sense in your case to
|
||||
remove those references.
|
||||
@ -141,7 +190,8 @@ mitigate this problem:
|
||||
|
||||
However, these features fall short of a complete solution, so users who
|
||||
run commands concurrently have to live with some risk of corruption (which
|
||||
seems to be low in practice).
|
||||
seems to be low in practice) unless they turn off automatic garbage
|
||||
collection with 'git config gc.auto 0'.
|
||||
|
||||
HOOKS
|
||||
-----
|
||||
|
@ -88,7 +88,7 @@ OPTIONS
|
||||
mechanism. Only useful with `--untracked`.
|
||||
|
||||
--exclude-standard::
|
||||
Do not pay attention to ignored files specified via the `.gitignore`
|
||||
Do not pay attention to ignored files specified via the `.gitignore`
|
||||
mechanism. Only useful when searching files in the current directory
|
||||
with `--no-index`.
|
||||
|
||||
|
@ -18,7 +18,9 @@ Computes the object ID value for an object with specified type
|
||||
with the contents of the named file (which can be outside of the
|
||||
work tree), and optionally writes the resulting object into the
|
||||
object database. Reports its object ID to its standard output.
|
||||
When <type> is not specified, it defaults to "blob".
|
||||
This is used by 'git cvsimport' to update the index
|
||||
without modifying files in the work tree. When <type> is not
|
||||
specified, it defaults to "blob".
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
|
@ -171,8 +171,8 @@ variable, we launch 'kfmclient' to try to open the man page on an
|
||||
already opened konqueror in a new tab if possible.
|
||||
|
||||
For consistency, we also try such a trick if 'man.konqueror.path' is
|
||||
set to something like `A_PATH_TO/konqueror`. That means we will try to
|
||||
launch `A_PATH_TO/kfmclient` instead.
|
||||
set to something like 'A_PATH_TO/konqueror'. That means we will try to
|
||||
launch 'A_PATH_TO/kfmclient' instead.
|
||||
|
||||
If you really want to use 'konqueror', then you can use something like
|
||||
the following:
|
||||
|
@ -162,7 +162,7 @@ ScriptAliasMatch ^/git/[^/]*(.*) /usr/libexec/git-core/git-http-backend/storage.
|
||||
|
||||
Accelerated static Apache 2.x::
|
||||
Similar to the above, but Apache can be used to return static
|
||||
files that are stored on disk. On many systems this may
|
||||
files that are stored on disk. On many systems this may
|
||||
be more efficient as Apache can ask the kernel to copy the
|
||||
file contents from the file system directly to the network:
|
||||
+
|
||||
|
@ -3,7 +3,7 @@ git-interpret-trailers(1)
|
||||
|
||||
NAME
|
||||
----
|
||||
git-interpret-trailers - Add or parse structured information in commit messages
|
||||
git-interpret-trailers - add or parse structured information in commit messages
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
@ -118,7 +118,6 @@ OPTIONS
|
||||
linkgit:git-status[1] `--short` or linkgit:git-diff[1]
|
||||
`--name-status` for more user-friendly alternatives.
|
||||
+
|
||||
--
|
||||
This option identifies the file status with the following tags (followed by
|
||||
a space) at the start of each line:
|
||||
|
||||
@ -129,7 +128,6 @@ a space) at the start of each line:
|
||||
C:: modified/changed
|
||||
K:: to be killed
|
||||
?:: other
|
||||
--
|
||||
|
||||
-v::
|
||||
Similar to `-t`, but use lowercase letters for files
|
||||
|
@ -31,7 +31,7 @@ OPTIONS
|
||||
displayed.
|
||||
|
||||
--refs::
|
||||
Do not show peeled tags or pseudorefs like `HEAD` in the output.
|
||||
Do not show peeled tags or pseudorefs like HEAD in the output.
|
||||
|
||||
-q::
|
||||
--quiet::
|
||||
|
@ -27,9 +27,9 @@ in the current working directory. Note that:
|
||||
taken as relative to the current working directory. E.g. when you are
|
||||
in a directory 'sub' that has a directory 'dir', you can run 'git
|
||||
ls-tree -r HEAD dir' to list the contents of the tree (that is
|
||||
`sub/dir` in `HEAD`). You don't want to give a tree that is not at the
|
||||
'sub/dir' in `HEAD`). You don't want to give a tree that is not at the
|
||||
root level (e.g. `git ls-tree -r HEAD:sub dir`) in this case, as that
|
||||
would result in asking for `sub/sub/dir` in the `HEAD` commit.
|
||||
would result in asking for 'sub/sub/dir' in the `HEAD` commit.
|
||||
However, the current working directory can be ignored by passing
|
||||
--full-tree option.
|
||||
|
||||
|
@ -83,8 +83,7 @@ invocations. The automated message can include the branch description.
|
||||
If `--log` is specified, a shortlog of the commits being merged
|
||||
will be appended to the specified message.
|
||||
|
||||
--rerere-autoupdate::
|
||||
--no-rerere-autoupdate::
|
||||
--[no-]rerere-autoupdate::
|
||||
Allow the rerere mechanism to update the index with the
|
||||
result of auto-conflict resolution if possible.
|
||||
|
||||
|
@ -28,9 +28,7 @@ to define the operation mode for the functions listed below.
|
||||
FUNCTIONS
|
||||
---------
|
||||
get_merge_tool::
|
||||
returns a merge tool. the return code is 1 if we returned a guessed
|
||||
merge tool, else 0. '$GIT_MERGETOOL_GUI' may be set to 'true' to
|
||||
search for the appropriate guitool.
|
||||
returns a merge tool.
|
||||
|
||||
get_merge_tool_cmd::
|
||||
returns the custom command for a merge tool.
|
||||
|
@ -83,9 +83,7 @@ success of the resolution after the custom tool has exited.
|
||||
--gui::
|
||||
When 'git-mergetool' is invoked with the `-g` or `--gui` option
|
||||
the default merge tool will be read from the configured
|
||||
`merge.guitool` variable instead of `merge.tool`. If
|
||||
`merge.guitool` is not set, we will fallback to the tool
|
||||
configured under `merge.tool`.
|
||||
`merge.guitool` variable instead of `merge.tool`.
|
||||
|
||||
--no-gui::
|
||||
This overrides a previous `-g` or `--gui` setting and reads the
|
||||
|
@ -146,7 +146,7 @@ OPTIONS
|
||||
|
||||
-C <object>::
|
||||
--reuse-message=<object>::
|
||||
Take the given blob object (for example, another note) as the
|
||||
Take the given blob object (for example, another note) as the
|
||||
note message. (Use `git notes copy <object>` instead to
|
||||
copy notes between objects.)
|
||||
|
||||
|
@ -112,9 +112,8 @@ When set to `merges`, rebase using `git rebase --rebase-merges` so that
|
||||
the local merge commits are included in the rebase (see
|
||||
linkgit:git-rebase[1] for details).
|
||||
+
|
||||
When set to `preserve` (deprecated in favor of `merges`), rebase with the
|
||||
`--preserve-merges` option passed to `git rebase` so that locally created
|
||||
merge commits will not be flattened.
|
||||
When set to preserve, rebase with the `--preserve-merges` option passed
|
||||
to `git rebase` so that locally created merge commits will not be flattened.
|
||||
+
|
||||
When false, merge the current branch into the upstream branch.
|
||||
+
|
||||
|
@ -38,9 +38,8 @@ OPTIONS
|
||||
started.
|
||||
|
||||
--reset::
|
||||
Same as -m, except that unmerged entries are discarded instead
|
||||
of failing. When used with `-u`, updates leading to loss of
|
||||
working tree changes will not abort the operation.
|
||||
Same as -m, except that unmerged entries are discarded
|
||||
instead of failing.
|
||||
|
||||
-u::
|
||||
After a successful merge, update the files in the work
|
||||
@ -129,10 +128,6 @@ OPTIONS
|
||||
Instead of reading tree object(s) into the index, just empty
|
||||
it.
|
||||
|
||||
-q::
|
||||
--quiet::
|
||||
Quiet, suppress feedback messages.
|
||||
|
||||
<tree-ish#>::
|
||||
The id of the tree object(s) to be read/merged.
|
||||
|
||||
|
@ -300,11 +300,6 @@ See also INCOMPATIBLE OPTIONS below.
|
||||
+
|
||||
See also INCOMPATIBLE OPTIONS below.
|
||||
|
||||
--rerere-autoupdate::
|
||||
--no-rerere-autoupdate::
|
||||
Allow the rerere mechanism to update the index with the
|
||||
result of auto-conflict resolution if possible.
|
||||
|
||||
-S[<keyid>]::
|
||||
--gpg-sign[=<keyid>]::
|
||||
GPG-sign commits. The `keyid` argument is optional and
|
||||
@ -415,14 +410,14 @@ See also INCOMPATIBLE OPTIONS below.
|
||||
+
|
||||
By default, or when `no-rebase-cousins` was specified, commits which do not
|
||||
have `<upstream>` as direct ancestor will keep their original branch point,
|
||||
i.e. commits that would be excluded by linkgit:git-log[1]'s
|
||||
i.e. commits that would be excluded by gitlink:git-log[1]'s
|
||||
`--ancestry-path` option will keep their original ancestry by default. If
|
||||
the `rebase-cousins` mode is turned on, such commits are instead rebased
|
||||
onto `<upstream>` (or `<onto>`, if specified).
|
||||
+
|
||||
The `--rebase-merges` mode is similar in spirit to the deprecated
|
||||
`--preserve-merges`, but in contrast to that option works well in interactive
|
||||
rebases: commits can be reordered, inserted and dropped at will.
|
||||
The `--rebase-merges` mode is similar in spirit to `--preserve-merges`, but
|
||||
in contrast to that option works well in interactive rebases: commits can be
|
||||
reordered, inserted and dropped at will.
|
||||
+
|
||||
It is currently only possible to recreate the merge commits using the
|
||||
`recursive` merge strategy; Different merge strategies can be used only via
|
||||
@ -432,10 +427,9 @@ See also REBASING MERGES and INCOMPATIBLE OPTIONS below.
|
||||
|
||||
-p::
|
||||
--preserve-merges::
|
||||
[DEPRECATED: use `--rebase-merges` instead] Recreate merge commits
|
||||
instead of flattening the history by replaying commits a merge commit
|
||||
introduces. Merge conflict resolutions or manual amendments to merge
|
||||
commits are not preserved.
|
||||
Recreate merge commits instead of flattening the history by replaying
|
||||
commits a merge commit introduces. Merge conflict resolutions or manual
|
||||
amendments to merge commits are not preserved.
|
||||
+
|
||||
This uses the `--interactive` machinery internally, but combining it
|
||||
with the `--interactive` option explicitly is generally not a good
|
||||
@ -675,8 +669,7 @@ $ git rebase -i HEAD~5
|
||||
|
||||
And move the first patch to the end of the list.
|
||||
|
||||
You might want to recreate merge commits, e.g. if you have a history
|
||||
like this:
|
||||
You might want to preserve merges, if you have a history like this:
|
||||
|
||||
------------------
|
||||
X
|
||||
@ -690,7 +683,7 @@ Suppose you want to rebase the side branch starting at "A" to "Q". Make
|
||||
sure that the current HEAD is "B", and call
|
||||
|
||||
-----------------------------
|
||||
$ git rebase -i -r --onto Q O
|
||||
$ git rebase -i -p --onto Q O
|
||||
-----------------------------
|
||||
|
||||
Reordering and editing commits usually creates untested intermediate
|
||||
@ -1027,11 +1020,11 @@ merge cmake
|
||||
|
||||
BUGS
|
||||
----
|
||||
The todo list presented by the deprecated `--preserve-merges --interactive`
|
||||
does not represent the topology of the revision graph (use `--rebase-merges`
|
||||
instead). Editing commits and rewording their commit messages should work
|
||||
fine, but attempts to reorder commits tend to produce counterintuitive results.
|
||||
Use `--rebase-merges` in such scenarios instead.
|
||||
The todo list presented by `--preserve-merges --interactive` does not
|
||||
represent the topology of the revision graph. Editing commits and
|
||||
rewording their commit messages should work fine, but attempts to
|
||||
reorder commits tend to produce counterintuitive results. Use
|
||||
`--rebase-merges` in such scenarios instead.
|
||||
|
||||
For example, an attempt to rearrange
|
||||
------------
|
||||
|
@ -104,7 +104,7 @@ begins with `ext::`. Examples:
|
||||
link-level address).
|
||||
|
||||
"ext::git-server-alias foo %G/repo% with% spaces %Vfoo"::
|
||||
Represents a repository with path `/repo with spaces` accessed
|
||||
Represents a repository with path '/repo with spaces' accessed
|
||||
using the helper program "git-server-alias foo". The hostname for
|
||||
the remote server passed in the protocol stream will be "foo"
|
||||
(this allows multiple virtual Git servers to share a
|
||||
@ -118,7 +118,7 @@ begins with `ext::`. Examples:
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:gitremote-helpers[7]
|
||||
linkgit:gitremote-helpers[1]
|
||||
|
||||
GIT
|
||||
---
|
||||
|
@ -52,7 +52,7 @@ EXAMPLES
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:gitremote-helpers[7]
|
||||
linkgit:gitremote-helpers[1]
|
||||
|
||||
GIT
|
||||
---
|
||||
|
@ -1,7 +1,7 @@
|
||||
git-remote-helpers
|
||||
==================
|
||||
|
||||
This document has been moved to linkgit:gitremote-helpers[7].
|
||||
This document has been moved to linkgit:gitremote-helpers[1].
|
||||
|
||||
Please let the owners of the referring site know so that they can update the
|
||||
link you clicked to get here.
|
||||
|
30
Documentation/git-remote-testgit.txt
Normal file
30
Documentation/git-remote-testgit.txt
Normal file
@ -0,0 +1,30 @@
|
||||
git-remote-testgit(1)
|
||||
=====================
|
||||
|
||||
NAME
|
||||
----
|
||||
git-remote-testgit - Example remote-helper
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
git clone testgit::<source-repo> [<destination>]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
This command is a simple remote-helper, that is used both as a
|
||||
testcase for the remote-helper functionality, and as an example to
|
||||
show remote-helper authors one possible implementation.
|
||||
|
||||
The best way to learn more is to read the comments and source code in
|
||||
'git-remote-testgit'.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:gitremote-helpers[1]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
@ -24,7 +24,7 @@ on the initial manual merge, and applying previously recorded
|
||||
hand resolutions to their corresponding automerge results.
|
||||
|
||||
[NOTE]
|
||||
You need to set the configuration variable `rerere.enabled` in order to
|
||||
You need to set the configuration variable rerere.enabled in order to
|
||||
enable this command.
|
||||
|
||||
|
||||
|
@ -428,8 +428,8 @@ working index HEAD target working index HEAD
|
||||
|
||||
`reset --merge` is meant to be used when resetting out of a conflicted
|
||||
merge. Any mergy operation guarantees that the working tree file that is
|
||||
involved in the merge does not have a local change with respect to the index
|
||||
before it starts, and that it writes the result out to the working tree. So if
|
||||
involved in the merge does not have local change wrt the index before
|
||||
it starts, and that it writes the result out to the working tree. So if
|
||||
we see some difference between the index and the target and also
|
||||
between the index and the working tree, then it means that we are not
|
||||
resetting out from a state that a mergy operation left after failing
|
||||
|
@ -66,13 +66,6 @@ more details.
|
||||
With this option, 'git revert' will not start the commit
|
||||
message editor.
|
||||
|
||||
--cleanup=<mode>::
|
||||
This option determines how the commit message will be cleaned up before
|
||||
being passed on to the commit machinery. See linkgit:git-commit[1] for more
|
||||
details. In particular, if the '<mode>' is given a value of `scissors`,
|
||||
scissors will be appended to `MERGE_MSG` before being passed on in the case
|
||||
of a conflict.
|
||||
|
||||
-n::
|
||||
--no-commit::
|
||||
Usually the command automatically creates some commits with
|
||||
@ -108,11 +101,6 @@ effect to your index in a row.
|
||||
Pass the merge strategy-specific option through to the
|
||||
merge strategy. See linkgit:git-merge[1] for details.
|
||||
|
||||
--rerere-autoupdate::
|
||||
--no-rerere-autoupdate::
|
||||
Allow the rerere mechanism to update the index with the
|
||||
result of auto-conflict resolution if possible.
|
||||
|
||||
SEQUENCER SUBCOMMANDS
|
||||
---------------------
|
||||
include::sequencer.txt[]
|
||||
|
@ -500,12 +500,8 @@ app-specific or your regular password as appropriate. If you have credential
|
||||
helper configured (see linkgit:git-credential[1]), the password will be saved in
|
||||
the credential store so you won't have to type it the next time.
|
||||
|
||||
Note: the following core Perl modules that may be installed with your
|
||||
distribution of Perl are required:
|
||||
MIME::Base64, MIME::QuotedPrint, Net::Domain and Net::SMTP.
|
||||
These additional Perl modules are also required:
|
||||
Authen::SASL and Mail::Address.
|
||||
|
||||
Note: the following perl modules are required
|
||||
Net::SMTP::SSL, MIME::Base64 and Authen::SASL
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
|
@ -167,7 +167,7 @@ $ git show-branch master fixes mhf
|
||||
------------------------------------------------
|
||||
|
||||
These three branches all forked from a common commit, [master],
|
||||
whose commit message is "Add \'git show-branch'".
|
||||
whose commit message is "Add {apostrophe}git show-branch{apostrophe}".
|
||||
The "fixes" branch adds one commit "Introduce "reset type" flag to
|
||||
"git reset"". The "mhf" branch adds many other commits.
|
||||
The current branch is "master".
|
||||
|
@ -9,7 +9,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git stash' list [<options>]
|
||||
'git stash' show [<options>] [<stash>]
|
||||
'git stash' show [<stash>]
|
||||
'git stash' drop [-q|--quiet] [<stash>]
|
||||
'git stash' ( pop | apply ) [--index] [-q|--quiet] [<stash>]
|
||||
'git stash' branch <branchname> [<stash>]
|
||||
@ -106,7 +106,7 @@ stash@{1}: On master: 9cc0589... Add git-stash
|
||||
The command takes options applicable to the 'git log'
|
||||
command to control what is shown and how. See linkgit:git-log[1].
|
||||
|
||||
show [<options>] [<stash>]::
|
||||
show [<stash>]::
|
||||
|
||||
Show the changes recorded in the stash entry as a diff between the
|
||||
stashed contents and the commit back when the stash entry was first
|
||||
|
@ -278,8 +278,7 @@ Header lines start with "#" and are added in response to specific
|
||||
command line arguments. Parsers should ignore headers they
|
||||
don't recognize.
|
||||
|
||||
Branch Headers
|
||||
^^^^^^^^^^^^^^
|
||||
### Branch Headers
|
||||
|
||||
If `--branch` is given, a series of header lines are printed with
|
||||
information about the current branch.
|
||||
@ -295,8 +294,7 @@ Line Notes
|
||||
------------------------------------------------------------
|
||||
....
|
||||
|
||||
Changed Tracked Entries
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
### Changed Tracked Entries
|
||||
|
||||
Following the headers, a series of lines are printed for tracked
|
||||
entries. One of three different line formats may be used to describe
|
||||
@ -367,8 +365,7 @@ Field Meaning
|
||||
--------------------------------------------------------
|
||||
....
|
||||
|
||||
Other Items
|
||||
^^^^^^^^^^^
|
||||
### Other Items
|
||||
|
||||
Following the tracked entries (and if requested), a series of
|
||||
lines will be printed for untracked and then ignored items
|
||||
@ -382,8 +379,7 @@ Ignored items have the following format:
|
||||
|
||||
! <path>
|
||||
|
||||
Pathname Format Notes and -z
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
### Pathname Format Notes and -z
|
||||
|
||||
When the `-z` option is given, pathnames are printed as is and
|
||||
without any quoting and lines are terminated with a NUL (ASCII 0x00)
|
||||
|
@ -9,13 +9,11 @@ git-submodule - Initialize, update or inspect submodules
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git submodule' [--quiet] [--cached]
|
||||
'git submodule' [--quiet] add [<options>] [--] <repository> [<path>]
|
||||
'git submodule' [--quiet] status [--cached] [--recursive] [--] [<path>...]
|
||||
'git submodule' [--quiet] init [--] [<path>...]
|
||||
'git submodule' [--quiet] deinit [-f|--force] (--all|[--] <path>...)
|
||||
'git submodule' [--quiet] update [<options>] [--] [<path>...]
|
||||
'git submodule' [--quiet] set-branch [<options>] [--] <path>
|
||||
'git submodule' [--quiet] summary [<options>] [--] [<path>...]
|
||||
'git submodule' [--quiet] foreach [--recursive] <command>
|
||||
'git submodule' [--quiet] sync [--recursive] [--] [<path>...]
|
||||
@ -30,9 +28,6 @@ For more information about submodules, see linkgit:gitsubmodules[7].
|
||||
|
||||
COMMANDS
|
||||
--------
|
||||
With no arguments, shows the status of existing submodules. Several
|
||||
subcommands are available to perform operations on the submodules.
|
||||
|
||||
add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--depth <depth>] [--] <repository> [<path>]::
|
||||
Add the given repository as a submodule at the given path
|
||||
to the changeset to be committed next to the current
|
||||
@ -43,7 +38,7 @@ This may be either an absolute URL, or (if it begins with ./
|
||||
or ../), the location relative to the superproject's default remote
|
||||
repository (Please note that to specify a repository 'foo.git'
|
||||
which is located right next to a superproject 'bar.git', you'll
|
||||
have to use `../foo.git` instead of `./foo.git` - as one might expect
|
||||
have to use '../foo.git' instead of './foo.git' - as one might expect
|
||||
when following the rules for relative URLs - because the evaluation
|
||||
of relative URLs in Git is identical to that of relative directories).
|
||||
+
|
||||
@ -173,12 +168,6 @@ submodule with the `--init` option.
|
||||
If `--recursive` is specified, this command will recurse into the
|
||||
registered submodules, and update any nested submodules within.
|
||||
--
|
||||
set-branch ((-d|--default)|(-b|--branch <branch>)) [--] <path>::
|
||||
Sets the default remote tracking branch for the submodule. The
|
||||
`--branch` option allows the remote branch to be specified. The
|
||||
`--default` option removes the submodule.<name>.branch configuration
|
||||
key, which causes the tracking branch to default to 'master'.
|
||||
|
||||
summary [--cached|--files] [(-n|--summary-limit) <n>] [commit] [--] [<path>...]::
|
||||
Show commit summary between the given commit (defaults to HEAD) and
|
||||
working tree/index. For a submodule in question, a series of commits
|
||||
@ -266,14 +255,13 @@ OPTIONS
|
||||
This option is only valid for the deinit command. Unregister all
|
||||
submodules in the working tree.
|
||||
|
||||
-b <branch>::
|
||||
--branch <branch>::
|
||||
-b::
|
||||
--branch::
|
||||
Branch of repository to add as submodule.
|
||||
The name of the branch is recorded as `submodule.<name>.branch` in
|
||||
`.gitmodules` for `update --remote`. A special value of `.` is used to
|
||||
indicate that the name of the branch in the submodule should be the
|
||||
same name as the current branch in the current repository. If the
|
||||
option is not specified, it defaults to 'master'.
|
||||
same name as the current branch in the current repository.
|
||||
|
||||
-f::
|
||||
--force::
|
||||
|
@ -126,7 +126,7 @@ your Perl's Getopt::Long is < v2.37).
|
||||
command-line argument.
|
||||
+
|
||||
This automatically updates the rev_map if needed (see
|
||||
'$GIT_DIR/svn/\**/.rev_map.*' in the FILES section below for details).
|
||||
'$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
|
||||
|
||||
--localtime;;
|
||||
Store Git commit times in the local time zone instead of UTC. This
|
||||
@ -239,7 +239,7 @@ Like 'git rebase'; this requires that the working tree be clean
|
||||
and have no uncommitted changes.
|
||||
+
|
||||
This automatically updates the rev_map if needed (see
|
||||
'$GIT_DIR/svn/\**/.rev_map.*' in the FILES section below for details).
|
||||
'$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
|
||||
|
||||
-l;;
|
||||
--local;;
|
||||
@ -524,7 +524,7 @@ This will set the property 'svn:keywords' to 'FreeBSD=%H' for the file
|
||||
way to repair the repo is to use 'reset'.
|
||||
+
|
||||
Only the rev_map and refs/remotes/git-svn are changed (see
|
||||
'$GIT_DIR/svn/\**/.rev_map.*' in the FILES section below for details).
|
||||
'$GIT_DIR/svn/\*\*/.rev_map.*' in the FILES section below for details).
|
||||
Follow 'reset' with a 'fetch' and then 'git reset' or 'git rebase' to
|
||||
move local branches onto the new tree.
|
||||
|
||||
@ -760,7 +760,7 @@ svn-remote.<name>.noMetadata::
|
||||
+
|
||||
This option can only be used for one-shot imports as 'git svn'
|
||||
will not be able to fetch again without metadata. Additionally,
|
||||
if you lose your '$GIT_DIR/svn/\**/.rev_map.*' files, 'git svn' will not
|
||||
if you lose your '$GIT_DIR/svn/\*\*/.rev_map.*' files, 'git svn' will not
|
||||
be able to rebuild them.
|
||||
+
|
||||
The 'git svn log' command will not work on repositories using
|
||||
@ -1100,10 +1100,10 @@ listed below are allowed:
|
||||
tags = tags/*/project-a:refs/remotes/project-a/tags/*
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Keep in mind that the `*` (asterisk) wildcard of the local ref
|
||||
(right of the `:`) *must* be the farthest right path component;
|
||||
Keep in mind that the '\*' (asterisk) wildcard of the local ref
|
||||
(right of the ':') *must* be the farthest right path component;
|
||||
however the remote wildcard may be anywhere as long as it's an
|
||||
independent path component (surrounded by `/` or EOL). This
|
||||
independent path component (surrounded by '/' or EOL). This
|
||||
type of configuration is not automatically created by 'init' and
|
||||
should be manually entered with a text-editor or using 'git config'.
|
||||
|
||||
@ -1154,7 +1154,7 @@ fetching, then $GIT_DIR/svn/.metadata must be manually edited to remove
|
||||
|
||||
FILES
|
||||
-----
|
||||
$GIT_DIR/svn/\**/.rev_map.*::
|
||||
$GIT_DIR/svn/\*\*/.rev_map.*::
|
||||
Mapping between Subversion revision numbers and Git commit
|
||||
names. In a repository where the noMetadata option is not set,
|
||||
this can be rebuilt from the git-svn-id: lines that are at the
|
||||
|
@ -92,8 +92,8 @@ configuration variable, we launch 'kfmclient' to try to open the HTML
|
||||
man page on an already opened konqueror in a new tab if possible.
|
||||
|
||||
For consistency, we also try such a trick if 'browser.konqueror.path' is
|
||||
set to something like `A_PATH_TO/konqueror`. That means we will try to
|
||||
launch `A_PATH_TO/kfmclient` instead.
|
||||
set to something like 'A_PATH_TO/konqueror'. That means we will try to
|
||||
launch 'A_PATH_TO/kfmclient' instead.
|
||||
|
||||
If you really want to use 'konqueror', then you can use something like
|
||||
the following:
|
||||
|
@ -213,7 +213,7 @@ refs of one working tree from another.
|
||||
|
||||
In general, all pseudo refs are per working tree and all refs starting
|
||||
with "refs/" are shared. Pseudo refs are ones like HEAD which are
|
||||
directly under GIT_DIR instead of inside GIT_DIR/refs. There is one
|
||||
directly under GIT_DIR instead of inside GIT_DIR/refs. There are one
|
||||
exception to this: refs inside refs/bisect and refs/worktree is not
|
||||
shared.
|
||||
|
||||
|
@ -56,8 +56,7 @@ help ...`.
|
||||
Run as if git was started in '<path>' instead of the current working
|
||||
directory. When multiple `-C` options are given, each subsequent
|
||||
non-absolute `-C <path>` is interpreted relative to the preceding `-C
|
||||
<path>`. If '<path>' is present but empty, e.g. `-C ""`, then the
|
||||
current working directory is left unchanged.
|
||||
<path>`.
|
||||
+
|
||||
This option affects options that expect path name like `--git-dir` and
|
||||
`--work-tree` in that their interpretations of the path names would be
|
||||
@ -537,6 +536,7 @@ other
|
||||
The command-line parameters passed to the configured command are
|
||||
determined by the ssh variant. See `ssh.variant` option in
|
||||
linkgit:git-config[1] for details.
|
||||
|
||||
+
|
||||
`$GIT_SSH_COMMAND` takes precedence over `$GIT_SSH`, and is interpreted
|
||||
by the shell, which allows additional arguments to be included.
|
||||
@ -661,54 +661,6 @@ of clones and fetches.
|
||||
When a curl trace is enabled (see `GIT_TRACE_CURL` above), do not dump
|
||||
data (that is, only dump info lines and headers).
|
||||
|
||||
`GIT_TRACE2`::
|
||||
Enables more detailed trace messages from the "trace2" library.
|
||||
Output from `GIT_TRACE2` is a simple text-based format for human
|
||||
readability.
|
||||
+
|
||||
If this variable is set to "1", "2" or "true" (comparison
|
||||
is case insensitive), trace messages will be printed to
|
||||
stderr.
|
||||
+
|
||||
If the variable is set to an integer value greater than 2
|
||||
and lower than 10 (strictly) then Git will interpret this
|
||||
value as an open file descriptor and will try to write the
|
||||
trace messages into this file descriptor.
|
||||
+
|
||||
Alternatively, if the variable is set to an absolute path
|
||||
(starting with a '/' character), Git will interpret this
|
||||
as a file path and will try to append the trace messages
|
||||
to it. If the path already exists and is a directory, the
|
||||
trace messages will be written to files (one per process)
|
||||
in that directory, named according to the last component
|
||||
of the SID and an optional counter (to avoid filename
|
||||
collisions).
|
||||
+
|
||||
In addition, if the variable is set to
|
||||
`af_unix:[<socket_type>:]<absolute-pathname>`, Git will try
|
||||
to open the path as a Unix Domain Socket. The socket type
|
||||
can be either `stream` or `dgram`.
|
||||
+
|
||||
Unsetting the variable, or setting it to empty, "0" or
|
||||
"false" (case insensitive) disables trace messages.
|
||||
+
|
||||
See link:technical/api-trace2.html[Trace2 documentation]
|
||||
for full details.
|
||||
|
||||
|
||||
`GIT_TRACE2_EVENT`::
|
||||
This setting writes a JSON-based format that is suited for machine
|
||||
interpretation.
|
||||
See `GIT_TRACE2` for available trace output options and
|
||||
link:technical/api-trace2.html[Trace2 documentation] for full details.
|
||||
|
||||
`GIT_TRACE2_PERF`::
|
||||
In addition to the text-based messages available in `GIT_TRACE2`, this
|
||||
setting writes a column-based format for understanding nesting
|
||||
regions.
|
||||
See `GIT_TRACE2` for available trace output options and
|
||||
link:technical/api-trace2.html[Trace2 documentation] for full details.
|
||||
|
||||
`GIT_REDACT_COOKIES`::
|
||||
This can be set to a comma-separated list of strings. When a curl trace
|
||||
is enabled (see `GIT_TRACE_CURL` above), whenever a "Cookies:" header
|
||||
|
@ -18,7 +18,7 @@ A `gitattributes` file is a simple text file that gives
|
||||
|
||||
Each line in `gitattributes` file is of form:
|
||||
|
||||
pattern attr1 attr2 ...
|
||||
pattern attr1 attr2 ...
|
||||
|
||||
That is, a pattern followed by an attributes list,
|
||||
separated by whitespaces. Leading and trailing whitespaces are
|
||||
@ -314,8 +314,8 @@ stored as UTF-8 internally. A client without `working-tree-encoding`
|
||||
support will checkout `foo.ps1` as UTF-8 encoded file. This will
|
||||
typically cause trouble for the users of this file.
|
||||
+
|
||||
If a Git client that does not support the `working-tree-encoding`
|
||||
attribute adds a new file `bar.ps1`, then `bar.ps1` will be
|
||||
If a Git client, that does not support the `working-tree-encoding`
|
||||
attribute, adds a new file `bar.ps1`, then `bar.ps1` will be
|
||||
stored "as-is" internally (in this example probably as UTF-16).
|
||||
A client with `working-tree-encoding` support will interpret the
|
||||
internal contents as UTF-8 and try to convert it to UTF-16 on checkout.
|
||||
@ -346,7 +346,7 @@ automatic line ending conversion based on your platform.
|
||||
|
||||
Use the following attributes if your '*.ps1' files are UTF-16 little
|
||||
endian encoded without BOM and you want Git to use Windows line endings
|
||||
in the working directory (use `UTF-16LE-BOM` instead of `UTF-16LE` if
|
||||
in the working directory (use `UTF-16-LE-BOM` instead of `UTF-16LE` if
|
||||
you want UTF-16 little endian with BOM).
|
||||
Please note, it is highly recommended to
|
||||
explicitly define the line endings with `eol` if the `working-tree-encoding`
|
||||
|
@ -99,10 +99,6 @@ All the `git commit` hooks are invoked with the environment
|
||||
variable `GIT_EDITOR=:` if the command will not bring up an editor
|
||||
to modify the commit message.
|
||||
|
||||
The default 'pre-commit' hook, when enabled--and with the
|
||||
`hooks.allownonascii` config option unset or set to false--prevents
|
||||
the use of non-ASCII filenames.
|
||||
|
||||
prepare-commit-msg
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@ -496,24 +492,6 @@ This hook is invoked by `git-p4 submit`. It takes no parameters and nothing
|
||||
from standard input. Exiting with non-zero status from this script prevent
|
||||
`git-p4 submit` from launching. Run `git-p4 submit --help` for details.
|
||||
|
||||
post-index-change
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
This hook is invoked when the index is written in read-cache.c
|
||||
do_write_locked_index.
|
||||
|
||||
The first parameter passed to the hook is the indicator for the
|
||||
working directory being updated. "1" meaning working directory
|
||||
was updated or "0" when the working directory was not updated.
|
||||
|
||||
The second parameter passed to the hook is the indicator for whether
|
||||
or not the index was updated and the skip-worktree bit could have
|
||||
changed. "1" meaning skip-worktree bits could have been updated
|
||||
and "0" meaning they were not.
|
||||
|
||||
Only one parameter should be set to "1" when the hook runs. The hook
|
||||
running passing "1", "1" should not be possible.
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
|
@ -89,28 +89,28 @@ PATTERN FORMAT
|
||||
Put a backslash ("`\`") in front of the first "`!`" for patterns
|
||||
that begin with a literal "`!`", for example, "`\!important!.txt`".
|
||||
|
||||
- The slash '/' is used as the directory separator. Separators may
|
||||
occur at the beginning, middle or end of the `.gitignore` search pattern.
|
||||
- If the pattern ends with a slash, it is removed for the
|
||||
purpose of the following description, but it would only find
|
||||
a match with a directory. In other words, `foo/` will match a
|
||||
directory `foo` and paths underneath it, but will not match a
|
||||
regular file or a symbolic link `foo` (this is consistent
|
||||
with the way how pathspec works in general in Git).
|
||||
|
||||
- If there is a separator at the beginning or middle (or both) of the
|
||||
pattern, then the pattern is relative to the directory level of the
|
||||
particular `.gitignore` file itself. Otherwise the pattern may also
|
||||
match at any level below the `.gitignore` level.
|
||||
- If the pattern does not contain a slash '/', Git treats it as
|
||||
a shell glob pattern and checks for a match against the
|
||||
pathname relative to the location of the `.gitignore` file
|
||||
(relative to the toplevel of the work tree if not from a
|
||||
`.gitignore` file).
|
||||
|
||||
- If there is a separator at the end of the pattern then the pattern
|
||||
will only match directories, otherwise the pattern can match both
|
||||
files and directories.
|
||||
- Otherwise, Git treats the pattern as a shell glob: "`*`" matches
|
||||
anything except "`/`", "`?`" matches any one character except "`/`"
|
||||
and "`[]`" matches one character in a selected range. See
|
||||
fnmatch(3) and the FNM_PATHNAME flag for a more detailed
|
||||
description.
|
||||
|
||||
- For example, a pattern `doc/frotz/` matches `doc/frotz` directory,
|
||||
but not `a/doc/frotz` directory; however `frotz/` matches `frotz`
|
||||
and `a/frotz` that is a directory (all paths are relative from
|
||||
the `.gitignore` file).
|
||||
|
||||
- An asterisk "`*`" matches anything except a slash.
|
||||
The character "`?`" matches any one character except "`/`".
|
||||
The range notation, e.g. `[a-zA-Z]`, can be used to match
|
||||
one of the characters in a range. See fnmatch(3) and the
|
||||
FNM_PATHNAME flag for a more detailed description.
|
||||
- A leading slash matches the beginning of the pathname.
|
||||
For example, "/{asterisk}.c" matches "cat-file.c" but not
|
||||
"mozilla-sha1/sha1.c".
|
||||
|
||||
Two consecutive asterisks ("`**`") in patterns matched against
|
||||
full pathname may have special meaning:
|
||||
@ -132,14 +132,6 @@ full pathname may have special meaning:
|
||||
- Other consecutive asterisks are considered regular asterisks and
|
||||
will match according to the previous rules.
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
|
||||
The optional configuration variable `core.excludesFile` indicates a path to a
|
||||
file containing patterns of file names to exclude, similar to
|
||||
`$GIT_DIR/info/exclude`. Patterns in the exclude file are used in addition to
|
||||
those in `$GIT_DIR/info/exclude`.
|
||||
|
||||
NOTES
|
||||
-----
|
||||
|
||||
@ -152,28 +144,6 @@ To stop tracking a file that is currently tracked, use
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
- The pattern `hello.*` matches any file or folder
|
||||
whose name begins with `hello`. If one wants to restrict
|
||||
this only to the directory and not in its subdirectories,
|
||||
one can prepend the pattern with a slash, i.e. `/hello.*`;
|
||||
the pattern now matches `hello.txt`, `hello.c` but not
|
||||
`a/hello.java`.
|
||||
|
||||
- The pattern `foo/` will match a directory `foo` and
|
||||
paths underneath it, but will not match a regular file
|
||||
or a symbolic link `foo` (this is consistent with the
|
||||
way how pathspec works in general in Git)
|
||||
|
||||
- The pattern `doc/frotz` and `/doc/frotz` have the same effect
|
||||
in any `.gitignore` file. In other words, a leading slash
|
||||
is not relevant if there is already a middle slash in
|
||||
the pattern.
|
||||
|
||||
- The pattern "foo/*", matches "foo/test.json"
|
||||
(a regular file), "foo/bar" (a directory), but it does not match
|
||||
"foo/bar/hello.c" (a regular file), as the asterisk in the
|
||||
pattern does not match "bar/hello.c" which has a slash in it.
|
||||
|
||||
--------------------------------------------------------------
|
||||
$ git status
|
||||
[...]
|
||||
|
@ -168,12 +168,12 @@ Files
|
||||
-----
|
||||
User configuration and preferences are stored at:
|
||||
|
||||
* `$XDG_CONFIG_HOME/git/gitk` if it exists, otherwise
|
||||
* `$HOME/.gitk` if it exists
|
||||
* '$XDG_CONFIG_HOME/git/gitk' if it exists, otherwise
|
||||
* '$HOME/.gitk' if it exists
|
||||
|
||||
If neither of the above exist then `$XDG_CONFIG_HOME/git/gitk` is created and
|
||||
If neither of the above exist then '$XDG_CONFIG_HOME/git/gitk' is created and
|
||||
used by default. If '$XDG_CONFIG_HOME' is not set it defaults to
|
||||
`$HOME/.config` in all cases.
|
||||
'$HOME/.config' in all cases.
|
||||
|
||||
History
|
||||
-------
|
||||
|
@ -114,7 +114,7 @@ Consider the following .gitmodules file:
|
||||
|
||||
|
||||
This defines two submodules, `libfoo` and `libbar`. These are expected to
|
||||
be checked out in the paths `include/foo` and `include/bar`, and for both
|
||||
be checked out in the paths 'include/foo' and 'include/bar', and for both
|
||||
submodules a URL is specified which can be used for cloning the submodules.
|
||||
|
||||
SEE ALSO
|
||||
|
@ -1,4 +1,4 @@
|
||||
gitremote-helpers(7)
|
||||
gitremote-helpers(1)
|
||||
====================
|
||||
|
||||
NAME
|
||||
@ -468,7 +468,7 @@ set by Git if the remote helper has the 'option' capability.
|
||||
|
||||
'option dry-run' {'true'|'false'}:
|
||||
If true, pretend the operation completed successfully,
|
||||
but don't actually change any repository data. For most
|
||||
but don't actually change any repository data. For most
|
||||
helpers this only applies to the 'push', if supported.
|
||||
|
||||
'option servpath <c-style-quoted-path>'::
|
||||
@ -513,6 +513,8 @@ linkgit:git-remote-ext[1]
|
||||
|
||||
linkgit:git-remote-fd[1]
|
||||
|
||||
linkgit:git-remote-testgit[1]
|
||||
|
||||
linkgit:git-fast-import[1]
|
||||
|
||||
GIT
|
||||
|
@ -84,7 +84,7 @@ objects/info/alternates::
|
||||
to the object database, not to the repository!) in your
|
||||
alternates file, but it will not work if you use absolute
|
||||
paths unless the absolute path in filesystem and web URL
|
||||
is the same. See also `objects/info/http-alternates`.
|
||||
is the same. See also 'objects/info/http-alternates'.
|
||||
|
||||
objects/info/http-alternates::
|
||||
This file records URLs to alternate object stores that
|
||||
|
@ -169,15 +169,15 @@ ACTIVE SUBMODULES
|
||||
|
||||
A submodule is considered active,
|
||||
|
||||
1. if `submodule.<name>.active` is set to `true`
|
||||
a. if `submodule.<name>.active` is set to `true`
|
||||
+
|
||||
or
|
||||
|
||||
2. if the submodule's path matches the pathspec in `submodule.active`
|
||||
b. if the submodule's path matches the pathspec in `submodule.active`
|
||||
+
|
||||
or
|
||||
|
||||
3. if `submodule.<name>.url` is set.
|
||||
c. if `submodule.<name>.url` is set.
|
||||
|
||||
and these are evaluated in this order.
|
||||
|
||||
@ -193,11 +193,11 @@ For example:
|
||||
url = https://example.org/baz
|
||||
|
||||
In the above config only the submodule 'bar' and 'baz' are active,
|
||||
'bar' due to (1) and 'baz' due to (3). 'foo' is inactive because
|
||||
(1) takes precedence over (3)
|
||||
'bar' due to (a) and 'baz' due to (c). 'foo' is inactive because
|
||||
(a) takes precedence over (c)
|
||||
|
||||
Note that (3) is a historical artefact and will be ignored if the
|
||||
(1) and (2) specify that the submodule is not active. In other words,
|
||||
Note that (c) is a historical artefact and will be ignored if the
|
||||
(a) and (b) specify that the submodule is not active. In other words,
|
||||
if we have a `submodule.<name>.active` set to `false` or if the
|
||||
submodule's path is excluded in the pathspec in `submodule.active`, the
|
||||
url doesn't matter whether it is present or not. This is illustrated in
|
||||
|
@ -50,11 +50,11 @@ following order:
|
||||
* built-in values (some set during build stage),
|
||||
|
||||
* common system-wide configuration file (defaults to
|
||||
`/etc/gitweb-common.conf`),
|
||||
'/etc/gitweb-common.conf'),
|
||||
|
||||
* either per-instance configuration file (defaults to 'gitweb_config.perl'
|
||||
in the same directory as the installed gitweb), or if it does not exists
|
||||
then fallback system-wide configuration file (defaults to `/etc/gitweb.conf`).
|
||||
then fallback system-wide configuration file (defaults to '/etc/gitweb.conf').
|
||||
|
||||
Values obtained in later configuration files override values obtained earlier
|
||||
in the above sequence.
|
||||
@ -82,7 +82,7 @@ You can include other configuration file using read_config_file()
|
||||
subroutine. For example, one might want to put gitweb configuration
|
||||
related to access control for viewing repositories via Gitolite (one
|
||||
of Git repository management tools) in a separate file, e.g. in
|
||||
`/etc/gitweb-gitolite.conf`. To include it, put
|
||||
'/etc/gitweb-gitolite.conf'. To include it, put
|
||||
|
||||
--------------------------------------------------
|
||||
read_config_file("/etc/gitweb-gitolite.conf");
|
||||
@ -142,7 +142,7 @@ and its path_info based equivalent
|
||||
http://git.example.com/gitweb.cgi/foo/bar.git
|
||||
------------------------------------------------
|
||||
+
|
||||
will map to the path `/srv/git/foo/bar.git` on the filesystem.
|
||||
will map to the path '/srv/git/foo/bar.git' on the filesystem.
|
||||
|
||||
$projects_list::
|
||||
Name of a plain text file listing projects, or a name of directory
|
||||
@ -234,9 +234,9 @@ $GIT::
|
||||
|
||||
$mimetypes_file::
|
||||
File to use for (filename extension based) guessing of MIME types before
|
||||
trying `/etc/mime.types`. *NOTE* that this path, if relative, is taken
|
||||
trying '/etc/mime.types'. *NOTE* that this path, if relative, is taken
|
||||
as relative to the current Git repository, not to CGI script. If unset,
|
||||
only `/etc/mime.types` is used (if present on filesystem). If no mimetypes
|
||||
only '/etc/mime.types' is used (if present on filesystem). If no mimetypes
|
||||
file is found, mimetype guessing based on extension of file is disabled.
|
||||
Unset by default.
|
||||
|
||||
@ -297,8 +297,8 @@ relative to base URI of gitweb.
|
||||
+
|
||||
This list should contain the URI of gitweb's standard stylesheet. The default
|
||||
URI of gitweb stylesheet can be set at build time using the `GITWEB_CSS`
|
||||
makefile variable. Its default value is `static/gitweb.css`
|
||||
(or `static/gitweb.min.css` if the `CSSMIN` variable is defined,
|
||||
makefile variable. Its default value is 'static/gitweb.css'
|
||||
(or 'static/gitweb.min.css' if the `CSSMIN` variable is defined,
|
||||
i.e. if CSS minifier is used during build).
|
||||
+
|
||||
*Note*: there is also a legacy `$stylesheet` configuration variable, which was
|
||||
@ -311,7 +311,7 @@ $logo::
|
||||
is displayed in the top right corner of each gitweb page and used as
|
||||
a logo for the Atom feed. Relative to the base URI of gitweb (as a path).
|
||||
Can be adjusted when building gitweb using `GITWEB_LOGO` variable
|
||||
By default set to `static/git-logo.png`.
|
||||
By default set to 'static/git-logo.png'.
|
||||
|
||||
$favicon::
|
||||
Points to the location where you put 'git-favicon.png' on your web
|
||||
@ -320,7 +320,7 @@ $favicon::
|
||||
may display them in the browser's URL bar and next to the site name in
|
||||
bookmarks. Relative to the base URI of gitweb. Can be adjusted at
|
||||
build time using `GITWEB_FAVICON` variable.
|
||||
By default set to `static/git-favicon.png`.
|
||||
By default set to 'static/git-favicon.png'.
|
||||
|
||||
$javascript::
|
||||
Points to the location where you put 'gitweb.js' on your web server,
|
||||
@ -328,7 +328,7 @@ $javascript::
|
||||
Relative to the base URI of gitweb. Can be set at build time using
|
||||
the `GITWEB_JS` build-time configuration variable.
|
||||
+
|
||||
The default value is either `static/gitweb.js`, or `static/gitweb.min.js` if
|
||||
The default value is either 'static/gitweb.js', or 'static/gitweb.min.js' if
|
||||
the `JSMIN` build variable was defined, i.e. if JavaScript minifier was used
|
||||
at build time. *Note* that this single file is generated from multiple
|
||||
individual JavaScript "modules".
|
||||
@ -444,7 +444,7 @@ $default_blob_plain_mimetype::
|
||||
doesn't result in some other type; by default "text/plain".
|
||||
Gitweb guesses mimetype of a file to display based on extension
|
||||
of its filename, using `$mimetypes_file` (if set and file exists)
|
||||
and `/etc/mime.types` files (see *mime.types*(5) manpage; only
|
||||
and '/etc/mime.types' files (see *mime.types*(5) manpage; only
|
||||
filename extension rules are supported by gitweb).
|
||||
|
||||
$default_text_plain_charset::
|
||||
@ -486,7 +486,7 @@ affects how "summary" pages look like, or load limiting).
|
||||
(for example one for `git://` protocol, and one for `http://`
|
||||
protocol).
|
||||
+
|
||||
Note that per repository configuration can be set in `$GIT_DIR/cloneurl`
|
||||
Note that per repository configuration can be set in '$GIT_DIR/cloneurl'
|
||||
file, or as values of multi-value `gitweb.url` configuration variable in
|
||||
project config. Per-repository configuration takes precedence over value
|
||||
composed from `@git_base_url_list` elements and project name.
|
||||
@ -520,7 +520,7 @@ $maxload::
|
||||
If the server load exceeds this value then gitweb will return
|
||||
"503 Service Unavailable" error. The server load is taken to be 0
|
||||
if gitweb cannot determine its value. Currently it works only on Linux,
|
||||
where it uses `/proc/loadavg`; the load there is the number of active
|
||||
where it uses '/proc/loadavg'; the load there is the number of active
|
||||
tasks on the system -- processes that are actually running -- averaged
|
||||
over the last minute.
|
||||
+
|
||||
@ -536,7 +536,7 @@ $omit_owner::
|
||||
|
||||
$per_request_config::
|
||||
If this is set to code reference, it will be run once for each request.
|
||||
You can set parts of configuration that change per session this way.
|
||||
You can set parts of configuration that change per session this way.
|
||||
For example, one might use the following code in a gitweb configuration
|
||||
file
|
||||
+
|
||||
@ -739,7 +739,7 @@ Currently available providers are *"gravatar"* and *"picon"*.
|
||||
Only one provider at a time can be selected ('default' is one element list).
|
||||
If an unknown provider is specified, the feature is disabled.
|
||||
*Note* that some providers might require extra Perl packages to be
|
||||
installed; see `gitweb/INSTALL` for more details.
|
||||
installed; see 'gitweb/INSTALL' for more details.
|
||||
+
|
||||
This feature can be configured on a per-repository basis via
|
||||
repository's `gitweb.avatar` configuration variable.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user