Compare commits
32 Commits
v2.13.0-rc
...
v2.11.3
Author | SHA1 | Date | |
---|---|---|---|
3b82744481 | |||
05bb78abc1 | |||
0bfff8146f | |||
d78f06a1b7 | |||
4d4165b80d | |||
af0178aec7 | |||
8d7f72f176 | |||
7720c33f63 | |||
5e0649dc65 | |||
a4f234bf9b | |||
aeeb2d4968 | |||
3be4cf09cd | |||
2491f77b90 | |||
2d90add5ad | |||
820d7650cc | |||
773e3a2e02 | |||
a849d36cf2 | |||
840ed14198 | |||
fc92b0878c | |||
d61226c111 | |||
c93ab42b74 | |||
cd08873275 | |||
a8d93d19a2 | |||
c8dd1e3bb1 | |||
dc58c8554a | |||
70fcaef90b | |||
ab37a18b60 | |||
ac33201285 | |||
531788af95 | |||
4000b40209 | |||
5a4ffdf587 | |||
3ec804490a |
2
.gitignore
vendored
2
.gitignore
vendored
@ -114,11 +114,11 @@
|
||||
/git-read-tree
|
||||
/git-rebase
|
||||
/git-rebase--am
|
||||
/git-rebase--helper
|
||||
/git-rebase--interactive
|
||||
/git-rebase--merge
|
||||
/git-receive-pack
|
||||
/git-reflog
|
||||
/git-relink
|
||||
/git-remote
|
||||
/git-remote-http
|
||||
/git-remote-https
|
||||
|
7
.mailmap
7
.mailmap
@ -151,8 +151,7 @@ Matthias Kestenholz <matthias@spinlock.ch> <mk@spinlock.ch>
|
||||
Matthias Urlichs <matthias@urlichs.de> <smurf@kiste.(none)>
|
||||
Matthias Urlichs <matthias@urlichs.de> <smurf@smurf.noris.de>
|
||||
Michael Coleman <tutufan@gmail.com>
|
||||
Michael J Gruber <git@grubix.eu> <michaeljgruber+gmane@fastmail.fm>
|
||||
Michael J Gruber <git@grubix.eu> <git@drmicha.warpmail.net>
|
||||
Michael J Gruber <git@drmicha.warpmail.net> <michaeljgruber+gmane@fastmail.fm>
|
||||
Michael S. Tsirkin <mst@kernel.org> <mst@redhat.com>
|
||||
Michael S. Tsirkin <mst@kernel.org> <mst@mellanox.co.il>
|
||||
Michael S. Tsirkin <mst@kernel.org> <mst@dev.mellanox.co.il>
|
||||
@ -178,7 +177,6 @@ Paolo Bonzini <bonzini@gnu.org> <paolo.bonzini@lu.unisi.ch>
|
||||
Pascal Obry <pascal@obry.net> <pascal.obry@gmail.com>
|
||||
Pascal Obry <pascal@obry.net> <pascal.obry@wanadoo.fr>
|
||||
Pat Notz <patnotz@gmail.com> <pknotz@sandia.gov>
|
||||
Patrick Steinhardt <ps@pks.im> <patrick.steinhardt@elego.de>
|
||||
Paul Mackerras <paulus@samba.org> <paulus@dorrigo.(none)>
|
||||
Paul Mackerras <paulus@samba.org> <paulus@pogo.(none)>
|
||||
Peter Baumann <waste.manager@gmx.de> <Peter.B.Baumann@stud.informatik.uni-erlangen.de>
|
||||
@ -194,8 +192,6 @@ Philippe Bruhat <book@cpan.org>
|
||||
Ralf Thielow <ralf.thielow@gmail.com> <ralf.thielow@googlemail.com>
|
||||
Ramsay Jones <ramsay@ramsayjones.plus.com> <ramsay@ramsay1.demon.co.uk>
|
||||
René Scharfe <l.s.r@web.de> <rene.scharfe@lsrfire.ath.cx>
|
||||
Richard Hansen <rhansen@rhansen.org> <hansenr@google.com>
|
||||
Richard Hansen <rhansen@rhansen.org> <rhansen@bbn.com>
|
||||
Robert Fitzsimons <robfitz@273k.net>
|
||||
Robert Shearman <robertshearman@gmail.com> <rob@codeweavers.com>
|
||||
Robert Zeh <robert.a.zeh@gmail.com>
|
||||
@ -227,7 +223,6 @@ Steven Walter <stevenrwalter@gmail.com> <swalter@lexmark.com>
|
||||
Steven Walter <stevenrwalter@gmail.com> <swalter@lpdev.prtdev.lexmark.com>
|
||||
Sven Verdoolaege <skimo@kotnet.org> <Sven.Verdoolaege@cs.kuleuven.ac.be>
|
||||
Sven Verdoolaege <skimo@kotnet.org> <skimo@liacs.nl>
|
||||
SZEDER Gábor <szeder.dev@gmail.com> <szeder@ira.uka.de>
|
||||
Tay Ray Chuan <rctay89@gmail.com>
|
||||
Ted Percival <ted@midg3t.net> <ted.percival@quest.com>
|
||||
Theodore Ts'o <tytso@mit.edu>
|
||||
|
32
.travis.yml
32
.travis.yml
@ -39,38 +39,6 @@ env:
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- env: Windows
|
||||
os: linux
|
||||
compiler:
|
||||
addons:
|
||||
before_install:
|
||||
before_script:
|
||||
script:
|
||||
- >
|
||||
test "$TRAVIS_REPO_SLUG" != "git/git" ||
|
||||
ci/run-windows-build.sh $TRAVIS_BRANCH $(git rev-parse HEAD)
|
||||
after_failure:
|
||||
- env: Linux32
|
||||
os: linux
|
||||
services:
|
||||
- docker
|
||||
before_install:
|
||||
- docker pull daald/ubuntu32:xenial
|
||||
before_script:
|
||||
script:
|
||||
- >
|
||||
docker run
|
||||
--interactive
|
||||
--env DEFAULT_TEST_TARGET
|
||||
--env GIT_PROVE_OPTS
|
||||
--env GIT_TEST_OPTS
|
||||
--env GIT_TEST_CLONE_2GB
|
||||
--volume "${PWD}:/usr/src/git"
|
||||
daald/ubuntu32:xenial
|
||||
/usr/src/git/ci/run-linux32-build.sh $(id -u $USER)
|
||||
# Use the following command to debug the docker build locally:
|
||||
# $ docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/bash daald/ubuntu32:xenial
|
||||
# root@container:/# /usr/src/git/ci/run-linux32-build.sh
|
||||
- env: Documentation
|
||||
os: linux
|
||||
compiler: clang
|
||||
|
@ -120,7 +120,6 @@ INSTALL_INFO = install-info
|
||||
DOCBOOK2X_TEXI = docbook2x-texi
|
||||
DBLATEX = dblatex
|
||||
ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex
|
||||
DBLATEX_COMMON = -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty
|
||||
ifndef PERL_PATH
|
||||
PERL_PATH = /usr/bin/perl
|
||||
endif
|
||||
@ -174,16 +173,6 @@ ifdef GNU_ROFF
|
||||
XMLTO_EXTRA += -m manpage-quote-apos.xsl
|
||||
endif
|
||||
|
||||
ifdef USE_ASCIIDOCTOR
|
||||
ASCIIDOC = asciidoctor
|
||||
ASCIIDOC_CONF =
|
||||
ASCIIDOC_HTML = xhtml5
|
||||
ASCIIDOC_DOCBOOK = docbook45
|
||||
ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
|
||||
ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;'
|
||||
DBLATEX_COMMON =
|
||||
endif
|
||||
|
||||
SHELL_PATH ?= $(SHELL)
|
||||
# Shell quote;
|
||||
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
||||
@ -348,7 +337,7 @@ manpage-base-url.xsl: manpage-base-url.xsl.in
|
||||
|
||||
user-manual.xml: user-manual.txt user-manual.conf
|
||||
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
||||
$(TXT_TO_XML) -d book -o $@+ $< && \
|
||||
$(TXT_TO_XML) -d article -o $@+ $< && \
|
||||
mv $@+ $@
|
||||
|
||||
technical/api-index.txt: technical/api-index-skel.txt \
|
||||
@ -379,14 +368,13 @@ user-manual.texi: user-manual.xml
|
||||
|
||||
user-manual.pdf: user-manual.xml
|
||||
$(QUIET_DBLATEX)$(RM) $@+ $@ && \
|
||||
$(DBLATEX) -o $@+ $(DBLATEX_COMMON) $< && \
|
||||
$(DBLATEX) -o $@+ -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty $< && \
|
||||
mv $@+ $@
|
||||
|
||||
gitman.texi: $(MAN_XML) cat-texi.perl texi.xsl
|
||||
gitman.texi: $(MAN_XML) cat-texi.perl
|
||||
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
|
||||
($(foreach xml,$(sort $(MAN_XML)),xsltproc -o $(xml)+ texi.xsl $(xml) && \
|
||||
$(DOCBOOK2X_TEXI) --encoding=UTF-8 --to-stdout $(xml)+ && \
|
||||
rm $(xml)+ &&) true) > $@++ && \
|
||||
($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --encoding=UTF-8 \
|
||||
--to-stdout $(xml) &&) true) > $@++ && \
|
||||
$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
|
||||
rm $@++ && \
|
||||
mv $@+ $@
|
||||
|
@ -45,4 +45,11 @@ Fixes since v2.10.2
|
||||
* Improve the rule to convert "unsigned char [20]" into "struct
|
||||
object_id *" in contrib/coccinelle/
|
||||
|
||||
* "git-shell" rejects a request to serve a repository whose name
|
||||
begins with a dash, which makes it no longer possible to get it
|
||||
confused into spawning service programs like "git-upload-pack" with
|
||||
an option like "--help", which in turn would spawn an interactive
|
||||
pager, instead of working with the repository user asked to access
|
||||
(i.e. the one whose name is "--help").
|
||||
|
||||
Also contains minor documentation updates and code clean-ups.
|
||||
|
4
Documentation/RelNotes/2.10.4.txt
Normal file
4
Documentation/RelNotes/2.10.4.txt
Normal file
@ -0,0 +1,4 @@
|
||||
Git v2.10.4 Release Notes
|
||||
=========================
|
||||
|
||||
This release forward-ports the fix for "ssh://..." URL from Git v2.7.6
|
12
Documentation/RelNotes/2.11.2.txt
Normal file
12
Documentation/RelNotes/2.11.2.txt
Normal file
@ -0,0 +1,12 @@
|
||||
Git v2.11.2 Release Notes
|
||||
=========================
|
||||
|
||||
Fixes since v2.11.1
|
||||
-------------------
|
||||
|
||||
* "git-shell" rejects a request to serve a repository whose name
|
||||
begins with a dash, which makes it no longer possible to get it
|
||||
confused into spawning service programs like "git-upload-pack" with
|
||||
an option like "--help", which in turn would spawn an interactive
|
||||
pager, instead of working with the repository user asked to access
|
||||
(i.e. the one whose name is "--help").
|
4
Documentation/RelNotes/2.11.3.txt
Normal file
4
Documentation/RelNotes/2.11.3.txt
Normal file
@ -0,0 +1,4 @@
|
||||
Git v2.11.3 Release Notes
|
||||
=========================
|
||||
|
||||
This release forward-ports the fix for "ssh://..." URL from Git v2.7.6
|
@ -1,500 +0,0 @@
|
||||
Git 2.12 Release Notes
|
||||
======================
|
||||
|
||||
Backward compatibility notes.
|
||||
|
||||
* Use of an empty string that is used for 'everything matches' is
|
||||
still warned and Git asks users to use a more explicit '.' for that
|
||||
instead. The hope is that existing users will not mind this
|
||||
change, and eventually the warning can be turned into a hard error,
|
||||
upgrading the deprecation into removal of this (mis)feature. That
|
||||
is not scheduled to happen in the upcoming release (yet).
|
||||
|
||||
* The historical argument order "git merge <msg> HEAD <commit>..."
|
||||
has been deprecated for quite some time, and will be removed in a
|
||||
future release.
|
||||
|
||||
* An ancient script "git relink" has been removed.
|
||||
|
||||
|
||||
Updates since v2.11
|
||||
-------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* Various updates to "git p4".
|
||||
|
||||
* "git p4" didn't interact with the internal of .git directory
|
||||
correctly in the modern "git-worktree"-enabled world.
|
||||
|
||||
* "git branch --list" and friends learned "--ignore-case" option to
|
||||
optionally sort branches and tags case insensitively.
|
||||
|
||||
* In addition to %(subject), %(body), "log --pretty=format:..."
|
||||
learned a new placeholder %(trailers).
|
||||
|
||||
* "git rebase" learned "--quit" option, which allows a user to
|
||||
remove the metadata left by an earlier "git rebase" that was
|
||||
manually aborted without using "git rebase --abort".
|
||||
|
||||
* "git clone --reference $there --recurse-submodules $super" has been
|
||||
taught to guess repositories usable as references for submodules of
|
||||
$super that are embedded in $there while making a clone of the
|
||||
superproject borrow objects from $there; extend the mechanism to
|
||||
also allow submodules of these submodules to borrow repositories
|
||||
embedded in these clones of the submodules embedded in the clone of
|
||||
the superproject.
|
||||
|
||||
* Porcelain scripts written in Perl are getting internationalized.
|
||||
|
||||
* "git merge --continue" has been added as a synonym to "git commit"
|
||||
to conclude a merge that has stopped due to conflicts.
|
||||
|
||||
* Finer-grained control of what protocols are allowed for transports
|
||||
during clone/fetch/push have been enabled via a new configuration
|
||||
mechanism.
|
||||
|
||||
* "git shortlog" learned "--committer" option to group commits by
|
||||
committer, instead of author.
|
||||
|
||||
* GitLFS integration with "git p4" has been updated.
|
||||
|
||||
* The isatty() emulation for Windows has been updated to eradicate
|
||||
the previous hack that depended on internals of (older) MSVC
|
||||
runtime.
|
||||
|
||||
* Some platforms no longer understand "latin-1" that is still seen in
|
||||
the wild in e-mail headers; replace them with "iso-8859-1" that is
|
||||
more widely known when conversion fails from/to it.
|
||||
|
||||
* "git grep" has been taught to optionally recurse into submodules.
|
||||
|
||||
* "git rm" used to refuse to remove a submodule when it has its own
|
||||
git repository embedded in its working tree. It learned to move
|
||||
the repository away to $GIT_DIR/modules/ of the superproject
|
||||
instead, and allow the submodule to be deleted (as long as there
|
||||
will be no loss of local modifications, that is).
|
||||
|
||||
* A recent updates to "git p4" was not usable for older p4 but it
|
||||
could be made to work with minimum changes. Do so.
|
||||
|
||||
* "git diff" learned diff.interHunkContext configuration variable
|
||||
that gives the default value for its --inter-hunk-context option.
|
||||
|
||||
* The prereleaseSuffix feature of version comparison that is used in
|
||||
"git tag -l" did not correctly when two or more prereleases for the
|
||||
same release were present (e.g. when 2.0, 2.0-beta1, and 2.0-beta2
|
||||
are there and the code needs to compare 2.0-beta1 and 2.0-beta2).
|
||||
|
||||
* "git submodule push" learned "--recurse-submodules=only option to
|
||||
push submodules out without pushing the top-level superproject.
|
||||
|
||||
* "git tag" and "git verify-tag" learned to put GPG verification
|
||||
status in their "--format=<placeholders>" output format.
|
||||
|
||||
* An ancient repository conversion tool left in contrib/ has been
|
||||
removed.
|
||||
|
||||
* "git show-ref HEAD" used with "--verify" because the user is not
|
||||
interested in seeing refs/remotes/origin/HEAD, and used with
|
||||
"--head" because the user does not want HEAD to be filtered out,
|
||||
i.e. "git show-ref --head --verify HEAD", did not work as expected.
|
||||
|
||||
* "git submodule add" used to be confused and refused to add a
|
||||
locally created repository; users can now use "--force" option
|
||||
to add them.
|
||||
(merge 619acfc78c sb/submodule-add-force later to maint).
|
||||
|
||||
* Some people feel the default set of colors used by "git log --graph"
|
||||
rather limiting. A mechanism to customize the set of colors has
|
||||
been introduced.
|
||||
|
||||
* "git read-tree" and its underlying unpack_trees() machinery learned
|
||||
to report problematic paths prefixed with the --super-prefix option.
|
||||
|
||||
* When a submodule "A", which has another submodule "B" nested within
|
||||
it, is "absorbed" into the top-level superproject, the inner
|
||||
submodule "B" used to be left in a strange state. The logic to
|
||||
adjust the .git pointers in these submodules has been corrected.
|
||||
|
||||
* The user can specify a custom update method that is run when
|
||||
"submodule update" updates an already checked out submodule. This
|
||||
was ignored when checking the submodule out for the first time and
|
||||
we instead always just checked out the commit that is bound to the
|
||||
path in the superproject's index.
|
||||
|
||||
* The command line completion (in contrib/) learned that
|
||||
"git diff --submodule=" can take "diff" as a recently added option.
|
||||
|
||||
* The "core.logAllRefUpdates" that used to be boolean has been
|
||||
enhanced to take 'always' as well, to record ref updates to refs
|
||||
other than the ones that are expected to be updated (i.e. branches,
|
||||
remote-tracking branches and notes).
|
||||
|
||||
* Comes with more command line completion (in contrib/) for recently
|
||||
introduced options.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* Commands that operate on a log message and add lines to the trailer
|
||||
blocks, such as "format-patch -s", "cherry-pick (-x|-s)", and
|
||||
"commit -s", have been taught to use the logic of and share the
|
||||
code with "git interpret-trailer".
|
||||
|
||||
* The default Travis-CI configuration specifies newer P4 and GitLFS.
|
||||
|
||||
* The "fast hash" that had disastrous performance issues in some
|
||||
corner cases has been retired from the internal diff.
|
||||
|
||||
* The character width table has been updated to match Unicode 9.0
|
||||
|
||||
* Update the procedure to generate "tags" for developer support.
|
||||
|
||||
* The codeflow of setting NOATIME and CLOEXEC on file descriptors Git
|
||||
opens has been simplified.
|
||||
|
||||
* "git diff" and its family had two experimental heuristics to shift
|
||||
the contents of a hunk to make the patch easier to read. One of
|
||||
them turns out to be better than the other, so leave only the
|
||||
"--indent-heuristic" option and remove the other one.
|
||||
|
||||
* A new submodule helper "git submodule embedgitdirs" to make it
|
||||
easier to move embedded .git/ directory for submodules in a
|
||||
superproject to .git/modules/ (and point the latter with the former
|
||||
that is turned into a "gitdir:" file) has been added.
|
||||
|
||||
* "git push \\server\share\dir" has recently regressed and then
|
||||
fixed. A test has retroactively been added for this breakage.
|
||||
|
||||
* Build updates for Cygwin.
|
||||
|
||||
* The implementation of "real_path()" was to go there with chdir(2)
|
||||
and call getcwd(3), but this obviously wouldn't be usable in a
|
||||
threaded environment. Rewrite it to manually resolve relative
|
||||
paths including symbolic links in path components.
|
||||
|
||||
* Adjust documentation to help AsciiDoctor render better while not
|
||||
breaking the rendering done by AsciiDoc.
|
||||
|
||||
* The sequencer machinery has been further enhanced so that a later
|
||||
set of patches can start using it to reimplement "rebase -i".
|
||||
|
||||
* Update the definition of the MacOSX test environment used by
|
||||
TravisCI.
|
||||
|
||||
* Rewrite a scripted porcelain "git difftool" in C.
|
||||
|
||||
* "make -C t failed" will now run only the tests that failed in the
|
||||
previous run. This is usable only when prove is not use, and gives
|
||||
a useless error message when run after "make clean", but otherwise
|
||||
is serviceable.
|
||||
|
||||
* "uchar [40]" to "struct object_id" conversion continues.
|
||||
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
||||
|
||||
Fixes since v2.10
|
||||
-----------------
|
||||
|
||||
Unless otherwise noted, all the fixes since v2.9 in the maintenance
|
||||
track are contained in this release (see the maintenance releases'
|
||||
notes for details).
|
||||
|
||||
* We often decide if a session is interactive by checking if the
|
||||
standard I/O streams are connected to a TTY, but isatty() that
|
||||
comes with Windows incorrectly returned true if it is used on NUL
|
||||
(i.e. an equivalent to /dev/null). This has been fixed.
|
||||
|
||||
* "git svn" did not work well with path components that are "0", and
|
||||
some configuration variable it uses were not documented.
|
||||
|
||||
* "git rev-parse --symbolic" failed with a more recent notation like
|
||||
"HEAD^-1" and "HEAD^!".
|
||||
|
||||
* An empty directory in a working tree that can simply be nuked used
|
||||
to interfere while merging or cherry-picking a change to create a
|
||||
submodule directory there, which has been fixed..
|
||||
|
||||
* The code in "git push" to compute if any commit being pushed in the
|
||||
superproject binds a commit in a submodule that hasn't been pushed
|
||||
out was overly inefficient, making it unusable even for a small
|
||||
project that does not have any submodule but have a reasonable
|
||||
number of refs.
|
||||
|
||||
* "git push --dry-run --recurse-submodule=on-demand" wasn't
|
||||
"--dry-run" in the submodules.
|
||||
|
||||
* The output from "git worktree list" was made in readdir() order,
|
||||
and was unstable.
|
||||
|
||||
* mergetool.<tool>.trustExitCode configuration variable did not apply
|
||||
to built-in tools, but now it does.
|
||||
|
||||
* "git p4" LFS support was broken when LFS stores an empty blob.
|
||||
|
||||
* A corner case in merge-recursive regression that crept in
|
||||
during 2.10 development cycle has been fixed.
|
||||
|
||||
* Transport with dumb http can be fooled into following foreign URLs
|
||||
that the end user does not intend to, especially with the server
|
||||
side redirects and http-alternates mechanism, which can lead to
|
||||
security issues. Tighten the redirection and make it more obvious
|
||||
to the end user when it happens.
|
||||
|
||||
* Update the error messages from the dumb-http client when it fails
|
||||
to obtain loose objects; we used to give sensible error message
|
||||
only upon 404 but we now forbid unexpected redirects that needs to
|
||||
be reported with something sensible.
|
||||
|
||||
* When diff.renames configuration is on (and with Git 2.9 and later,
|
||||
it is enabled by default, which made it worse), "git stash"
|
||||
misbehaved if a file is removed and another file with a very
|
||||
similar content is added.
|
||||
|
||||
* "git diff --no-index" did not take "--no-abbrev" option.
|
||||
|
||||
* "git difftool --dir-diff" had a minor regression when started from
|
||||
a subdirectory, which has been fixed.
|
||||
|
||||
* "git commit --allow-empty --only" (no pathspec) with dirty index
|
||||
ought to be an acceptable way to create a new commit that does not
|
||||
change any paths, but it was forbidden, perhaps because nobody
|
||||
needed it so far.
|
||||
|
||||
* Git 2.11 had a minor regression in "merge --ff-only" that competed
|
||||
with another process that simultanously attempted to update the
|
||||
index. We used to explain what went wrong with an error message,
|
||||
but the new code silently failed. The error message has been
|
||||
resurrected.
|
||||
|
||||
* A pathname that begins with "//" or "\\" on Windows is special but
|
||||
path normalization logic was unaware of it.
|
||||
|
||||
* "git pull --rebase", when there is no new commits on our side since
|
||||
we forked from the upstream, should be able to fast-forward without
|
||||
invoking "git rebase", but it didn't.
|
||||
|
||||
* The way to specify hotkeys to "xxdiff" that is used by "git
|
||||
mergetool" has been modernized to match recent versions of xxdiff.
|
||||
|
||||
* Unlike "git am --abort", "git cherry-pick --abort" moved HEAD back
|
||||
to where cherry-pick started while picking multiple changes, when
|
||||
the cherry-pick stopped to ask for help from the user, and the user
|
||||
did "git reset --hard" to a different commit in order to re-attempt
|
||||
the operation.
|
||||
|
||||
* Code cleanup in shallow boundary computation.
|
||||
|
||||
* A recent update to receive-pack to make it easier to drop garbage
|
||||
objects made it clear that GIT_ALTERNATE_OBJECT_DIRECTORIES cannot
|
||||
have a pathname with a colon in it (no surprise!), and this in turn
|
||||
made it impossible to push into a repository at such a path. This
|
||||
has been fixed by introducing a quoting mechanism used when
|
||||
appending such a path to the colon-separated list.
|
||||
|
||||
* The function usage_msg_opt() has been updated to say "fatal:"
|
||||
before the custom message programs give, when they want to die
|
||||
with a message about wrong command line options followed by the
|
||||
standard usage string.
|
||||
|
||||
* "git index-pack --stdin" needs an access to an existing repository,
|
||||
but "git index-pack file.pack" to generate an .idx file that
|
||||
corresponds to a packfile does not.
|
||||
|
||||
* Fix for NDEBUG builds.
|
||||
|
||||
* A lazy "git push" without refspec did not internally use a fully
|
||||
specified refspec to perform 'current', 'simple', or 'upstream'
|
||||
push, causing unnecessary "ambiguous ref" errors.
|
||||
|
||||
* "git p4" misbehaved when swapping a directory and a symbolic link.
|
||||
|
||||
* Even though an fix was attempted in Git 2.9.3 days, but running
|
||||
"git difftool --dir-diff" from a subdirectory never worked. This
|
||||
has been fixed.
|
||||
|
||||
* "git p4" that tracks multile p4 paths imported a single changelist
|
||||
that touches files in these multiple paths as one commit, followed
|
||||
by many empty commits. This has been fixed.
|
||||
|
||||
* A potential but unlikely buffer overflow in Windows port has been
|
||||
fixed.
|
||||
|
||||
* When the http server gives an incomplete response to a smart-http
|
||||
rpc call, it could lead to client waiting for a full response that
|
||||
will never come. Teach the client side to notice this condition
|
||||
and abort the transfer.
|
||||
|
||||
* Compression setting for producing packfiles were spread across
|
||||
three codepaths, one of which did not honor any configuration.
|
||||
Unify these so that all of them honor core.compression and
|
||||
pack.compression variables the same way.
|
||||
|
||||
* "git fast-import" sometimes mishandled while rebalancing notes
|
||||
tree, which has been fixed.
|
||||
|
||||
* Recent update to the default abbreviation length that auto-scales
|
||||
lacked documentation update, which has been corrected.
|
||||
|
||||
* Leakage of lockfiles in the config subsystem has been fixed.
|
||||
|
||||
* It is natural that "git gc --auto" may not attempt to pack
|
||||
everything into a single pack, and there is no point in warning
|
||||
when the user has configured the system to use the pack bitmap,
|
||||
leading to disabling further "gc".
|
||||
|
||||
* "git archive" did not read the standard configuration files, and
|
||||
failed to notice a file that is marked as binary via the userdiff
|
||||
driver configuration.
|
||||
|
||||
* "git blame --porcelain" misidentified the "previous" <commit, path>
|
||||
pair (aka "source") when contents came from two or more files.
|
||||
|
||||
* "git rebase -i" with a recent update started showing an incorrect
|
||||
count when squashing more than 10 commits.
|
||||
|
||||
* "git <cmd> @{push}" on a detached HEAD used to segfault; it has
|
||||
been corrected to error out with a message.
|
||||
|
||||
* Running "git add a/b" when "a" is a submodule correctly errored
|
||||
out, but without a meaningful error message.
|
||||
(merge 2d81c48fa7 sb/pathspec-errors later to maint).
|
||||
|
||||
* Typing ^C to pager, which usually does not kill it, killed Git and
|
||||
took the pager down as a collateral damage in certain process-tree
|
||||
structure. This has been fixed.
|
||||
|
||||
* "git mergetool" without any pathspec on the command line that is
|
||||
run from a subdirectory became no-op in Git v2.11 by mistake, which
|
||||
has been fixed.
|
||||
|
||||
* Retire long unused/unmaintained gitview from the contrib/ area.
|
||||
(merge 3120925c25 sb/remove-gitview later to maint).
|
||||
|
||||
* Tighten a test to avoid mistaking an extended ERE regexp engine as
|
||||
a PRE regexp engine.
|
||||
|
||||
* An error message with an ASCII control character like '\r' in it
|
||||
can alter the message to hide its early part, which is problematic
|
||||
when a remote side gives such an error message that the local side
|
||||
will relay with a "remote: " prefix.
|
||||
(merge f290089879 jk/vreport-sanitize later to maint).
|
||||
|
||||
* "git fsck" inspects loose objects more carefully now.
|
||||
(merge cce044df7f jk/loose-object-fsck later to maint).
|
||||
|
||||
* A crashing bug introduced in v2.11 timeframe has been found (it is
|
||||
triggerable only in fast-import) and fixed.
|
||||
(merge abd5a00268 jk/clear-delta-base-cache-fix later to maint).
|
||||
|
||||
* With an anticipatory tweak for remotes defined in ~/.gitconfig
|
||||
(e.g. "remote.origin.prune" set to true, even though there may or
|
||||
may not actually be "origin" remote defined in a particular Git
|
||||
repository), "git remote rename" and other commands misinterpreted
|
||||
and behaved as if such a non-existing remote actually existed.
|
||||
(merge e459b073fb js/remote-rename-with-half-configured-remote later to maint).
|
||||
|
||||
* A few codepaths had to rely on a global variable when sorting
|
||||
elements of an array because sort(3) API does not allow extra data
|
||||
to be passed to the comparison function. Use qsort_s() when
|
||||
natively available, and a fallback implementation of it when not,
|
||||
to eliminate the need, which is a prerequisite for making the
|
||||
codepath reentrant.
|
||||
|
||||
* "git fsck --connectivity-check" was not working at all.
|
||||
(merge a2b22854bd jk/fsck-connectivity-check-fix later to maint).
|
||||
|
||||
* After starting "git rebase -i", which first opens the user's editor
|
||||
to edit the series of patches to apply, but before saving the
|
||||
contents of that file, "git status" failed to show the current
|
||||
state (i.e. you are in an interactive rebase session, but you have
|
||||
applied no steps yet) correctly.
|
||||
(merge df9ded4984 js/status-pre-rebase-i later to maint).
|
||||
|
||||
* Test tweak for FreeBSD where /usr/bin/unzip is unsuitable to run
|
||||
our tests but /usr/local/bin/unzip is usable.
|
||||
(merge d98b2c5fce js/unzip-in-usr-bin-workaround later to maint).
|
||||
|
||||
* "git p4" did not work well with multiple git-p4.mapUser entries on
|
||||
Windows.
|
||||
(merge c3c2b05776 gv/mingw-p4-mapuser later to maint).
|
||||
|
||||
* "git help" enumerates executable files in $PATH; the implementation
|
||||
of "is this file executable?" on Windows has been optimized.
|
||||
(merge c755015f79 hv/mingw-help-is-executable later to maint).
|
||||
|
||||
* Test tweaks for those who have default ACL in their git source tree
|
||||
that interfere with the umask test.
|
||||
(merge d549d21307 mm/reset-facl-before-umask-test later to maint).
|
||||
|
||||
* Names of the various hook scripts must be spelled exactly, but on
|
||||
Windows, an .exe binary must be named with .exe suffix; notice
|
||||
$GIT_DIR/hooks/<hookname>.exe as a valid <hookname> hook.
|
||||
(merge 235be51fbe js/mingw-hooks-with-exe-suffix later to maint).
|
||||
|
||||
* Asciidoctor, an alternative reimplementation of AsciiDoc, still
|
||||
needs some changes to work with documents meant to be formatted
|
||||
with AsciiDoc. "make USE_ASCIIDOCTOR=YesPlease" to use it out of
|
||||
the box to document our pages is getting closer to reality.
|
||||
|
||||
* Correct command line completion (in contrib/) on "git svn"
|
||||
(merge 2cbad17642 ew/complete-svn-authorship-options later to maint).
|
||||
|
||||
* Incorrect usage help message for "git worktree prune" has been fixed.
|
||||
(merge 2488dcab22 ps/worktree-prune-help-fix later to maint).
|
||||
|
||||
* Adjust a perf test to new world order where commands that do
|
||||
require a repository are really strict about having a repository.
|
||||
(merge c86000c1a7 rs/p5302-create-repositories-before-tests later to maint).
|
||||
|
||||
* "git log --graph" did not work well with "--name-only", even though
|
||||
other forms of "diff" output were handled correctly.
|
||||
(merge f5022b5fed jk/log-graph-name-only later to maint).
|
||||
|
||||
* The push-options given via the "--push-options" option were not
|
||||
passed through to external remote helpers such as "smart HTTP" that
|
||||
are invoked via the transport helper.
|
||||
|
||||
* The documentation explained what "git stash" does to the working
|
||||
tree (after stashing away the local changes) in terms of "reset
|
||||
--hard", which was exposing an unnecessary implementation detail.
|
||||
(merge 20a7e06172 tg/stash-doc-cleanup later to maint).
|
||||
|
||||
* When "git p4" imports changelist that removes paths, it failed to
|
||||
convert pathnames when the p4 used encoding different from the one
|
||||
used on the Git side. This has been corrected.
|
||||
(merge a8b05162e8 ls/p4-path-encoding later to maint).
|
||||
|
||||
* A new coccinelle rule that catches a check of !pointer before the
|
||||
pointer is free(3)d, which most likely is a bug.
|
||||
(merge ec6cd14c7a rs/cocci-check-free-only-null later to maint).
|
||||
|
||||
* "ls-files" run with pathspec has been micro-optimized to avoid
|
||||
having to memmove(3) unnecessary bytes.
|
||||
(merge 96f6d3f61a rs/ls-files-partial-optim later to maint).
|
||||
|
||||
* A hotfix for a topic already in 'master'.
|
||||
(merge a4d92d579f js/mingw-isatty later to maint).
|
||||
|
||||
* Other minor doc, test and build updates and code cleanups.
|
||||
(merge f2627d9b19 sb/submodule-config-cleanup later to maint).
|
||||
(merge 384f1a167b sb/unpack-trees-cleanup later to maint).
|
||||
(merge 874444b704 rh/diff-orderfile-doc later to maint).
|
||||
(merge eafd5d9483 cw/doc-sign-off later to maint).
|
||||
(merge 0aaad415bc rs/absolute-pathdup later to maint).
|
||||
(merge 4432dd6b5b rs/receive-pack-cleanup later to maint).
|
||||
(merge 540a398e9c sg/mailmap-self later to maint).
|
||||
(merge 209df269a6 nd/rev-list-all-includes-HEAD-doc later to maint).
|
||||
(merge 941b9c5270 sb/doc-unify-bottom later to maint).
|
||||
(merge 2aaf37b62c jk/doc-remote-helpers-markup-fix later to maint).
|
||||
(merge e91461b332 jk/doc-submodule-markup-fix later to maint).
|
||||
(merge 8ab9740d9f dp/submodule-doc-markup-fix later to maint).
|
||||
(merge 0838cbc22f jk/tempfile-ferror-fclose-confusion later to maint).
|
||||
(merge 115a40add6 dr/doc-check-ref-format-normalize later to maint).
|
||||
(merge 133f0a299d gp/document-dotfiles-in-templates-are-not-copied later to maint).
|
||||
(merge 2b35a9f4c7 bc/blame-doc-fix later to maint).
|
||||
(merge 7e82388024 ps/doc-gc-aggressive-depth-update later to maint).
|
||||
(merge 9993a7c5f1 bc/worktree-doc-fix-detached later to maint).
|
||||
(merge e519eccdf4 rt/align-add-i-help-text later to maint).
|
@ -1,41 +0,0 @@
|
||||
Git v2.12.1 Release Notes
|
||||
=========================
|
||||
|
||||
Fixes since v2.12
|
||||
-----------------
|
||||
|
||||
* Reduce authentication round-trip over HTTP when the server supports
|
||||
just a single authentication method. This also improves the
|
||||
behaviour when Git is misconfigured to enable http.emptyAuth
|
||||
against a server that does not authenticate without a username
|
||||
(i.e. not using Kerberos etc., which makes http.emptyAuth
|
||||
pointless).
|
||||
|
||||
* Windows port wants to use OpenSSL's implementation of SHA-1
|
||||
routines, so let them.
|
||||
|
||||
* Add 32-bit Linux variant to the set of platforms to be tested with
|
||||
Travis CI.
|
||||
|
||||
* When a redirected http transport gets an error during the
|
||||
redirected request, we ignored the error we got from the server,
|
||||
and ended up giving a not-so-useful error message.
|
||||
|
||||
* The patch subcommand of "git add -i" was meant to have paths
|
||||
selection prompt just like other subcommand, unlike "git add -p"
|
||||
directly jumps to hunk selection. Recently, this was broken and
|
||||
"add -i" lost the paths selection dialog, but it now has been
|
||||
fixed.
|
||||
|
||||
* Git v2.12 was shipped with an embarrassing breakage where various
|
||||
operations that verify paths given from the user stopped dying when
|
||||
seeing an issue, and instead later triggering segfault.
|
||||
|
||||
* The code to parse "git log -L..." command line was buggy when there
|
||||
are many ranges specified with -L; overrun of the allocated buffer
|
||||
has been fixed.
|
||||
|
||||
* The command-line parsing of "git log -L" copied internal data
|
||||
structures using incorrect size on ILP32 systems.
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
@ -1,83 +0,0 @@
|
||||
Git v2.12.2 Release Notes
|
||||
=========================
|
||||
|
||||
Fixes since v2.12.1
|
||||
-------------------
|
||||
|
||||
* "git status --porcelain" is supposed to give a stable output, but a
|
||||
few strings were left as translatable by mistake.
|
||||
|
||||
* "Dumb http" transport used to misparse a nonsense http-alternates
|
||||
response, which has been fixed.
|
||||
|
||||
* "git diff --quiet" relies on the size field in diff_filespec to be
|
||||
correctly populated, but diff_populate_filespec() helper function
|
||||
made an incorrect short-cut when asked only to populate the size
|
||||
field for paths that need to go through convert_to_git() (e.g. CRLF
|
||||
conversion).
|
||||
|
||||
* There is no need for Python only to give a few messages to the
|
||||
standard error stream, but we somehow did.
|
||||
|
||||
* A leak in a codepath to read from a packed object in (rare) cases
|
||||
has been plugged.
|
||||
|
||||
* "git upload-pack", which is a counter-part of "git fetch", did not
|
||||
report a request for a ref that was not advertised as invalid.
|
||||
This is generally not a problem (because "git fetch" will stop
|
||||
before making such a request), but is the right thing to do.
|
||||
|
||||
* A "gc.log" file left by a backgrounded "gc --auto" disables further
|
||||
automatic gc; it has been taught to run at least once a day (by
|
||||
default) by ignoring a stale "gc.log" file that is too old.
|
||||
|
||||
* "git remote rm X", when a branch has remote X configured as the
|
||||
value of its branch.*.remote, tried to remove branch.*.remote and
|
||||
branch.*.merge and failed if either is unset.
|
||||
|
||||
* A caller of tempfile API that uses stdio interface to write to
|
||||
files may ignore errors while writing, which is detected when
|
||||
tempfile is closed (with a call to ferror()). By that time, the
|
||||
original errno that may have told us what went wrong is likely to
|
||||
be long gone and was overwritten by an irrelevant value.
|
||||
close_tempfile() now resets errno to EIO to make errno at least
|
||||
predictable.
|
||||
|
||||
* "git show-branch" expected there were only very short branch names
|
||||
in the repository and used a fixed-length buffer to hold them
|
||||
without checking for overflow.
|
||||
|
||||
* The code that parses header fields in the commit object has been
|
||||
updated for (micro)performance and code hygiene.
|
||||
|
||||
* A test that creates a confusing branch whose name is HEAD has been
|
||||
corrected not to do so.
|
||||
|
||||
* "Cc:" on the trailer part does not have to conform to RFC strictly,
|
||||
unlike in the e-mail header. "git send-email" has been updated to
|
||||
ignore anything after '>' when picking addresses, to allow non-address
|
||||
cruft like " # stable 4.4" after the address.
|
||||
|
||||
* "git push" had a handful of codepaths that could lead to a deadlock
|
||||
when unexpected error happened, which has been fixed.
|
||||
|
||||
* Code to read submodule.<name>.ignore config did not state the
|
||||
variable name correctly when giving an error message diagnosing
|
||||
misconfiguration.
|
||||
|
||||
* "git ls-remote" and "git archive --remote" are designed to work
|
||||
without being in a directory under Git's control. However, recent
|
||||
updates revealed that we randomly look into a directory called
|
||||
.git/ without actually doing necessary set-up when working in a
|
||||
repository. Stop doing so.
|
||||
|
||||
* The code to parse the command line "git grep <patterns>... <rev>
|
||||
[[--] <pathspec>...]" has been cleaned up, and a handful of bugs
|
||||
have been fixed (e.g. we used to check "--" if it is a rev).
|
||||
|
||||
* The code to parse "git -c VAR=VAL cmd" and set configuration
|
||||
variable for the duration of cmd had two small bugs, which have
|
||||
been fixed.
|
||||
This supersedes jc/config-case-cmdline topic that has been discarded.
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
@ -1,57 +0,0 @@
|
||||
Git v2.12.3 Release Notes
|
||||
=========================
|
||||
|
||||
Fixes since v2.12.2
|
||||
-------------------
|
||||
|
||||
* The "parse_config_key()" API function has been cleaned up.
|
||||
|
||||
* An helper function to make it easier to append the result from
|
||||
real_path() to a strbuf has been added.
|
||||
|
||||
* The t/perf performance test suite was not prepared to test not so
|
||||
old versions of Git, but now it covers versions of Git that are not
|
||||
so ancient.
|
||||
|
||||
* Picking two versions of Git and running tests to make sure the
|
||||
older one and the newer one interoperate happily has now become
|
||||
possible.
|
||||
|
||||
* Teach the "debug" helper used in the test framework that allows a
|
||||
command to run under "gdb" to make the session interactive.
|
||||
|
||||
* "git repack --depth=<n>" for a long time busted the specified depth
|
||||
when reusing delta from existing packs. This has been corrected.
|
||||
|
||||
* user.email that consists of only cruft chars should consistently
|
||||
error out, but didn't.
|
||||
|
||||
* A few tests were run conditionally under (rare) conditions where
|
||||
they cannot be run (like running cvs tests under 'root' account).
|
||||
|
||||
* "git branch @" created refs/heads/@ as a branch, and in general the
|
||||
code that handled @{-1} and @{upstream} was a bit too loose in
|
||||
disambiguating.
|
||||
|
||||
* "git fetch" that requests a commit by object name, when the other
|
||||
side does not allow such an request, failed without much
|
||||
explanation.
|
||||
|
||||
* "git filter-branch --prune-empty" drops a single-parent commit that
|
||||
becomes a no-op, but did not drop a root commit whose tree is empty.
|
||||
|
||||
* Recent versions of Git treats http alternates (used in dumb http
|
||||
transport) just like HTTP redirects and requires the client to
|
||||
enable following it, due to security concerns. But we forgot to
|
||||
give a warning when we decide not to honor the alternates.
|
||||
|
||||
* NO_PTHREADS build has been broken for some time; now fixed.
|
||||
|
||||
* Fix for potential segv introduced in v2.11.0 and later (also
|
||||
v2.10.2).
|
||||
|
||||
* A few unterminated here documents in tests were fixed, which in
|
||||
turn revealed incorrect expectations the tests make. These tests
|
||||
have been updated.
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
@ -1,511 +0,0 @@
|
||||
Git 2.13 Release Notes
|
||||
======================
|
||||
|
||||
Backward compatibility notes.
|
||||
|
||||
* Use of an empty string as a pathspec element that is used for
|
||||
'everything matches' is still warned and Git asks users to use a
|
||||
more explicit '.' for that instead. The hope is that existing
|
||||
users will not mind this change, and eventually the warning can be
|
||||
turned into a hard error, upgrading the deprecation into removal of
|
||||
this (mis)feature. That is not scheduled to happen in the upcoming
|
||||
release (yet).
|
||||
|
||||
* The historical argument order "git merge <msg> HEAD <commit>..."
|
||||
has been deprecated for quite some time, and is now removed.
|
||||
|
||||
* The default location "~/.git-credential-cache/socket" for the
|
||||
socket used to communicate with the credential-cache daemon has
|
||||
been moved to "~/.cache/git/credential/socket".
|
||||
|
||||
* Git now avoids blindly falling back to ".git" when the setup
|
||||
sequence said we are _not_ in Git repository. A corner case that
|
||||
happens to work right now may be broken by a call to die("BUG").
|
||||
We've tried hard to locate such cases and fixed them, but there
|
||||
might still be cases that need to be addressed--bug reports are
|
||||
greatly appreciated.
|
||||
|
||||
|
||||
Updates since v2.12
|
||||
-------------------
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* "git describe" and "git name-rev" have been taught to take more
|
||||
than one refname patterns to restrict the set of refs to base their
|
||||
naming output on, and also learned to take negative patterns to
|
||||
name refs not to be used for naming via their "--exclude" option.
|
||||
|
||||
* Deletion of a branch "foo/bar" could remove .git/refs/heads/foo
|
||||
once there no longer is any other branch whose name begins with
|
||||
"foo/", but we didn't do so so far. Now we do.
|
||||
|
||||
* When "git merge" detects a path that is renamed in one history
|
||||
while the other history deleted (or modified) it, it now reports
|
||||
both paths to help the user understand what is going on in the two
|
||||
histories being merged.
|
||||
|
||||
* The <url> part in "http.<url>.<variable>" configuration variable
|
||||
can now be spelled with '*' that serves as wildcard.
|
||||
E.g. "http.https://*.example.com.proxy" can be used to specify the
|
||||
proxy used for https://a.example.com, https://b.example.com, etc.,
|
||||
i.e. any host in the example.com domain.
|
||||
|
||||
* "git tag" did not leave useful message when adding a new entry to
|
||||
reflog; this was left unnoticed for a long time because refs/tags/*
|
||||
doesn't keep reflog by default.
|
||||
|
||||
* The "negative" pathspec feature was somewhat more cumbersome to use
|
||||
than necessary in that its short-hand used "!" which needed to be
|
||||
escaped from shells, and it required "exclude from what?" specified.
|
||||
|
||||
* The command line options for ssh invocation needs to be tweaked for
|
||||
some implementations of SSH (e.g. PuTTY plink wants "-P <port>"
|
||||
while OpenSSH wants "-p <port>" to specify port to connect to), and
|
||||
the variant was guessed when GIT_SSH environment variable is used
|
||||
to specify it. The logic to guess now applies to the command
|
||||
specified by the newer GIT_SSH_COMMAND and also core.sshcommand
|
||||
configuration variable, and comes with an escape hatch for users to
|
||||
deal with misdetected cases.
|
||||
|
||||
* The "--git-path", "--git-common-dir", and "--shared-index-path"
|
||||
options of "git rev-parse" did not produce usable output. They are
|
||||
now updated to show the path to the correct file, relative to where
|
||||
the caller is.
|
||||
|
||||
* "git diff -W" has been taught to handle the case where a new
|
||||
function is added at the end of the file better.
|
||||
|
||||
* "git update-ref -d" and other operations to delete references did
|
||||
not leave any entry in HEAD's reflog when the reference being
|
||||
deleted was the current branch. This is not a problem in practice
|
||||
because you do not want to delete the branch you are currently on,
|
||||
but caused renaming of the current branch to something else not to
|
||||
be logged in a useful way.
|
||||
|
||||
* "Cc:" on the trailer part does not have to conform to RFC strictly,
|
||||
unlike in the e-mail header. "git send-email" has been updated to
|
||||
ignore anything after '>' when picking addresses, to allow non-address
|
||||
cruft like " # stable 4.4" after the address.
|
||||
|
||||
* When "git submodule init" decides that the submodule in the working
|
||||
tree is its upstream, it now gives a warning as it is not a very
|
||||
common setup.
|
||||
|
||||
* "git stash push" takes a pathspec so that the local changes can be
|
||||
stashed away only partially.
|
||||
|
||||
* Documentation for "git ls-files" did not refer to core.quotePath.
|
||||
|
||||
* The experimental "split index" feature has gained a few
|
||||
configuration variables to make it easier to use.
|
||||
|
||||
* From a working tree of a repository, a new option of "rev-parse"
|
||||
lets you ask if the repository is used as a submodule of another
|
||||
project, and where the root level of the working tree of that
|
||||
project (i.e. your superproject) is.
|
||||
|
||||
* The pathspec mechanism learned to further limit the paths that
|
||||
match the pattern to those that have specified attributes attached
|
||||
via the gitattributes mechanism.
|
||||
|
||||
* Our source code has used the SHA1_HEADER cpp macro after "#include"
|
||||
in the C code to switch among the SHA-1 implementations. Instead,
|
||||
list the exact header file names and switch among implementations
|
||||
using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif";
|
||||
this helps some IDE tools.
|
||||
|
||||
* The start-up sequence of "git" needs to figure out some configured
|
||||
settings before it finds and set itself up in the location of the
|
||||
repository and was quite messy due to its "chicken-and-egg" nature.
|
||||
The code has been restructured.
|
||||
|
||||
* The command line prompt (in contrib/) learned a new 'tag' style
|
||||
that can be specified with GIT_PS1_DESCRIBE_STYLE, to describe a
|
||||
detached HEAD with "git describe --tags".
|
||||
|
||||
* The configuration file learned a new "includeIf.<condition>.path"
|
||||
that includes the contents of the given path only when the
|
||||
condition holds. This allows you to say "include this work-related
|
||||
bit only in the repositories under my ~/work/ directory".
|
||||
|
||||
* Recent update to "rebase -i" started showing a message that is not
|
||||
a warning with "warning:" prefix by mistake. This has been fixed.
|
||||
|
||||
* Recently we started passing the "--push-options" through the
|
||||
external remote helper interface; now the "smart HTTP" remote
|
||||
helper understands what to do with the passed information.
|
||||
|
||||
* "git describe --dirty" dies when it cannot be determined if the
|
||||
state in the working tree matches that of HEAD (e.g. broken
|
||||
repository or broken submodule). The command learned a new option
|
||||
"git describe --broken" to give "$name-broken" (where $name is the
|
||||
description of HEAD) in such a case.
|
||||
|
||||
* "git checkout" is taught the "--recurse-submodules" option.
|
||||
|
||||
* Recent enhancement to "git stash push" command to support pathspec
|
||||
to allow only a subset of working tree changes to be stashed away
|
||||
was found to be too chatty and exposed the internal implementation
|
||||
detail (e.g. when it uses reset to match the index to HEAD before
|
||||
doing other things, output from reset seeped out). These, and
|
||||
other chattyness has been fixed.
|
||||
|
||||
* "git merge <message> HEAD <commit>" syntax that has been deprecated
|
||||
since October 2007 has been removed.
|
||||
|
||||
* The refs completion for large number of refs has been sped up,
|
||||
partly by giving up disambiguating ambiguous refs and partly by
|
||||
eliminating most of the shell processing between 'git for-each-ref'
|
||||
and 'ls-remote' and Bash's completion facility.
|
||||
|
||||
* On many keyboards, typing "@{" involves holding down SHIFT key and
|
||||
one can easily end up with "@{Up..." when typing "@{upstream}". As
|
||||
the upstream/push keywords do not appear anywhere else in the syntax,
|
||||
we can safely accept them case insensitively without introducing
|
||||
ambiguity or confusion to solve this.
|
||||
|
||||
* "git tag/branch/for-each-ref" family of commands long allowed to
|
||||
filter the refs by "--contains X" (show only the refs that are
|
||||
descendants of X), "--merged X" (show only the refs that are
|
||||
ancestors of X), "--no-merged X" (show only the refs that are not
|
||||
ancestors of X). One curious omission, "--no-contains X" (show
|
||||
only the refs that are not descendants of X) has been added to
|
||||
them.
|
||||
|
||||
* The default behaviour of "git log" in an interactive session has
|
||||
been changed to enable "--decorate".
|
||||
|
||||
* The output from "git status --short" has been extended to show
|
||||
various kinds of dirtyness in submodules differently; instead of to
|
||||
"M" for modified, 'm' and '?' can be shown to signal changes only
|
||||
to the working tree of the submodule but not the commit that is
|
||||
checked out.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* The code to list branches in "git branch" has been consolidated
|
||||
with the more generic ref-filter API.
|
||||
|
||||
* Resource usage while enumerating refs from alternate object store
|
||||
has been optimized to help receiving end of "push" that hosts a
|
||||
repository with many "forks".
|
||||
|
||||
* The gitattributes machinery is being taught to work better in a
|
||||
multi-threaded environment.
|
||||
|
||||
* "git rebase -i" starts using the recently updated "sequencer" code.
|
||||
|
||||
* Code and design clean-up for the refs API.
|
||||
|
||||
* The preload-index code has been taught not to bother with the index
|
||||
entries that are paths that are not checked out by "sparse checkout".
|
||||
|
||||
* Some warning() messages from "git clean" were updated to show the
|
||||
errno from failed system calls.
|
||||
|
||||
* The "parse_config_key()" API function has been cleaned up.
|
||||
|
||||
* A test that creates a confusing branch whose name is HEAD has been
|
||||
corrected not to do so.
|
||||
|
||||
* The code that parses header fields in the commit object has been
|
||||
updated for (micro)performance and code hygiene.
|
||||
|
||||
* An helper function to make it easier to append the result from
|
||||
real_path() to a strbuf has been added.
|
||||
|
||||
* Reduce authentication round-trip over HTTP when the server supports
|
||||
just a single authentication method. This also improves the
|
||||
behaviour when Git is misconfigured to enable http.emptyAuth
|
||||
against a server that does not authenticate without a username
|
||||
(i.e. not using Kerberos etc., which makes http.emptyAuth
|
||||
pointless).
|
||||
|
||||
* Windows port wants to use OpenSSL's implementation of SHA-1
|
||||
routines, so let them.
|
||||
|
||||
* The t/perf performance test suite was not prepared to test not so
|
||||
old versions of Git, but now it covers versions of Git that are not
|
||||
so ancient.
|
||||
|
||||
* Add 32-bit Linux variant to the set of platforms to be tested with
|
||||
Travis CI.
|
||||
|
||||
* "git branch --list" takes the "--abbrev" and "--no-abbrev" options
|
||||
to control the output of the object name in its "-v"(erbose)
|
||||
output, but a recent update started ignoring them; fix it before
|
||||
the breakage reaches to any released version.
|
||||
|
||||
* Picking two versions of Git and running tests to make sure the
|
||||
older one and the newer one interoperate happily has now become
|
||||
possible.
|
||||
|
||||
* "uchar [40]" to "struct object_id" conversion continues.
|
||||
|
||||
* "git tag --contains" used to (ab)use the object bits to keep track
|
||||
of the state of object reachability without clearing them after
|
||||
use; this has been cleaned up and made to use the newer commit-slab
|
||||
facility.
|
||||
|
||||
* The "debug" helper used in the test framework learned to run
|
||||
a command under "gdb" interactively.
|
||||
|
||||
* The "detect attempt to create collisions" variant of SHA-1
|
||||
implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft)
|
||||
has been integrated and made the default.
|
||||
|
||||
* The test framework learned to detect unterminated here documents.
|
||||
|
||||
* The name-hash used for detecting paths that are different only in
|
||||
cases (which matter on case insensitive filesystems) has been
|
||||
optimized to take advantage of multi-threading when it makes sense.
|
||||
|
||||
* An earlier version of sha1dc/sha1.c that was merged to 'master'
|
||||
compiled incorrectly on Windows, which has been fixed.
|
||||
|
||||
* "what URL do we want to update this submodule?" and "are we
|
||||
interested in this submodule?" are split into two distinct
|
||||
concepts, and then the way used to express the latter got extended,
|
||||
paving a way to make it easier to manage a project with many
|
||||
submodules and make it possible to later extend use of multiple
|
||||
worktrees for a project with submodules.
|
||||
|
||||
* Some debugging output from "git describe" were marked for l10n,
|
||||
but some weren't. Mark missing ones for l10n.
|
||||
|
||||
* Define a new task in .travis.yml that triggers a test session on
|
||||
Windows run elsewhere.
|
||||
|
||||
* Conversion from unsigned char [40] to struct object_id continues.
|
||||
|
||||
* The "submodule" specific field in the ref_store structure is
|
||||
replaced with a more generic "gitdir" that can later be used also
|
||||
when dealing with ref_store that represents the set of refs visible
|
||||
from the other worktrees.
|
||||
|
||||
Also contains various documentation updates and code clean-ups.
|
||||
|
||||
|
||||
Fixes since v2.12
|
||||
-----------------
|
||||
|
||||
Unless otherwise noted, all the fixes since v2.12 in the maintenance
|
||||
track are contained in this release (see the maintenance releases'
|
||||
notes for details).
|
||||
|
||||
* "git repack --depth=<n>" for a long time busted the specified depth
|
||||
when reusing delta from existing packs. This has been corrected.
|
||||
|
||||
* The code to parse the command line "git grep <patterns>... <rev>
|
||||
[[--] <pathspec>...]" has been cleaned up, and a handful of bugs
|
||||
have been fixed (e.g. we used to check "--" if it is a rev).
|
||||
|
||||
* "git ls-remote" and "git archive --remote" are designed to work
|
||||
without being in a directory under Git's control. However, recent
|
||||
updates revealed that we randomly look into a directory called
|
||||
.git/ without actually doing necessary set-up when working in a
|
||||
repository. Stop doing so.
|
||||
|
||||
* "git show-branch" expected there were only very short branch names
|
||||
in the repository and used a fixed-length buffer to hold them
|
||||
without checking for overflow.
|
||||
|
||||
* A caller of tempfile API that uses stdio interface to write to
|
||||
files may ignore errors while writing, which is detected when
|
||||
tempfile is closed (with a call to ferror()). By that time, the
|
||||
original errno that may have told us what went wrong is likely to
|
||||
be long gone and was overwritten by an irrelevant value.
|
||||
close_tempfile() now resets errno to EIO to make errno at least
|
||||
predictable.
|
||||
|
||||
* "git remote rm X", when a branch has remote X configured as the
|
||||
value of its branch.*.remote, tried to remove branch.*.remote and
|
||||
branch.*.merge and failed if either is unset.
|
||||
|
||||
* A "gc.log" file left by a backgrounded "gc --auto" disables further
|
||||
automatic gc; it has been taught to run at least once a day (by
|
||||
default) by ignoring a stale "gc.log" file that is too old.
|
||||
|
||||
* The code to parse "git -c VAR=VAL cmd" and set configuration
|
||||
variable for the duration of cmd had two small bugs, which have
|
||||
been fixed.
|
||||
|
||||
* user.email that consists of only cruft chars should consistently
|
||||
error out, but didn't.
|
||||
|
||||
* "git upload-pack", which is a counter-part of "git fetch", did not
|
||||
report a request for a ref that was not advertised as invalid.
|
||||
This is generally not a problem (because "git fetch" will stop
|
||||
before making such a request), but is the right thing to do.
|
||||
|
||||
* A leak in a codepath to read from a packed object in (rare) cases
|
||||
has been plugged.
|
||||
|
||||
* When a redirected http transport gets an error during the
|
||||
redirected request, we ignored the error we got from the server,
|
||||
and ended up giving a not-so-useful error message.
|
||||
|
||||
* The patch subcommand of "git add -i" was meant to have paths
|
||||
selection prompt just like other subcommand, unlike "git add -p"
|
||||
directly jumps to hunk selection. Recently, this was broken and
|
||||
"add -i" lost the paths selection dialog, but it now has been
|
||||
fixed.
|
||||
|
||||
* Git v2.12 was shipped with an embarrassing breakage where various
|
||||
operations that verify paths given from the user stopped dying when
|
||||
seeing an issue, and instead later triggering segfault.
|
||||
|
||||
* There is no need for Python only to give a few messages to the
|
||||
standard error stream, but we somehow did.
|
||||
|
||||
* The code to parse "git log -L..." command line was buggy when there
|
||||
are many ranges specified with -L; overrun of the allocated buffer
|
||||
has been fixed.
|
||||
|
||||
* The command-line parsing of "git log -L" copied internal data
|
||||
structures using incorrect size on ILP32 systems.
|
||||
|
||||
* "git diff --quiet" relies on the size field in diff_filespec to be
|
||||
correctly populated, but diff_populate_filespec() helper function
|
||||
made an incorrect short-cut when asked only to populate the size
|
||||
field for paths that need to go through convert_to_git() (e.g. CRLF
|
||||
conversion).
|
||||
|
||||
* A few tests were run conditionally under (rare) conditions where
|
||||
they cannot be run (like running cvs tests under 'root' account).
|
||||
|
||||
* "git branch @" created refs/heads/@ as a branch, and in general the
|
||||
code that handled @{-1} and @{upstream} was a bit too loose in
|
||||
disambiguating.
|
||||
|
||||
* "git fetch" that requests a commit by object name, when the other
|
||||
side does not allow such an request, failed without much
|
||||
explanation.
|
||||
|
||||
* "git filter-branch --prune-empty" drops a single-parent commit that
|
||||
becomes a no-op, but did not drop a root commit whose tree is empty.
|
||||
|
||||
* Recent versions of Git treats http alternates (used in dumb http
|
||||
transport) just like HTTP redirects and requires the client to
|
||||
enable following it, due to security concerns. But we forgot to
|
||||
give a warning when we decide not to honor the alternates.
|
||||
|
||||
* "git push" had a handful of codepaths that could lead to a deadlock
|
||||
when unexpected error happened, which has been fixed.
|
||||
|
||||
* "Dumb http" transport used to misparse a nonsense http-alternates
|
||||
response, which has been fixed.
|
||||
|
||||
* "git add -p <pathspec>" unnecessarily expanded the pathspec to a
|
||||
list of individual files that matches the pathspec by running "git
|
||||
ls-files <pathspec>", before feeding it to "git diff-index" to see
|
||||
which paths have changes, because historically the pathspec
|
||||
language supported by "diff-index" was weaker. These days they are
|
||||
equivalent and there is no reason to internally expand it. This
|
||||
helps both performance and avoids command line argument limit on
|
||||
some platforms.
|
||||
(merge 7288e12cce jk/add-i-use-pathspecs later to maint).
|
||||
|
||||
* "git status --porcelain" is supposed to give a stable output, but a
|
||||
few strings were left as translatable by mistake.
|
||||
|
||||
* "git revert -m 0 $merge_commit" complained that reverting a merge
|
||||
needs to say relative to which parent the reversion needs to
|
||||
happen, as if "-m 0" weren't given. The correct diagnosis is that
|
||||
"-m 0" does not refer to the first parent ("-m 1" does). This has
|
||||
been fixed.
|
||||
|
||||
* Code to read submodule.<name>.ignore config did not state the
|
||||
variable name correctly when giving an error message diagnosing
|
||||
misconfiguration.
|
||||
|
||||
* Fix for NO_PTHREADS build.
|
||||
|
||||
* Fix for potential segv introduced in v2.11.0 and later (also
|
||||
v2.10.2) to "git log --pickaxe-regex -S".
|
||||
|
||||
* A few unterminated here documents in tests were fixed, which in
|
||||
turn revealed incorrect expectations the tests make. These tests
|
||||
have been updated.
|
||||
|
||||
* Fix for NO_PTHREADS option.
|
||||
(merge 2225e1ea20 bw/grep-recurse-submodules later to maint).
|
||||
|
||||
* Git now avoids blindly falling back to ".git" when the setup
|
||||
sequence said we are _not_ in Git repository. A corner case that
|
||||
happens to work right now may be broken by a call to die("BUG").
|
||||
(merge b1ef400eec jk/no-looking-at-dotgit-outside-repo-final later to maint).
|
||||
|
||||
* A few commands that recently learned the "--recurse-submodule"
|
||||
option misbehaved when started from a subdirectory of the
|
||||
superproject.
|
||||
(merge b2dfeb7c00 bw/recurse-submodules-relative-fix later to maint).
|
||||
|
||||
* FreeBSD implementation of getcwd(3) behaved differently when an
|
||||
intermediate directory is unreadable/unsearchable depending on the
|
||||
length of the buffer provided, which our strbuf_getcwd() was not
|
||||
aware of. strbuf_getcwd() has been taught to cope with it better.
|
||||
(merge a54e938e5b rs/freebsd-getcwd-workaround later to maint).
|
||||
|
||||
* A recent update to "rebase -i" stopped running hooks for the "git
|
||||
commit" command during "reword" action, which has been fixed.
|
||||
|
||||
* Removing an entry from a notes tree and then looking another note
|
||||
entry from the resulting tree using the internal notes API
|
||||
functions did not work as expected. No in-tree users of the API
|
||||
has such access pattern, but it still is worth fixing.
|
||||
|
||||
* "git receive-pack" could have been forced to die by attempting
|
||||
allocate an unreasonably large amount of memory with a crafted push
|
||||
certificate; this has been fixed.
|
||||
(merge f2214dede9 bc/push-cert-receive-fix later to maint).
|
||||
|
||||
* Update error handling for codepath that deals with corrupt loose
|
||||
objects.
|
||||
(merge 51054177b3 jk/loose-object-info-report-error later to maint).
|
||||
|
||||
* "git diff --submodule=diff" learned to work better in a project
|
||||
with a submodule that in turn has its own submodules.
|
||||
(merge 17b254cda6 sb/show-diff-for-submodule-in-diff-fix later to maint).
|
||||
|
||||
* Update the build dependency so that an update to /usr/bin/perl
|
||||
etc. result in recomputation of perl.mak file.
|
||||
(merge c59c4939c2 ab/regen-perl-mak-with-different-perl later to maint).
|
||||
|
||||
* "git push --recurse-submodules --push-option=<string>" learned to
|
||||
propagate the push option recursively down to pushes in submodules.
|
||||
|
||||
* If a patch e-mail had its first paragraph after an in-body header
|
||||
indented (even after a blank line after the in-body header line),
|
||||
the indented line was mistook as a continuation of the in-body
|
||||
header. This has been fixed.
|
||||
(merge fd1062e52e lt/mailinfo-in-body-header-continuation later to maint).
|
||||
|
||||
* Clean up fallouts from recent tightening of the set-up sequence,
|
||||
where Git barfs when repository information is accessed without
|
||||
first ensuring that it was started in a repository.
|
||||
(merge bccb22cbb1 jk/no-looking-at-dotgit-outside-repo later to maint).
|
||||
|
||||
* "git p4" used "name-rev HEAD" when it wants to learn what branch is
|
||||
checked out; it should use "symbolic-ref HEAD".
|
||||
(merge eff451101d ld/p4-current-branch-fix later to maint).
|
||||
|
||||
* Other minor doc, test and build updates and code cleanups.
|
||||
(merge df2a6e38b7 jk/pager-in-use later to maint).
|
||||
(merge 75ec4a6cb0 ab/branch-list-doc later to maint).
|
||||
(merge 3e5b36c637 sg/skip-prefix-in-prettify-refname later to maint).
|
||||
(merge 2c5e2865cc jk/fast-import-cleanup later to maint).
|
||||
(merge 4473060bc2 ab/test-readme-updates later to maint).
|
||||
(merge 48a96972fd ab/doc-submitting later to maint).
|
||||
(merge f5c2bc2b96 jk/make-coccicheck-detect-errors later to maint).
|
||||
(merge c105f563d1 cc/untracked later to maint).
|
||||
(merge 8668976b53 jc/unused-symbols later to maint).
|
||||
(merge fba275dc93 jc/bs-t-is-not-a-tab-for-sed later to maint).
|
||||
(merge be6ed145de mm/ls-files-s-doc later to maint).
|
||||
(merge 60b091c679 qp/bisect-docfix later to maint).
|
||||
(merge 47242cd103 ah/diff-files-ours-theirs-doc later to maint).
|
||||
(merge 35ad44cbd8 sb/submodule-rm-absorb later to maint).
|
||||
(merge 0301f1fd92 va/i18n-perl-scripts later to maint).
|
||||
(merge 733e064d98 vn/revision-shorthand-for-side-branch-log later to maint).
|
12
Documentation/RelNotes/2.4.12.txt
Normal file
12
Documentation/RelNotes/2.4.12.txt
Normal file
@ -0,0 +1,12 @@
|
||||
Git v2.4.12 Release Notes
|
||||
=========================
|
||||
|
||||
Fixes since v2.4.11
|
||||
-------------------
|
||||
|
||||
* "git-shell" rejects a request to serve a repository whose name
|
||||
begins with a dash, which makes it no longer possible to get it
|
||||
confused into spawning service programs like "git-upload-pack" with
|
||||
an option like "--help", which in turn would spawn an interactive
|
||||
pager, instead of working with the repository user asked to access
|
||||
(i.e. the one whose name is "--help").
|
12
Documentation/RelNotes/2.5.6.txt
Normal file
12
Documentation/RelNotes/2.5.6.txt
Normal file
@ -0,0 +1,12 @@
|
||||
Git v2.5.6 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.5.5
|
||||
------------------
|
||||
|
||||
* "git-shell" rejects a request to serve a repository whose name
|
||||
begins with a dash, which makes it no longer possible to get it
|
||||
confused into spawning service programs like "git-upload-pack" with
|
||||
an option like "--help", which in turn would spawn an interactive
|
||||
pager, instead of working with the repository user asked to access
|
||||
(i.e. the one whose name is "--help").
|
12
Documentation/RelNotes/2.6.7.txt
Normal file
12
Documentation/RelNotes/2.6.7.txt
Normal file
@ -0,0 +1,12 @@
|
||||
Git v2.6.7 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.6.6
|
||||
------------------
|
||||
|
||||
* "git-shell" rejects a request to serve a repository whose name
|
||||
begins with a dash, which makes it no longer possible to get it
|
||||
confused into spawning service programs like "git-upload-pack" with
|
||||
an option like "--help", which in turn would spawn an interactive
|
||||
pager, instead of working with the repository user asked to access
|
||||
(i.e. the one whose name is "--help").
|
14
Documentation/RelNotes/2.7.5.txt
Normal file
14
Documentation/RelNotes/2.7.5.txt
Normal file
@ -0,0 +1,14 @@
|
||||
Git v2.7.5 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.7.4
|
||||
------------------
|
||||
|
||||
* "git-shell" rejects a request to serve a repository whose name
|
||||
begins with a dash, which makes it no longer possible to get it
|
||||
confused into spawning service programs like "git-upload-pack" with
|
||||
an option like "--help", which in turn would spawn an interactive
|
||||
pager, instead of working with the repository user asked to access
|
||||
(i.e. the one whose name is "--help").
|
||||
|
||||
Also contains a few fixes backported from later development tracks.
|
25
Documentation/RelNotes/2.7.6.txt
Normal file
25
Documentation/RelNotes/2.7.6.txt
Normal file
@ -0,0 +1,25 @@
|
||||
Git v2.7.6 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.7.5
|
||||
------------------
|
||||
|
||||
* A "ssh://..." URL can result in a "ssh" command line with a
|
||||
hostname that begins with a dash "-", which would cause the "ssh"
|
||||
command to instead (mis)treat it as an option. This is now
|
||||
prevented by forbidding such a hostname (which will not be
|
||||
necessary in the real world).
|
||||
|
||||
* Similarly, when GIT_PROXY_COMMAND is configured, the command is
|
||||
run with host and port that are parsed out from "ssh://..." URL;
|
||||
a poorly written GIT_PROXY_COMMAND could be tricked into treating
|
||||
a string that begins with a dash "-". This is now prevented by
|
||||
forbidding such a hostname and port number (again, which will not
|
||||
be necessary in the real world).
|
||||
|
||||
* In the same spirit, a repository name that begins with a dash "-"
|
||||
is also forbidden now.
|
||||
|
||||
Credits go to Brian Neel at GitLab, Joern Schneeweisz of Recurity
|
||||
Labs and Jeff King at GitHub.
|
||||
|
12
Documentation/RelNotes/2.8.5.txt
Normal file
12
Documentation/RelNotes/2.8.5.txt
Normal file
@ -0,0 +1,12 @@
|
||||
Git v2.8.5 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.8.4
|
||||
------------------
|
||||
|
||||
* "git-shell" rejects a request to serve a repository whose name
|
||||
begins with a dash, which makes it no longer possible to get it
|
||||
confused into spawning service programs like "git-upload-pack" with
|
||||
an option like "--help", which in turn would spawn an interactive
|
||||
pager, instead of working with the repository user asked to access
|
||||
(i.e. the one whose name is "--help").
|
4
Documentation/RelNotes/2.8.6.txt
Normal file
4
Documentation/RelNotes/2.8.6.txt
Normal file
@ -0,0 +1,4 @@
|
||||
Git v2.8.6 Release Notes
|
||||
========================
|
||||
|
||||
This release forward-ports the fix for "ssh://..." URL from Git v2.7.6
|
@ -80,4 +80,11 @@ Fixes since v2.9.3
|
||||
the file descriptor still open. Open tempfile with O_CLOEXEC flag
|
||||
to avoid this (on Windows, this is mapped to O_NOINHERIT).
|
||||
|
||||
* "git-shell" rejects a request to serve a repository whose name
|
||||
begins with a dash, which makes it no longer possible to get it
|
||||
confused into spawning service programs like "git-upload-pack" with
|
||||
an option like "--help", which in turn would spawn an interactive
|
||||
pager, instead of working with the repository user asked to access
|
||||
(i.e. the one whose name is "--help").
|
||||
|
||||
Also contains minor documentation updates and code clean-ups.
|
||||
|
4
Documentation/RelNotes/2.9.5.txt
Normal file
4
Documentation/RelNotes/2.9.5.txt
Normal file
@ -0,0 +1,4 @@
|
||||
Git v2.9.5 Release Notes
|
||||
========================
|
||||
|
||||
This release forward-ports the fix for "ssh://..." URL from Git v2.7.6
|
@ -98,17 +98,12 @@ should skip the full stop. It is also conventional in most cases to
|
||||
prefix the first line with "area: " where the area is a filename or
|
||||
identifier for the general area of the code being modified, e.g.
|
||||
|
||||
. doc: clarify distinction between sign-off and pgp-signing
|
||||
. githooks.txt: improve the intro section
|
||||
. archive: ustar header checksum is computed unsigned
|
||||
. git-cherry-pick.txt: clarify the use of revision range notation
|
||||
|
||||
If in doubt which identifier to use, run "git log --no-merges" on the
|
||||
files you are modifying to see the current conventions.
|
||||
|
||||
It's customary to start the remainder of the first line after "area: "
|
||||
with a lower-case letter. E.g. "doc: clarify...", not "doc:
|
||||
Clarify...", or "githooks.txt: improve...", not "githooks.txt:
|
||||
Improve...".
|
||||
|
||||
The body should provide a meaningful commit message, which:
|
||||
|
||||
. explains the problem the change tries to solve, iow, what is wrong
|
||||
@ -134,9 +129,8 @@ with the subject enclosed in a pair of double-quotes, like this:
|
||||
noticed that ...
|
||||
|
||||
The "Copy commit summary" command of gitk can be used to obtain this
|
||||
format, or this invocation of "git show":
|
||||
format.
|
||||
|
||||
git show -s --date=short --pretty='format:%h ("%s", %ad)' <commit>
|
||||
|
||||
(3) Generate your patch using Git tools out of your commits.
|
||||
|
||||
@ -222,11 +216,12 @@ that it will be postponed.
|
||||
Exception: If your mailer is mangling patches then someone may ask
|
||||
you to re-send them using MIME, that is OK.
|
||||
|
||||
Do not PGP sign your patch. Most likely, your maintainer or other people on the
|
||||
list would not have your PGP key and would not bother obtaining it anyway.
|
||||
Your patch is not judged by who you are; a good patch from an unknown origin
|
||||
has a far better chance of being accepted than a patch from a known, respected
|
||||
origin that is done poorly or does incorrect things.
|
||||
Do not PGP sign your patch, at least for now. Most likely, your
|
||||
maintainer or other people on the list would not have your PGP
|
||||
key and would not bother obtaining it anyway. Your patch is not
|
||||
judged by who you are; a good patch from an unknown origin has a
|
||||
far better chance of being accepted than a patch from a known,
|
||||
respected origin that is done poorly or does incorrect things.
|
||||
|
||||
If you really really really really want to do a PGP signed
|
||||
patch, format it as "multipart/signed", not a text/plain message
|
||||
@ -251,7 +246,7 @@ patch.
|
||||
*2* The mailing list: git@vger.kernel.org
|
||||
|
||||
|
||||
(5) Certify your work by adding your "Signed-off-by: " line
|
||||
(5) Sign your work
|
||||
|
||||
To improve tracking of who did what, we've borrowed the
|
||||
"sign-off" procedure from the Linux kernel project on patches
|
||||
|
@ -1,28 +0,0 @@
|
||||
require 'asciidoctor'
|
||||
require 'asciidoctor/extensions'
|
||||
|
||||
module Git
|
||||
module Documentation
|
||||
class LinkGitProcessor < Asciidoctor::Extensions::InlineMacroProcessor
|
||||
use_dsl
|
||||
|
||||
named :chrome
|
||||
|
||||
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>\n)
|
||||
elsif parent.document.basebackend? 'docbook'
|
||||
"<citerefentry>\n" \
|
||||
"<refentrytitle>#{target}</refentrytitle>" \
|
||||
"<manvolnum>#{attrs[1]}</manvolnum>\n" \
|
||||
"</citerefentry>\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Asciidoctor::Extensions.register do
|
||||
inline_macro Git::Documentation::LinkGitProcessor, :linkgit
|
||||
end
|
@ -77,7 +77,7 @@ include::line-range-format.txt[]
|
||||
terminal. Can't use `--progress` together with `--porcelain`
|
||||
or `--incremental`.
|
||||
|
||||
-M[<num>]::
|
||||
-M|<num>|::
|
||||
Detect moved or copied lines within a file. When a commit
|
||||
moves or copies a block of lines (e.g. the original file
|
||||
has A and then B, and the commit changes it to B and then
|
||||
@ -93,7 +93,7 @@ alphanumeric characters that Git must detect as moving/copying
|
||||
within a file for it to associate those lines with the parent
|
||||
commit. The default value is 20.
|
||||
|
||||
-C[<num>]::
|
||||
-C|<num>|::
|
||||
In addition to `-M`, detect lines moved or copied from other
|
||||
files that were modified in the same commit. This is
|
||||
useful when you reorganize your program and move code
|
||||
|
@ -1,12 +1,9 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my @menu = ();
|
||||
my $output = $ARGV[0];
|
||||
|
||||
open my $tmp, '>', "$output.tmp";
|
||||
open TMP, '>', "$output.tmp";
|
||||
|
||||
while (<STDIN>) {
|
||||
next if (/^\\input texinfo/../\@node Top/);
|
||||
@ -14,13 +11,13 @@ while (<STDIN>) {
|
||||
if (s/^\@top (.*)/\@node $1,,,Top/) {
|
||||
push @menu, $1;
|
||||
}
|
||||
s/\(\@pxref\{\[(URLS|REMOTES)\]}\)//;
|
||||
s/\(\@pxref{\[(URLS|REMOTES)\]}\)//;
|
||||
s/\@anchor\{[^{}]*\}//g;
|
||||
print $tmp $_;
|
||||
print TMP;
|
||||
}
|
||||
close $tmp;
|
||||
close TMP;
|
||||
|
||||
print '\input texinfo
|
||||
printf '\input texinfo
|
||||
@setfilename gitman.info
|
||||
@documentencoding UTF-8
|
||||
@dircategory Development
|
||||
@ -31,16 +28,16 @@ print '\input texinfo
|
||||
@top Git Manual Pages
|
||||
@documentlanguage en
|
||||
@menu
|
||||
';
|
||||
', $menu[0];
|
||||
|
||||
for (@menu) {
|
||||
print "* ${_}::\n";
|
||||
}
|
||||
print "\@end menu\n";
|
||||
open $tmp, '<', "$output.tmp";
|
||||
while (<$tmp>) {
|
||||
open TMP, '<', "$output.tmp";
|
||||
while (<TMP>) {
|
||||
print;
|
||||
}
|
||||
close $tmp;
|
||||
close TMP;
|
||||
print "\@bye\n";
|
||||
unlink "$output.tmp";
|
||||
|
@ -79,69 +79,18 @@ escape sequences) are invalid.
|
||||
Includes
|
||||
~~~~~~~~
|
||||
|
||||
You can include a config file from another by setting the special
|
||||
You can include one config file from another by setting the special
|
||||
`include.path` variable to the name of the file to be included. The
|
||||
variable takes a pathname as its value, and is subject to tilde
|
||||
expansion. `include.path` can be given multiple times.
|
||||
expansion.
|
||||
|
||||
The included file is expanded immediately, as if its contents had been
|
||||
The
|
||||
included file is expanded immediately, as if its contents had been
|
||||
found at the location of the include directive. If the value of the
|
||||
`include.path` variable is a relative path, the path is considered to
|
||||
be relative to the configuration file in which the include directive
|
||||
was found. See below for examples.
|
||||
`include.path` variable is a relative path, the path is considered to be
|
||||
relative to the configuration file in which the include directive was
|
||||
found. See below for examples.
|
||||
|
||||
Conditional includes
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can include a config file from another conditionally by setting a
|
||||
`includeIf.<condition>.path` variable to the name of the file to be
|
||||
included. The variable's value is treated the same way as
|
||||
`include.path`. `includeIf.<condition>.path` can be given multiple times.
|
||||
|
||||
The condition starts with a keyword followed by a colon and some data
|
||||
whose format and meaning depends on the keyword. Supported keywords
|
||||
are:
|
||||
|
||||
`gitdir`::
|
||||
|
||||
The data that follows the keyword `gitdir:` is used as a glob
|
||||
pattern. If the location of the .git directory matches the
|
||||
pattern, the include condition is met.
|
||||
+
|
||||
The .git location may be auto-discovered, or come from `$GIT_DIR`
|
||||
environment variable. If the repository is auto discovered via a .git
|
||||
file (e.g. from submodules, or a linked worktree), the .git location
|
||||
would be the final location where the .git directory is, not where the
|
||||
.git file is.
|
||||
+
|
||||
The pattern can contain standard globbing wildcards and two additional
|
||||
ones, `**/` and `/**`, that can match multiple path components. Please
|
||||
refer to linkgit:gitignore[5] for details. For convenience:
|
||||
|
||||
* If the pattern starts with `~/`, `~` will be substituted with the
|
||||
content of the environment variable `HOME`.
|
||||
|
||||
* If the pattern starts with `./`, it is replaced with the directory
|
||||
containing the current config file.
|
||||
|
||||
* If the pattern does not start with either `~/`, `./` or `/`, `**/`
|
||||
will be automatically prepended. For example, the pattern `foo/bar`
|
||||
becomes `**/foo/bar` and would match `/any/path/to/foo/bar`.
|
||||
|
||||
* If the pattern ends with `/`, `**` will be automatically added. For
|
||||
example, the pattern `foo/` becomes `foo/**`. In other words, it
|
||||
matches "foo" and everything inside, recursively.
|
||||
|
||||
`gitdir/i`::
|
||||
This is the same as `gitdir` except that matching is done
|
||||
case-insensitively (e.g. on case-insensitive file sytems)
|
||||
|
||||
A few more notes on matching via `gitdir` and `gitdir/i`:
|
||||
|
||||
* Symlinks in `$GIT_DIR` are not resolved before matching.
|
||||
|
||||
* Note that "../" is not special and will match literally, which is
|
||||
unlikely what you want.
|
||||
|
||||
Example
|
||||
~~~~~~~
|
||||
@ -170,17 +119,6 @@ Example
|
||||
path = foo ; expand "foo" relative to the current file
|
||||
path = ~/foo ; expand "foo" in your `$HOME` directory
|
||||
|
||||
; include if $GIT_DIR is /path/to/foo/.git
|
||||
[includeIf "gitdir:/path/to/foo/.git"]
|
||||
path = /path/to/foo.inc
|
||||
|
||||
; include for all repositories inside /path/to/group
|
||||
[includeIf "gitdir:/path/to/group/"]
|
||||
path = /path/to/foo.inc
|
||||
|
||||
; include for all repositories inside $HOME/to/group
|
||||
[includeIf "gitdir:~/to/group/"]
|
||||
path = /path/to/foo.inc
|
||||
|
||||
Values
|
||||
~~~~~~
|
||||
@ -232,9 +170,6 @@ The position of any attributes with respect to the colors
|
||||
be turned off by prefixing them with `no` or `no-` (e.g., `noreverse`,
|
||||
`no-ul`, etc).
|
||||
+
|
||||
An empty color string produces no color effect at all. This can be used
|
||||
to avoid coloring specific elements without disabling color entirely.
|
||||
+
|
||||
For git's pre-defined color slots, the attributes are meant to be reset
|
||||
at the beginning of each item in the colored output. So setting
|
||||
`color.decorate.branch` to `black` will paint that branch name in a
|
||||
@ -396,10 +331,6 @@ core.trustctime::
|
||||
crawlers and some backup systems).
|
||||
See linkgit:git-update-index[1]. True by default.
|
||||
|
||||
core.splitIndex::
|
||||
If true, the split-index feature of the index will be used.
|
||||
See linkgit:git-update-index[1]. False by default.
|
||||
|
||||
core.untrackedCache::
|
||||
Determines what to do about the untracked cache feature of the
|
||||
index. It will be kept, if this variable is unset or set to
|
||||
@ -416,19 +347,16 @@ core.checkStat::
|
||||
all fields, including the sub-second part of mtime and ctime.
|
||||
|
||||
core.quotePath::
|
||||
Commands that output paths (e.g. 'ls-files', 'diff'), will
|
||||
quote "unusual" characters in the pathname by enclosing the
|
||||
pathname in double-quotes and escaping those characters with
|
||||
backslashes in the same way C escapes control characters (e.g.
|
||||
`\t` for TAB, `\n` for LF, `\\` for backslash) or bytes with
|
||||
values larger than 0x80 (e.g. octal `\302\265` for "micro" in
|
||||
UTF-8). If this variable is set to false, bytes higher than
|
||||
0x80 are not considered "unusual" any more. Double-quotes,
|
||||
backslash and control characters are always escaped regardless
|
||||
of the setting of this variable. A simple space character is
|
||||
not considered "unusual". Many commands can output pathnames
|
||||
completely verbatim using the `-z` option. The default value
|
||||
is true.
|
||||
The commands that output paths (e.g. 'ls-files',
|
||||
'diff'), when not given the `-z` option, will quote
|
||||
"unusual" characters in the pathname by enclosing the
|
||||
pathname in a double-quote pair and with backslashes the
|
||||
same way strings in C source code are quoted. If this
|
||||
variable is set to false, the bytes higher than 0x80 are
|
||||
not quoted but output as verbatim. Note that double
|
||||
quote, backslash and control characters are always
|
||||
quoted without `-z` regardless of the setting of this
|
||||
variable.
|
||||
|
||||
core.eol::
|
||||
Sets the line ending type to use in the working directory for
|
||||
@ -589,12 +517,10 @@ core.logAllRefUpdates::
|
||||
"`$GIT_DIR/logs/<ref>`", by appending the new and old
|
||||
SHA-1, the date/time and the reason of the update, but
|
||||
only when the file exists. If this configuration
|
||||
variable is set to `true`, missing "`$GIT_DIR/logs/<ref>`"
|
||||
variable is set to true, missing "`$GIT_DIR/logs/<ref>`"
|
||||
file is automatically created for branch heads (i.e. under
|
||||
`refs/heads/`), remote refs (i.e. under `refs/remotes/`),
|
||||
note refs (i.e. under `refs/notes/`), and the symbolic ref `HEAD`.
|
||||
If it is set to `always`, then a missing reflog is automatically
|
||||
created for any ref under `refs/`.
|
||||
refs/heads/), remote refs (i.e. under refs/remotes/),
|
||||
note refs (i.e. under refs/notes/), and the symbolic ref HEAD.
|
||||
+
|
||||
This information can be used to determine what commit
|
||||
was the tip of a branch "2 days ago".
|
||||
@ -737,13 +663,13 @@ alternative to having an `init.templateDir` where you've changed
|
||||
default hooks.
|
||||
|
||||
core.editor::
|
||||
Commands such as `commit` and `tag` that let you edit
|
||||
messages by launching an editor use the value of this
|
||||
Commands such as `commit` and `tag` that lets you edit
|
||||
messages by launching an editor uses the value of this
|
||||
variable when it is set, and the environment variable
|
||||
`GIT_EDITOR` is not set. See linkgit:git-var[1].
|
||||
|
||||
core.commentChar::
|
||||
Commands such as `commit` and `tag` that let you edit
|
||||
Commands such as `commit` and `tag` that lets you edit
|
||||
messages consider a line that begins with this character
|
||||
commented, and removes them after the editor returns
|
||||
(default '#').
|
||||
@ -1471,12 +1397,6 @@ gc.autoDetach::
|
||||
Make `git gc --auto` return immediately and run in background
|
||||
if the system supports it. Default is true.
|
||||
|
||||
gc.logExpiry::
|
||||
If the file gc.log exists, then `git gc --auto` won't run
|
||||
unless that file is more than 'gc.logExpiry' old. Default is
|
||||
"1.day". See `gc.pruneExpire` for more ways to specify its
|
||||
value.
|
||||
|
||||
gc.packRefs::
|
||||
Running `git pack-refs` in a repository renders it
|
||||
unclonable by Git versions prior to 1.5.1.2 over dumb
|
||||
@ -1994,10 +1914,7 @@ http.<url>.*::
|
||||
must match exactly between the config key and the URL.
|
||||
|
||||
. Host/domain name (e.g., `example.com` in `https://example.com/`).
|
||||
This field must match between the config key and the URL. It is
|
||||
possible to specify a `*` as part of the host name to match all subdomains
|
||||
at this level. `https://*.example.com/` for example would match
|
||||
`https://foo.example.com/`, but not `https://foo.bar.example.com/`.
|
||||
This field must match exactly between the config key and the URL.
|
||||
|
||||
. Port number (e.g., `8080` in `http://example.com:8080/`).
|
||||
This field must match exactly between the config key and the URL.
|
||||
@ -2032,17 +1949,6 @@ Environment variable settings always override any matches. The URLs that are
|
||||
matched against are those given directly to Git commands. This means any URLs
|
||||
visited as a result of a redirection do not participate in matching.
|
||||
|
||||
ssh.variant::
|
||||
Depending on the value of the environment variables `GIT_SSH` or
|
||||
`GIT_SSH_COMMAND`, or the config setting `core.sshCommand`, Git
|
||||
auto-detects whether to adjust its command-line parameters for use
|
||||
with plink or tortoiseplink, as opposed to the default (OpenSSH).
|
||||
+
|
||||
The config variable `ssh.variant` can be set to override this auto-detection;
|
||||
valid values are `ssh`, `plink`, `putty` or `tortoiseplink`. Any other value
|
||||
will be treated as normal ssh. This setting can be overridden via the
|
||||
environment variable `GIT_SSH_VARIANT`.
|
||||
|
||||
i18n.commitEncoding::
|
||||
Character encoding the commit messages are stored in; Git itself
|
||||
does not care per se, but this information is necessary e.g. when
|
||||
@ -2130,10 +2036,6 @@ log.follow::
|
||||
i.e. it cannot be used to follow multiple files and does not work well
|
||||
on non-linear history.
|
||||
|
||||
log.graphColors::
|
||||
A list of colors, separated by commas, that can be used to draw
|
||||
history lines in `git log --graph`.
|
||||
|
||||
log.showRoot::
|
||||
If true, the initial commit will be shown as a big creation event.
|
||||
This is equivalent to a diff against an empty tree.
|
||||
@ -2419,52 +2321,6 @@ pretty.<name>::
|
||||
Note that an alias with the same name as a built-in format
|
||||
will be silently ignored.
|
||||
|
||||
protocol.allow::
|
||||
If set, provide a user defined default policy for all protocols which
|
||||
don't explicitly have a policy (`protocol.<name>.allow`). By default,
|
||||
if unset, known-safe protocols (http, https, git, ssh, file) have a
|
||||
default policy of `always`, known-dangerous protocols (ext) have a
|
||||
default policy of `never`, and all other protocols have a default
|
||||
policy of `user`. Supported policies:
|
||||
+
|
||||
--
|
||||
|
||||
* `always` - protocol is always able to be used.
|
||||
|
||||
* `never` - protocol is never able to be used.
|
||||
|
||||
* `user` - protocol is only able to be used when `GIT_PROTOCOL_FROM_USER` is
|
||||
either unset or has a value of 1. This policy should be used when you want a
|
||||
protocol to be directly usable by the user but don't want it used by commands which
|
||||
execute clone/fetch/push commands without user input, e.g. recursive
|
||||
submodule initialization.
|
||||
|
||||
--
|
||||
|
||||
protocol.<name>.allow::
|
||||
Set a policy to be used by protocol `<name>` with clone/fetch/push
|
||||
commands. See `protocol.allow` above for the available policies.
|
||||
+
|
||||
The protocol names currently used by git are:
|
||||
+
|
||||
--
|
||||
- `file`: any local file-based path (including `file://` URLs,
|
||||
or local paths)
|
||||
|
||||
- `git`: the anonymous git protocol over a direct TCP
|
||||
connection (or proxy, if configured)
|
||||
|
||||
- `ssh`: git over ssh (including `host:path` syntax,
|
||||
`ssh://`, etc).
|
||||
|
||||
- `http`: git over http, both "smart http" and "dumb http".
|
||||
Note that this does _not_ include `https`; if you want to configure
|
||||
both, you must do so individually.
|
||||
|
||||
- any external helpers are named by their protocol (e.g., use
|
||||
`hg` to allow the `git-remote-hg` helper)
|
||||
--
|
||||
|
||||
pull.ff::
|
||||
By default, Git does not create an extra merge commit when merging
|
||||
a commit that is a descendant of the current commit. Instead, the
|
||||
@ -2521,8 +2377,6 @@ push.default::
|
||||
pushing to the same repository you would normally pull from
|
||||
(i.e. central workflow).
|
||||
|
||||
* `tracking` - This is a deprecated synonym for `upstream`.
|
||||
|
||||
* `simple` - in centralized workflow, work like `upstream` with an
|
||||
added safety to refuse to push if the upstream branch's name is
|
||||
different from the local one.
|
||||
@ -2918,31 +2772,6 @@ showbranch.default::
|
||||
The default set of branches for linkgit:git-show-branch[1].
|
||||
See linkgit:git-show-branch[1].
|
||||
|
||||
splitIndex.maxPercentChange::
|
||||
When the split index feature is used, this specifies the
|
||||
percent of entries the split index can contain compared to the
|
||||
total number of entries in both the split index and the shared
|
||||
index before a new shared index is written.
|
||||
The value should be between 0 and 100. If the value is 0 then
|
||||
a new shared index is always written, if it is 100 a new
|
||||
shared index is never written.
|
||||
By default the value is 20, so a new shared index is written
|
||||
if the number of entries in the split index would be greater
|
||||
than 20 percent of the total number of entries.
|
||||
See linkgit:git-update-index[1].
|
||||
|
||||
splitIndex.sharedIndexExpire::
|
||||
When the split index feature is used, shared index files that
|
||||
were not modified since the time this variable specifies will
|
||||
be removed when a new shared index file is created. The value
|
||||
"now" expires all entries immediately, and "never" suppresses
|
||||
expiration altogether.
|
||||
The default value is "2.weeks.ago".
|
||||
Note that a shared index file is considered modified (for the
|
||||
purpose of expiration) each time a new split-index file is
|
||||
either created based on it or read from it.
|
||||
See linkgit:git-update-index[1].
|
||||
|
||||
status.relativePaths::
|
||||
By default, linkgit:git-status[1] shows paths relative to the
|
||||
current directory. Setting this variable to `false` shows paths
|
||||
@ -3013,9 +2842,8 @@ submodule.<name>.url::
|
||||
The URL for a submodule. This variable is copied from the .gitmodules
|
||||
file to the git config via 'git submodule init'. The user can change
|
||||
the configured URL before obtaining the submodule via 'git submodule
|
||||
update'. If neither submodule.<name>.active or submodule.active are
|
||||
set, the presence of this variable is used as a fallback to indicate
|
||||
whether the submodule is of interest to git commands.
|
||||
update'. After obtaining the submodule, the presence of this variable
|
||||
is used as a sign whether the submodule is of interest to git commands.
|
||||
See linkgit:git-submodule[1] and linkgit:gitmodules[5] for details.
|
||||
|
||||
submodule.<name>.update::
|
||||
@ -3053,16 +2881,6 @@ submodule.<name>.ignore::
|
||||
"--ignore-submodules" option. The 'git submodule' commands are not
|
||||
affected by this setting.
|
||||
|
||||
submodule.<name>.active::
|
||||
Boolean value indicating if the submodule is of interest to git
|
||||
commands. This config option takes precedence over the
|
||||
submodule.active config option.
|
||||
|
||||
submodule.active::
|
||||
A repeated field which contains a pathspec used to match against a
|
||||
submodule's path to determine if the submodule is of interest to git
|
||||
commands.
|
||||
|
||||
submodule.fetchJobs::
|
||||
Specifies how many submodules are fetched/cloned at the same time.
|
||||
A positive integer allows up to that number of submodules fetched
|
||||
@ -3076,7 +2894,7 @@ submodule.alternateLocation::
|
||||
value is set to `superproject` the submodule to be cloned computes
|
||||
its alternates location relative to the superprojects alternate.
|
||||
|
||||
submodule.alternateErrorStrategy::
|
||||
submodule.alternateErrorStrategy
|
||||
Specifies how to treat errors with the alternates for a submodule
|
||||
as computed via `submodule.alternateLocation`. Possible values are
|
||||
`ignore`, `info`, `die`. Default is `die`.
|
||||
@ -3249,39 +3067,17 @@ user.signingKey::
|
||||
This option is passed unchanged to gpg's --local-user parameter,
|
||||
so you may specify a key using any method that gpg supports.
|
||||
|
||||
versionsort.prereleaseSuffix (deprecated)::
|
||||
Deprecated alias for `versionsort.suffix`. Ignored if
|
||||
`versionsort.suffix` is set.
|
||||
|
||||
versionsort.suffix::
|
||||
Even when version sort is used in linkgit:git-tag[1], tagnames
|
||||
with the same base version but different suffixes are still sorted
|
||||
lexicographically, resulting e.g. in prerelease tags appearing
|
||||
after the main release (e.g. "1.0-rc1" after "1.0"). This
|
||||
variable can be specified to determine the sorting order of tags
|
||||
with different suffixes.
|
||||
versionsort.prereleaseSuffix::
|
||||
When version sort is used in linkgit:git-tag[1], prerelease
|
||||
tags (e.g. "1.0-rc1") may appear after the main release
|
||||
"1.0". By specifying the suffix "-rc" in this variable,
|
||||
"1.0-rc1" will appear before "1.0".
|
||||
+
|
||||
By specifying a single suffix in this variable, any tagname containing
|
||||
that suffix will appear before the corresponding main release. E.g. if
|
||||
the variable is set to "-rc", then all "1.0-rcX" tags will appear before
|
||||
"1.0". If specified multiple times, once per suffix, then the order of
|
||||
suffixes in the configuration will determine the sorting order of tagnames
|
||||
with those suffixes. E.g. if "-pre" appears before "-rc" in the
|
||||
configuration, then all "1.0-preX" tags will be listed before any
|
||||
"1.0-rcX" tags. The placement of the main release tag relative to tags
|
||||
with various suffixes can be determined by specifying the empty suffix
|
||||
among those other suffixes. E.g. if the suffixes "-rc", "", "-ck" and
|
||||
"-bfs" appear in the configuration in this order, then all "v4.8-rcX" tags
|
||||
are listed first, followed by "v4.8", then "v4.8-ckX" and finally
|
||||
"v4.8-bfsX".
|
||||
+
|
||||
If more than one suffixes match the same tagname, then that tagname will
|
||||
be sorted according to the suffix which starts at the earliest position in
|
||||
the tagname. If more than one different matching suffixes start at
|
||||
that earliest position, then that tagname will be sorted according to the
|
||||
longest of those suffixes.
|
||||
The sorting order between different suffixes is undefined if they are
|
||||
in multiple config files.
|
||||
This variable can be specified multiple times, once per suffix. The
|
||||
order of suffixes in the config file determines the sorting order
|
||||
(e.g. if "-pre" appears before "-rc" in the config file then 1.0-preXX
|
||||
is sorted before 1.0-rcXX). The sorting order between different
|
||||
suffixes is undefined if they are in multiple config files.
|
||||
|
||||
web.browser::
|
||||
Specify a web browser that may be used by some commands.
|
||||
|
@ -60,12 +60,6 @@ diff.context::
|
||||
Generate diffs with <n> lines of context instead of the default
|
||||
of 3. This value is overridden by the -U option.
|
||||
|
||||
diff.interHunkContext::
|
||||
Show the context between diff hunks, up to the specified number
|
||||
of lines, thereby fusing the hunks that are close to each other.
|
||||
This value serves as the default for the `--inter-hunk-context`
|
||||
command line option.
|
||||
|
||||
diff.external::
|
||||
If this config variable is set, diff generation is not
|
||||
performed using the internal diff machinery, but using the
|
||||
@ -105,10 +99,9 @@ diff.noprefix::
|
||||
If set, 'git diff' does not show any source or destination prefix.
|
||||
|
||||
diff.orderFile::
|
||||
File indicating how to order files within a diff.
|
||||
See the '-O' option to linkgit:git-diff[1] for details.
|
||||
If `diff.orderFile` is a relative pathname, it is treated as
|
||||
relative to the top of the working tree.
|
||||
File indicating how to order files within a diff, using
|
||||
one shell glob pattern per line.
|
||||
Can be overridden by the '-O' option to linkgit:git-diff[1].
|
||||
|
||||
diff.renameLimit::
|
||||
The number of files to consider when performing the copy/rename
|
||||
@ -179,8 +172,10 @@ diff.tool::
|
||||
include::mergetools-diff.txt[]
|
||||
|
||||
diff.indentHeuristic::
|
||||
Set this option to `true` to enable experimental heuristics
|
||||
that shift diff hunk boundaries to make patches easier to read.
|
||||
diff.compactionHeuristic::
|
||||
Set one of these options to `true` to enable one of two
|
||||
experimental heuristics that shift diff hunk boundaries to
|
||||
make patches easier to read.
|
||||
|
||||
diff.algorithm::
|
||||
Choose a diff algorithm. The variants are as follows:
|
||||
|
@ -78,10 +78,9 @@ Example:
|
||||
:100644 100644 5be4a4...... 000000...... M file.c
|
||||
------------------------------------------------
|
||||
|
||||
Without the `-z` option, pathnames with "unusual" characters are
|
||||
quoted as explained for the configuration variable `core.quotePath`
|
||||
(see linkgit:git-config[1]). Using `-z` the filename is output
|
||||
verbatim and the line is terminated by a NUL byte.
|
||||
When `-z` option is not used, TAB, LF, and backslash characters
|
||||
in pathnames are represented as `\t`, `\n`, and `\\`,
|
||||
respectively.
|
||||
|
||||
diff format for merges
|
||||
----------------------
|
||||
|
@ -53,9 +53,10 @@ The index line includes the SHA-1 checksum before and after the change.
|
||||
The <mode> is included if the file mode does not change; otherwise,
|
||||
separate lines indicate the old and the new mode.
|
||||
|
||||
3. Pathnames with "unusual" characters are quoted as explained for
|
||||
the configuration variable `core.quotePath` (see
|
||||
linkgit:git-config[1]).
|
||||
3. TAB, LF, double quote and backslash characters in pathnames
|
||||
are represented as `\t`, `\n`, `\"` and `\\`, respectively.
|
||||
If there is need for such substitution then the whole
|
||||
pathname is put in double quotes.
|
||||
|
||||
4. All the `file1` files in the output refer to files before the
|
||||
commit, and all the `file2` files refer to files after the commit.
|
||||
|
@ -1,5 +1,7 @@
|
||||
--indent-heuristic::
|
||||
--no-indent-heuristic::
|
||||
--compaction-heuristic::
|
||||
--no-compaction-heuristic::
|
||||
These are to help debugging and tuning experimental heuristics
|
||||
(which are off by default) that shift diff hunk boundaries to
|
||||
make patches easier to read.
|
||||
|
@ -192,9 +192,10 @@ ifndef::git-log[]
|
||||
given, do not munge pathnames and use NULs as output field terminators.
|
||||
endif::git-log[]
|
||||
+
|
||||
Without this option, pathnames with "unusual" characters are quoted as
|
||||
explained for the configuration variable `core.quotePath` (see
|
||||
linkgit:git-config[1]).
|
||||
Without this option, each pathname output will have TAB, LF, double quotes,
|
||||
and backslash characters replaced with `\t`, `\n`, `\"`, and `\\`,
|
||||
respectively, and the pathname will be enclosed in double quotes if
|
||||
any of those replacements occurred.
|
||||
|
||||
--name-only::
|
||||
Show only names of changed files.
|
||||
@ -465,41 +466,11 @@ information.
|
||||
endif::git-format-patch[]
|
||||
|
||||
-O<orderfile>::
|
||||
Control the order in which files appear in the output.
|
||||
Output the patch in the order specified in the
|
||||
<orderfile>, which has one shell glob pattern per line.
|
||||
This overrides the `diff.orderFile` configuration variable
|
||||
(see linkgit:git-config[1]). To cancel `diff.orderFile`,
|
||||
use `-O/dev/null`.
|
||||
+
|
||||
The output order is determined by the order of glob patterns in
|
||||
<orderfile>.
|
||||
All files with pathnames that match the first pattern are output
|
||||
first, all files with pathnames that match the second pattern (but not
|
||||
the first) are output next, and so on.
|
||||
All files with pathnames that do not match any pattern are output
|
||||
last, as if there was an implicit match-all pattern at the end of the
|
||||
file.
|
||||
If multiple pathnames have the same rank (they match the same pattern
|
||||
but no earlier patterns), their output order relative to each other is
|
||||
the normal order.
|
||||
+
|
||||
<orderfile> is parsed as follows:
|
||||
+
|
||||
--
|
||||
- Blank lines are ignored, so they can be used as separators for
|
||||
readability.
|
||||
|
||||
- Lines starting with a hash ("`#`") are ignored, so they can be used
|
||||
for comments. Add a backslash ("`\`") to the beginning of the
|
||||
pattern if it starts with a hash.
|
||||
|
||||
- Each other line contains a single pattern.
|
||||
--
|
||||
+
|
||||
Patterns have the same syntax and semantics as patterns used for
|
||||
fnmantch(3) without the FNM_PATHNAME flag, except a pathname also
|
||||
matches a pattern if removing any number of the final pathname
|
||||
components matches the pattern. For example, the pattern "`foo*bar`"
|
||||
matches "`fooasdfbar`" and "`foo/bar/baz/asdf`" but not "`foobarx`".
|
||||
|
||||
ifndef::git-format-patch[]
|
||||
-R::
|
||||
@ -540,8 +511,6 @@ endif::git-format-patch[]
|
||||
--inter-hunk-context=<lines>::
|
||||
Show the context between diff hunks, up to the specified number
|
||||
of lines, thereby fusing hunks that are close to each other.
|
||||
Defaults to `diff.interHunkContext` or 0 if the config option
|
||||
is unset.
|
||||
|
||||
-W::
|
||||
--function-context::
|
||||
|
@ -108,9 +108,10 @@ the information is read from the current index instead.
|
||||
When `--numstat` has been given, do not munge pathnames,
|
||||
but use a NUL-terminated machine-readable format.
|
||||
+
|
||||
Without this option, pathnames with "unusual" characters are quoted as
|
||||
explained for the configuration variable `core.quotePath` (see
|
||||
linkgit:git-config[1]).
|
||||
Without this option, each pathname output will have TAB, LF, double quotes,
|
||||
and backslash characters replaced with `\t`, `\n`, `\"`, and `\\`,
|
||||
respectively, and the pathname will be enclosed in double quotes if
|
||||
any of those replacements occurred.
|
||||
|
||||
-p<n>::
|
||||
Remove <n> leading slashes from traditional diff paths. The
|
||||
|
@ -137,7 +137,7 @@ respectively, in place of "good" and "bad". (But note that you cannot
|
||||
mix "good" and "bad" with "old" and "new" in a single session.)
|
||||
|
||||
In this more general usage, you provide `git bisect` with a "new"
|
||||
commit that has some property and an "old" commit that doesn't have that
|
||||
commit has some property and an "old" commit that doesn't have that
|
||||
property. Each time `git bisect` checks out a commit, you test if that
|
||||
commit has the property. If it does, mark the commit as "new";
|
||||
otherwise, mark it as "old". When the bisection is done, `git bisect`
|
||||
|
@ -10,10 +10,9 @@ SYNOPSIS
|
||||
[verse]
|
||||
'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>] [<pattern>...]
|
||||
[--column[=<options>] | --no-column]
|
||||
[(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>]
|
||||
[--points-at <object>] [<pattern>...]
|
||||
'git branch' [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
|
||||
'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
|
||||
'git branch' --unset-upstream [<branchname>]
|
||||
@ -36,12 +35,11 @@ as branch creation.
|
||||
|
||||
With `--contains`, shows only the branches that contain the named commit
|
||||
(in other words, the branches whose tip commits are descendants of the
|
||||
named commit), `--no-contains` inverts it. With `--merged`, only branches
|
||||
merged into the named commit (i.e. the branches whose tip commits are
|
||||
reachable from the named commit) will be listed. With `--no-merged` only
|
||||
branches not merged into the named commit will be listed. If the <commit>
|
||||
argument is missing it defaults to `HEAD` (i.e. the tip of the current
|
||||
branch).
|
||||
named commit). With `--merged`, only branches merged into the named
|
||||
commit (i.e. the branches whose tip commits are reachable from the named
|
||||
commit) will be listed. With `--no-merged` only branches not merged into
|
||||
the named commit will be listed. If the <commit> argument is missing it
|
||||
defaults to `HEAD` (i.e. the tip of the current branch).
|
||||
|
||||
The command's second form creates a new branch head named <branchname>
|
||||
which points to the current `HEAD`, or <start-point> if given.
|
||||
@ -93,9 +91,6 @@ OPTIONS
|
||||
based sha1 expressions such as "<branchname>@\{yesterday}".
|
||||
Note that in non-bare repositories, reflogs are usually
|
||||
enabled by default by the `core.logallrefupdates` config option.
|
||||
The negated form `--no-create-reflog` only overrides an earlier
|
||||
`--create-reflog`, but currently does not negate the setting of
|
||||
`core.logallrefupdates`.
|
||||
|
||||
-f::
|
||||
--force::
|
||||
@ -123,10 +118,6 @@ OPTIONS
|
||||
default to color output.
|
||||
Same as `--color=never`.
|
||||
|
||||
-i::
|
||||
--ignore-case::
|
||||
Sorting and filtering branches are case insensitive.
|
||||
|
||||
--column[=<options>]::
|
||||
--no-column::
|
||||
Display branch listing in columns. See configuration variable
|
||||
@ -144,13 +135,8 @@ This option is only applicable in non-verbose mode.
|
||||
List both remote-tracking branches and local branches.
|
||||
|
||||
--list::
|
||||
List branches. With optional `<pattern>...`, e.g. `git
|
||||
branch --list 'maint-*'`, list only the branches that match
|
||||
the pattern(s).
|
||||
+
|
||||
This should not be confused with `git branch -l <branchname>`,
|
||||
which creates a branch named `<branchname>` with a reflog.
|
||||
See `--create-reflog` above for details.
|
||||
Activate the list mode. `git branch <pattern>` would try to create a branch,
|
||||
use `git branch --list <pattern>` to list matching branches.
|
||||
|
||||
-v::
|
||||
-vv::
|
||||
@ -220,19 +206,13 @@ start-point is either a local or remote-tracking branch.
|
||||
Only list branches which contain the specified commit (HEAD
|
||||
if not specified). Implies `--list`.
|
||||
|
||||
--no-contains [<commit>]::
|
||||
Only list branches which don't contain the specified commit
|
||||
(HEAD if not specified). Implies `--list`.
|
||||
|
||||
--merged [<commit>]::
|
||||
Only list branches whose tips are reachable from the
|
||||
specified commit (HEAD if not specified). Implies `--list`,
|
||||
incompatible with `--no-merged`.
|
||||
specified commit (HEAD if not specified). Implies `--list`.
|
||||
|
||||
--no-merged [<commit>]::
|
||||
Only list branches whose tips are not reachable from the
|
||||
specified commit (HEAD if not specified). Implies `--list`,
|
||||
incompatible with `--merged`.
|
||||
specified commit (HEAD if not specified). Implies `--list`.
|
||||
|
||||
<branchname>::
|
||||
The name of the branch to create or delete.
|
||||
@ -266,11 +246,6 @@ start-point is either a local or remote-tracking branch.
|
||||
--points-at <object>::
|
||||
Only list branches of the given object.
|
||||
|
||||
--format <format>::
|
||||
A string that interpolates `%(fieldname)` from the object
|
||||
pointed at by a ref being shown. The format is the same as
|
||||
that of linkgit:git-for-each-ref[1].
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
@ -309,16 +284,13 @@ If you are creating a branch that you want to checkout immediately, it is
|
||||
easier to use the git checkout command with its `-b` option to create
|
||||
a branch and check it out with a single command.
|
||||
|
||||
The options `--contains`, `--no-contains`, `--merged` and `--no-merged`
|
||||
serve four related but different purposes:
|
||||
The options `--contains`, `--merged` and `--no-merged` serve three related
|
||||
but different purposes:
|
||||
|
||||
- `--contains <commit>` is used to find all branches which will need
|
||||
special attention if <commit> were to be rebased or amended, since those
|
||||
branches contain the specified <commit>.
|
||||
|
||||
- `--no-contains <commit>` is the inverse of that, i.e. branches that don't
|
||||
contain the specified <commit>.
|
||||
|
||||
- `--merged` is used to find all branches which can be safely deleted,
|
||||
since those branches are fully contained by HEAD.
|
||||
|
||||
|
@ -100,10 +100,10 @@ OPTIONS
|
||||
--normalize::
|
||||
Normalize 'refname' by removing any leading slash (`/`)
|
||||
characters and collapsing runs of adjacent slashes between
|
||||
name components into a single slash. If the normalized
|
||||
name components into a single slash. Iff the normalized
|
||||
refname is valid then print it to standard output and exit
|
||||
with a status of 0, otherwise exit with a non-zero status.
|
||||
(`--print` is a deprecated way to spell `--normalize`.)
|
||||
with a status of 0. (`--print` is a deprecated way to spell
|
||||
`--normalize`.)
|
||||
|
||||
|
||||
EXAMPLES
|
||||
|
@ -256,13 +256,6 @@ section of linkgit:git-add[1] to learn how to operate the `--patch` mode.
|
||||
out anyway. In other words, the ref can be held by more than one
|
||||
worktree.
|
||||
|
||||
--[no-]recurse-submodules::
|
||||
Using --recurse-submodules will update the content of all initialized
|
||||
submodules according to the commit recorded in the superproject. If
|
||||
local modifications in a submodule would be overwritten the checkout
|
||||
will fail unless `-f` is used. If nothing (or --no-recurse-submodules)
|
||||
is used, the work trees of submodules will not be updated.
|
||||
|
||||
<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
|
||||
|
@ -14,7 +14,7 @@ SYNOPSIS
|
||||
[-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]
|
||||
[--dissociate] [--separate-git-dir <git dir>]
|
||||
[--depth <depth>] [--[no-]single-branch]
|
||||
[--recurse-submodules] [--[no-]shallow-submodules]
|
||||
[--recursive | --recurse-submodules] [--[no-]shallow-submodules]
|
||||
[--jobs <n>] [--] <repository> [<directory>]
|
||||
|
||||
DESCRIPTION
|
||||
@ -215,14 +215,10 @@ objects from the source repository into a pack in the cloned repository.
|
||||
branch when `--single-branch` clone was made, no remote-tracking
|
||||
branch is created.
|
||||
|
||||
--recurse-submodules[=<pathspec]::
|
||||
After the clone is created, initialize and clone submodules
|
||||
within based on the provided pathspec. If no pathspec is
|
||||
provided, all submodules are initialized and cloned.
|
||||
Submodules are initialized and cloned using their default
|
||||
settings. The resulting clone has `submodule.active` set to
|
||||
the provided pathspec, or "." (meaning all submodules) if no
|
||||
pathspec is provided. This is equivalent to running
|
||||
--recursive::
|
||||
--recurse-submodules::
|
||||
After the clone is created, initialize all submodules within,
|
||||
using their default settings. This is equivalent to running
|
||||
`git submodule update --init --recursive` immediately after
|
||||
the clone is finished. This option is ignored if the cloned
|
||||
repository does not have a worktree/checkout (i.e. if any of
|
||||
|
@ -117,12 +117,9 @@ OPTIONS
|
||||
|
||||
-z::
|
||||
--null::
|
||||
When showing `short` or `porcelain` status output, print the
|
||||
filename verbatim and terminate the entries with NUL, instead of LF.
|
||||
If no format is given, implies the `--porcelain` output format.
|
||||
Without the `-z` option, filenames with "unusual" characters are
|
||||
quoted as explained for the configuration variable `core.quotePath`
|
||||
(see linkgit:git-config[1]).
|
||||
When showing `short` or `porcelain` status output, terminate
|
||||
entries in the status output with NUL, instead of LF. If no
|
||||
format is given, implies the `--porcelain` output format.
|
||||
|
||||
-F <file>::
|
||||
--file=<file>::
|
||||
@ -463,7 +460,7 @@ order). See linkgit:git-var[1] for details.
|
||||
HOOKS
|
||||
-----
|
||||
This command can run `commit-msg`, `prepare-commit-msg`, `pre-commit`,
|
||||
`post-commit` and `post-rewrite` hooks. See linkgit:githooks[5] for more
|
||||
and `post-commit` hooks. See linkgit:githooks[5] for more
|
||||
information.
|
||||
|
||||
FILES
|
||||
|
@ -33,13 +33,10 @@ OPTIONS
|
||||
--socket <path>::
|
||||
|
||||
Use `<path>` to contact a running cache daemon (or start a new
|
||||
cache daemon if one is not started).
|
||||
Defaults to `$XDG_CACHE_HOME/git/credential/socket` unless
|
||||
`~/.git-credential-cache/` exists in which case
|
||||
`~/.git-credential-cache/socket` is used instead.
|
||||
If your home directory is on a network-mounted filesystem, you
|
||||
may need to change this to a local filesystem. You must specify
|
||||
an absolute path.
|
||||
cache daemon if one is not started). Defaults to
|
||||
`~/.git-credential-cache/socket`. If your home directory is on a
|
||||
network-mounted filesystem, you may need to change this to a
|
||||
local filesystem. You must specify an absolute path.
|
||||
|
||||
CONTROLLING THE DAEMON
|
||||
----------------------
|
||||
|
@ -30,14 +30,9 @@ OPTIONS
|
||||
Commit-ish object names to describe. Defaults to HEAD if omitted.
|
||||
|
||||
--dirty[=<mark>]::
|
||||
--broken[=<mark>]::
|
||||
Describe the state of the working tree. When the working
|
||||
tree matches HEAD, the output is the same as "git describe
|
||||
HEAD". If the working tree has local modification "-dirty"
|
||||
is appended to it. If a repository is corrupt and Git
|
||||
cannot determine if there is local modification, Git will
|
||||
error out, unless `--broken' is given, which appends
|
||||
the suffix "-broken" instead.
|
||||
Describe the working tree.
|
||||
It means describe HEAD and appends <mark> (`-dirty` by
|
||||
default) if the working tree is dirty.
|
||||
|
||||
--all::
|
||||
Instead of using only the annotated tags, use any ref
|
||||
@ -88,20 +83,7 @@ OPTIONS
|
||||
--match <pattern>::
|
||||
Only consider tags matching the given `glob(7)` pattern,
|
||||
excluding the "refs/tags/" prefix. This can be used to avoid
|
||||
leaking private tags from the repository. If given multiple times, a
|
||||
list of patterns will be accumulated, and tags matching any of the
|
||||
patterns will be considered. Use `--no-match` to clear and reset the
|
||||
list of patterns.
|
||||
|
||||
--exclude <pattern>::
|
||||
Do not consider tags matching the given `glob(7)` pattern, excluding
|
||||
the "refs/tags/" prefix. This can be used to narrow the tag space and
|
||||
find only tags matching some meaningful criteria. If given multiple
|
||||
times, a list of patterns will be accumulated and tags matching any
|
||||
of the patterns will be excluded. When combined with --match a tag will
|
||||
be considered when it matches at least one --match pattern and does not
|
||||
match any of the --exclude patterns. Use `--no-exclude` to clear and
|
||||
reset the list of patterns.
|
||||
leaking private tags from the repository.
|
||||
|
||||
--always::
|
||||
Show uniquely abbreviated commit object as fallback.
|
||||
|
@ -97,20 +97,6 @@ OPTIONS
|
||||
:git-diff: 1
|
||||
include::diff-options.txt[]
|
||||
|
||||
-1 --base::
|
||||
-2 --ours::
|
||||
-3 --theirs::
|
||||
Compare the working tree with the "base" version (stage #1),
|
||||
"our branch" (stage #2) or "their branch" (stage #3). The
|
||||
index contains these stages only for unmerged entries i.e.
|
||||
while resolving conflicts. See linkgit:git-read-tree[1]
|
||||
section "3-Way Merge" for detailed information.
|
||||
|
||||
-0::
|
||||
Omit diff output for unmerged entries and just show
|
||||
"Unmerged". Can be used only when comparing the working tree
|
||||
with the index.
|
||||
|
||||
<path>...::
|
||||
The <paths> parameters, when given, are used to limit
|
||||
the diff to the named paths (you can give directory
|
||||
|
@ -86,11 +86,10 @@ instead. `--no-symlinks` is the default on Windows.
|
||||
Additionally, `$BASE` is set in the environment.
|
||||
|
||||
-g::
|
||||
--[no-]gui::
|
||||
--gui::
|
||||
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.
|
||||
`diff.guitool` variable instead of `diff.tool`.
|
||||
|
||||
--[no-]trust-exit-code::
|
||||
'git-difftool' invokes a diff tool individually on each file.
|
||||
|
@ -167,12 +167,14 @@ to other tags will be rewritten to point to the underlying commit.
|
||||
project root. Implies <<Remap_to_ancestor>>.
|
||||
|
||||
--prune-empty::
|
||||
Some filters will generate empty commits that leave the tree untouched.
|
||||
This option instructs git-filter-branch to remove such commits if they
|
||||
have exactly one or zero non-pruned parents; merge commits will
|
||||
therefore remain intact. This option cannot be used together with
|
||||
`--commit-filter`, though the same effect can be achieved by using the
|
||||
provided `git_commit_non_empty_tree` function in a commit filter.
|
||||
Some kind of filters will generate empty commits, that left the tree
|
||||
untouched. This switch allow git-filter-branch to ignore such
|
||||
commits. Though, this switch only applies for commits that have one
|
||||
and only one parent, it will hence keep merges points. Also, this
|
||||
option is not compatible with the use of `--commit-filter`. Though you
|
||||
just need to use the function 'git_commit_non_empty_tree "$@"' instead
|
||||
of the `git commit-tree "$@"` idiom in your commit filter to make that
|
||||
happen.
|
||||
|
||||
--original <namespace>::
|
||||
Use this option to set the namespace where the original commits
|
||||
|
@ -11,7 +11,7 @@ SYNOPSIS
|
||||
'git for-each-ref' [--count=<count>] [--shell|--perl|--python|--tcl]
|
||||
[(--sort=<key>)...] [--format=<format>] [<pattern>...]
|
||||
[--points-at <object>] [(--merged | --no-merged) [<object>]]
|
||||
[--contains [<object>]] [--no-contains [<object>]]
|
||||
[--contains [<object>]]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -69,25 +69,16 @@ OPTIONS
|
||||
|
||||
--merged [<object>]::
|
||||
Only list refs whose tips are reachable from the
|
||||
specified commit (HEAD if not specified),
|
||||
incompatible with `--no-merged`.
|
||||
specified commit (HEAD if not specified).
|
||||
|
||||
--no-merged [<object>]::
|
||||
Only list refs whose tips are not reachable from the
|
||||
specified commit (HEAD if not specified),
|
||||
incompatible with `--merged`.
|
||||
specified commit (HEAD if not specified).
|
||||
|
||||
--contains [<object>]::
|
||||
Only list refs which contain the specified commit (HEAD if not
|
||||
specified).
|
||||
|
||||
--no-contains [<object>]::
|
||||
Only list refs which don't contain the specified commit (HEAD
|
||||
if not specified).
|
||||
|
||||
--ignore-case::
|
||||
Sorting and filtering refs are case insensitive.
|
||||
|
||||
FIELD NAMES
|
||||
-----------
|
||||
|
||||
@ -101,20 +92,11 @@ refname::
|
||||
The name of the ref (the part after $GIT_DIR/).
|
||||
For a non-ambiguous short name of the ref append `:short`.
|
||||
The option core.warnAmbiguousRefs is used to select the strict
|
||||
abbreviation mode. If `lstrip=<N>` (`rstrip=<N>`) is appended, strips `<N>`
|
||||
slash-separated path components from the front (back) of the refname
|
||||
(e.g. `%(refname:lstrip=2)` turns `refs/tags/foo` into `foo` and
|
||||
`%(refname:rstrip=2)` turns `refs/tags/foo` into `refs`).
|
||||
If `<N>` is a negative number, strip as many path components as
|
||||
necessary from the specified end to leave `-<N>` path components
|
||||
(e.g. `%(refname:lstrip=-2)` turns
|
||||
`refs/tags/foo` into `tags/foo` and `%(refname:rstrip=-1)`
|
||||
turns `refs/tags/foo` into `refs`). When the ref does not have
|
||||
enough components, the result becomes an empty string if
|
||||
stripping with positive <N>, or it becomes the full refname if
|
||||
stripping with negative <N>. Neither is an error.
|
||||
+
|
||||
`strip` can be used as a synomym to `lstrip`.
|
||||
abbreviation mode. If `strip=<N>` is appended, strips `<N>`
|
||||
slash-separated path components from the front of the refname
|
||||
(e.g., `%(refname:strip=2)` turns `refs/tags/foo` into `foo`.
|
||||
`<N>` must be a positive integer. If a displayed ref has fewer
|
||||
components than `<N>`, the command aborts with an error.
|
||||
|
||||
objecttype::
|
||||
The type of the object (`blob`, `tree`, `commit`, `tag`).
|
||||
@ -125,31 +107,21 @@ objectsize::
|
||||
objectname::
|
||||
The object name (aka SHA-1).
|
||||
For a non-ambiguous abbreviation of the object name append `:short`.
|
||||
For an abbreviation of the object name with desired length append
|
||||
`:short=<length>`, where the minimum length is MINIMUM_ABBREV. The
|
||||
length may be exceeded to ensure unique object names.
|
||||
|
||||
upstream::
|
||||
The name of a local ref which can be considered ``upstream''
|
||||
from the displayed ref. Respects `:short`, `:lstrip` and
|
||||
`:rstrip` in the same way as `refname` above. Additionally
|
||||
respects `:track` to show "[ahead N, behind M]" and
|
||||
`:trackshort` to show the terse version: ">" (ahead), "<"
|
||||
(behind), "<>" (ahead and behind), or "=" (in sync). `:track`
|
||||
also prints "[gone]" whenever unknown upstream ref is
|
||||
encountered. Append `:track,nobracket` to show tracking
|
||||
information without brackets (i.e "ahead N, behind M"). Has
|
||||
no effect if the ref does not have tracking information
|
||||
associated with it. All the options apart from `nobracket`
|
||||
are mutually exclusive, but if used together the last option
|
||||
is selected.
|
||||
from the displayed ref. Respects `:short` in the same way as
|
||||
`refname` above. Additionally respects `:track` to show
|
||||
"[ahead N, behind M]" and `:trackshort` to show the terse
|
||||
version: ">" (ahead), "<" (behind), "<>" (ahead and behind),
|
||||
or "=" (in sync). Has no effect if the ref does not have
|
||||
tracking information associated with it.
|
||||
|
||||
push::
|
||||
The name of a local ref which represents the `@{push}`
|
||||
location for the displayed ref. Respects `:short`, `:lstrip`,
|
||||
`:rstrip`, `:track`, and `:trackshort` options as `upstream`
|
||||
does. Produces an empty string if no `@{push}` ref is
|
||||
configured.
|
||||
The name of a local ref which represents the `@{push}` location
|
||||
for the displayed ref. Respects `:short`, `:track`, and
|
||||
`:trackshort` options as `upstream` does. Produces an empty
|
||||
string if no `@{push}` ref is configured.
|
||||
|
||||
HEAD::
|
||||
'*' if HEAD matches current ref (the checked out branch), ' '
|
||||
@ -174,25 +146,6 @@ align::
|
||||
quoted, but if nested then only the topmost level performs
|
||||
quoting.
|
||||
|
||||
if::
|
||||
Used as %(if)...%(then)...%(end) or
|
||||
%(if)...%(then)...%(else)...%(end). If there is an atom with
|
||||
value or string literal after the %(if) then everything after
|
||||
the %(then) is printed, else if the %(else) atom is used, then
|
||||
everything after %(else) is printed. We ignore space when
|
||||
evaluating the string before %(then), this is useful when we
|
||||
use the %(HEAD) atom which prints either "*" or " " and we
|
||||
want to apply the 'if' condition only on the 'HEAD' ref.
|
||||
Append ":equals=<string>" or ":notequals=<string>" to compare
|
||||
the value between the %(if:...) and %(then) atoms with the
|
||||
given string.
|
||||
|
||||
symref::
|
||||
The ref which the given symbolic ref refers to. If not a
|
||||
symbolic ref, nothing is printed. Respects the `:short`,
|
||||
`:lstrip` and `:rstrip` options in the same way as `refname`
|
||||
above.
|
||||
|
||||
In addition to the above, for commit and tag objects, the header
|
||||
field names (`tree`, `parent`, `object`, `type`, and `tag`) can
|
||||
be used to specify the value in the header field.
|
||||
@ -212,8 +165,6 @@ of all lines of the commit message up to the first blank line. The next
|
||||
line is 'contents:body', where body is all of the lines after the first
|
||||
blank line. The optional GPG signature is `contents:signature`. The
|
||||
first `N` lines of the message is obtained using `contents:lines=N`.
|
||||
Additionally, the trailers as interpreted by linkgit:git-interpret-trailers[1]
|
||||
are obtained as 'contents:trailers'.
|
||||
|
||||
For sorting purposes, fields with numeric values sort in numeric order
|
||||
(`objectsize`, `authordate`, `committerdate`, `creatordate`, `taggerdate`).
|
||||
@ -230,14 +181,6 @@ As a special case for the date-type fields, you may specify a format for
|
||||
the date by adding `:` followed by date format name (see the
|
||||
values the `--date` option to linkgit:git-rev-list[1] takes).
|
||||
|
||||
Some atoms like %(align) and %(if) always require a matching %(end).
|
||||
We call them "opening atoms" and sometimes denote them as %($open).
|
||||
|
||||
When a scripting language specific quoting is in effect, everything
|
||||
between a top-level opening atom and its matching %(end) is evaluated
|
||||
according to the semantics of the opening atom and only its result
|
||||
from the top-level is quoted.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
@ -325,22 +268,6 @@ eval=`git for-each-ref --shell --format="$fmt" \
|
||||
eval "$eval"
|
||||
------------
|
||||
|
||||
|
||||
An example to show the usage of %(if)...%(then)...%(else)...%(end).
|
||||
This prefixes the current branch with a star.
|
||||
|
||||
------------
|
||||
git for-each-ref --format="%(if)%(HEAD)%(then)* %(else) %(end)%(refname:short)" refs/heads/
|
||||
------------
|
||||
|
||||
|
||||
An example to show the usage of %(if)...%(then)...%(end).
|
||||
This prints the authorname, if present.
|
||||
|
||||
------------
|
||||
git for-each-ref --format="%(refname)%(if)%(authorname)%(then) Authored by: %(authorname)%(end)"
|
||||
------------
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:git-show-ref[1]
|
||||
|
@ -239,7 +239,7 @@ keeping them as Git notes allows them to be maintained between versions
|
||||
of the patch series (but see the discussion of the `notes.rewrite`
|
||||
configuration options in linkgit:git-notes[1] to use this workflow).
|
||||
|
||||
--[no-]signature=<signature>::
|
||||
--[no]-signature=<signature>::
|
||||
Add a signature to each message produced. Per RFC 3676 the signature
|
||||
is separated from the body by a line with '-- ' on it. If the
|
||||
signature option is omitted the signature defaults to the Git version
|
||||
|
@ -127,7 +127,7 @@ 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.
|
||||
controls --depth option in linkgit:git-repack[1]. This defaults to 250.
|
||||
|
||||
The optional configuration variable `gc.pruneExpire` controls how old
|
||||
the unreferenced loose objects have to be before they are pruned. The
|
||||
|
@ -26,7 +26,6 @@ SYNOPSIS
|
||||
[--threads <num>]
|
||||
[-f <file>] [-e] <pattern>
|
||||
[--and|--or|--not|(|)|-e <pattern>...]
|
||||
[--recurse-submodules] [--parent-basename <basename>]
|
||||
[ [--[no-]exclude-standard] [--cached | --no-index | --untracked] | <tree>...]
|
||||
[--] [<pathspec>...]
|
||||
|
||||
@ -89,19 +88,6 @@ OPTIONS
|
||||
mechanism. Only useful when searching files in the current directory
|
||||
with `--no-index`.
|
||||
|
||||
--recurse-submodules::
|
||||
Recursively search in each submodule that has been initialized and
|
||||
checked out in the repository. When used in combination with the
|
||||
<tree> option the prefix of all submodule output will be the name of
|
||||
the parent project's <tree> object.
|
||||
|
||||
--parent-basename <basename>::
|
||||
For internal use only. In order to produce uniform output with the
|
||||
--recurse-submodules option, this option can be used to provide the
|
||||
basename of a parent's <tree> object to a submodule so the submodule
|
||||
can prefix its output with the parent's name rather than the SHA1 of
|
||||
the submodule.
|
||||
|
||||
-a::
|
||||
--text::
|
||||
Process binary files as if they were text.
|
||||
|
@ -35,7 +35,7 @@ blame::
|
||||
|
||||
browser::
|
||||
Start a tree browser showing all files in the specified
|
||||
commit. Files selected through the
|
||||
commit (or `HEAD` by default). Files selected through the
|
||||
browser are opened in the blame viewer.
|
||||
|
||||
citool::
|
||||
|
@ -116,8 +116,8 @@ does not exist, it will be created.
|
||||
TEMPLATE DIRECTORY
|
||||
------------------
|
||||
|
||||
Files and directories in the template directory whose name do not start with a
|
||||
dot will be copied to the `$GIT_DIR` after it is created.
|
||||
The template directory contains files and directories that will be copied to
|
||||
the `$GIT_DIR` after it is created.
|
||||
|
||||
The template directory will be one of the following (in order):
|
||||
|
||||
|
@ -57,7 +57,7 @@ OPTIONS
|
||||
|
||||
-s::
|
||||
--stage::
|
||||
Show staged contents' mode bits, object name and stage number in the output.
|
||||
Show staged contents' object name, mode bits and stage number in the output.
|
||||
|
||||
--directory::
|
||||
If a whole directory is classified as "other", show just its
|
||||
@ -77,8 +77,7 @@ OPTIONS
|
||||
succeed.
|
||||
|
||||
-z::
|
||||
\0 line termination on output and do not quote filenames.
|
||||
See OUTPUT below for more information.
|
||||
\0 line termination on output.
|
||||
|
||||
-x <pattern>::
|
||||
--exclude=<pattern>::
|
||||
@ -197,10 +196,9 @@ the index records up to three such pairs; one from tree O in stage
|
||||
the user (or the porcelain) to see what should eventually be recorded at the
|
||||
path. (see linkgit:git-read-tree[1] for more information on state)
|
||||
|
||||
Without the `-z` option, pathnames with "unusual" characters are
|
||||
quoted as explained for the configuration variable `core.quotePath`
|
||||
(see linkgit:git-config[1]). Using `-z` the filename is output
|
||||
verbatim and the line is terminated by a NUL byte.
|
||||
When `-z` option is not used, TAB, LF, and backslash characters
|
||||
in pathnames are represented as `\t`, `\n`, and `\\`,
|
||||
respectively.
|
||||
|
||||
|
||||
Exclude Patterns
|
||||
|
@ -53,8 +53,7 @@ OPTIONS
|
||||
Show object size of blob (file) entries.
|
||||
|
||||
-z::
|
||||
\0 line termination on output and do not quote filenames.
|
||||
See OUTPUT FORMAT below for more information.
|
||||
\0 line termination on output.
|
||||
|
||||
--name-only::
|
||||
--name-status::
|
||||
@ -83,6 +82,8 @@ Output Format
|
||||
-------------
|
||||
<mode> SP <type> SP <object> TAB <file>
|
||||
|
||||
Unless the `-z` option is used, TAB, LF, and backslash characters
|
||||
in pathnames are represented as `\t`, `\n`, and `\\`, respectively.
|
||||
This output format is compatible with what `--index-info --stdin` of
|
||||
'git update-index' expects.
|
||||
|
||||
@ -94,11 +95,6 @@ Object size identified by <object> is given in bytes, and right-justified
|
||||
with minimum width of 7 characters. Object size is given only for blobs
|
||||
(file) entries; for other entries `-` character is used in place of size.
|
||||
|
||||
Without the `-z` option, pathnames with "unusual" characters are
|
||||
quoted as explained for the configuration variable `core.quotePath`
|
||||
(see linkgit:git-config[1]). Using `-z` the filename is output
|
||||
verbatim and the line is terminated by a NUL byte.
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
|
@ -13,8 +13,8 @@ SYNOPSIS
|
||||
[-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
|
||||
[--[no-]allow-unrelated-histories]
|
||||
[--[no-]rerere-autoupdate] [-m <msg>] [<commit>...]
|
||||
'git merge' <msg> HEAD <commit>...
|
||||
'git merge' --abort
|
||||
'git merge' --continue
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -45,7 +45,11 @@ a log message from the user describing the changes.
|
||||
D---E---F---G---H master
|
||||
------------
|
||||
|
||||
The second syntax ("`git merge --abort`") can only be run after the
|
||||
The second syntax (<msg> `HEAD` <commit>...) is supported for
|
||||
historical reasons. Do not use it from the command line or in
|
||||
new scripts. It is the same as `git merge -m <msg> <commit>...`.
|
||||
|
||||
The third syntax ("`git merge --abort`") can only be run after the
|
||||
merge has resulted in conflicts. 'git merge --abort' will abort the
|
||||
merge process and try to reconstruct the pre-merge state. However,
|
||||
if there were uncommitted changes when the merge started (and
|
||||
@ -57,8 +61,6 @@ reconstruct the original (pre-merge) changes. Therefore:
|
||||
discouraged: while possible, it may leave you in a state that is hard to
|
||||
back out of in the case of a conflict.
|
||||
|
||||
The fourth syntax ("`git merge --continue`") can only be run after the
|
||||
merge has resulted in conflicts.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
@ -97,11 +99,6 @@ commit or stash your changes before running 'git merge'.
|
||||
'git merge --abort' is equivalent to 'git reset --merge' when
|
||||
`MERGE_HEAD` is present.
|
||||
|
||||
--continue::
|
||||
After a 'git merge' stops due to conflicts you can conclude the
|
||||
merge by running 'git merge --continue' (see "HOW TO RESOLVE
|
||||
CONFLICTS" section below).
|
||||
|
||||
<commit>...::
|
||||
Commits, usually other branch heads, to merge into our branch.
|
||||
Specifying more than one commit will create a merge with
|
||||
|
@ -26,18 +26,7 @@ OPTIONS
|
||||
|
||||
--refs=<pattern>::
|
||||
Only use refs whose names match a given shell pattern. The pattern
|
||||
can be one of branch name, tag name or fully qualified ref name. If
|
||||
given multiple times, use refs whose names match any of the given shell
|
||||
patterns. Use `--no-refs` to clear any previous ref patterns given.
|
||||
|
||||
--exclude=<pattern>::
|
||||
Do not use any ref whose name matches a given shell pattern. The
|
||||
pattern can be one of branch name, tag name or fully qualified ref
|
||||
name. If given multiple times, a ref will be excluded when it matches
|
||||
any of the given patterns. When used together with --refs, a ref will
|
||||
be used as a match only when it matches at least one --refs pattern and
|
||||
does not match any --exclude patterns. Use `--no-exclude` to clear the
|
||||
list of exclude patterns.
|
||||
can be one of branch name, tag name or fully qualified ref name.
|
||||
|
||||
--all::
|
||||
List all commits reachable from all refs
|
||||
|
@ -303,15 +303,6 @@ These options can be used to modify 'git p4 submit' behavior.
|
||||
submit manually or revert. This option always stops after the
|
||||
first (oldest) commit. Git tags are not exported to p4.
|
||||
|
||||
--shelve::
|
||||
Instead of submitting create a series of shelved changelists.
|
||||
After creating each shelve, the relevant files are reverted/deleted.
|
||||
If you have multiple commits pending multiple shelves will be created.
|
||||
|
||||
--update-shelve CHANGELIST::
|
||||
Update an existing shelved changelist with this commit. Implies
|
||||
--shelve.
|
||||
|
||||
--conflict=(ask|skip|quit)::
|
||||
Conflicts can occur when applying a commit to p4. When this
|
||||
happens, the default behavior ("ask") is to prompt whether to
|
||||
@ -476,12 +467,6 @@ git-p4.client::
|
||||
Client specified as an option to all p4 commands, with
|
||||
'-c <client>', including the client spec.
|
||||
|
||||
git-p4.retries::
|
||||
Specifies the number of times to retry a p4 command (notably,
|
||||
'p4 sync') if the network times out. The default value is 3.
|
||||
Set the value to 0 to disable retries or if your p4 version
|
||||
does not support retries (pre 2012.2).
|
||||
|
||||
Clone and sync variables
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
git-p4.syncFromOrigin::
|
||||
|
@ -272,7 +272,7 @@ origin +master` to force a push to the `master` branch). See the
|
||||
standard error stream is not directed to a terminal.
|
||||
|
||||
--no-recurse-submodules::
|
||||
--recurse-submodules=check|on-demand|only|no::
|
||||
--recurse-submodules=check|on-demand|no::
|
||||
May be used to make sure all submodule commits used by the
|
||||
revisions to be pushed are available on a remote-tracking branch.
|
||||
If 'check' is used Git will verify that all submodule commits that
|
||||
@ -280,12 +280,11 @@ origin +master` to force a push to the `master` branch). See the
|
||||
remote of the submodule. If any commits are missing the push will
|
||||
be aborted and exit with non-zero status. If 'on-demand' is used
|
||||
all submodules that changed in the revisions to be pushed will be
|
||||
pushed. If on-demand was not able to push all necessary revisions it will
|
||||
also be aborted and exit with non-zero status. If 'only' is used all
|
||||
submodules will be recursively pushed while the superproject is left
|
||||
unpushed. A value of 'no' or using `--no-recurse-submodules` can be used
|
||||
to override the push.recurseSubmodules configuration variable when no
|
||||
submodule recursion is required.
|
||||
pushed. If on-demand was not able to push all necessary revisions
|
||||
it will also be aborted and exit with non-zero status. A value of
|
||||
'no' or using `--no-recurse-submodules` can be used to override the
|
||||
push.recurseSubmodules configuration variable when no submodule
|
||||
recursion is required.
|
||||
|
||||
--[no-]verify::
|
||||
Toggle the pre-push hook (see linkgit:githooks[5]). The
|
||||
|
@ -115,12 +115,6 @@ OPTIONS
|
||||
directories the index file and index output file are
|
||||
located in.
|
||||
|
||||
--[no-]recurse-submodules::
|
||||
Using --recurse-submodules will update the content of all initialized
|
||||
submodules according to the commit recorded in the superproject by
|
||||
calling read-tree recursively, also setting the submodules HEAD to be
|
||||
detached at that commit.
|
||||
|
||||
--no-sparse-checkout::
|
||||
Disable sparse checkout support even if `core.sparseCheckout`
|
||||
is true.
|
||||
|
@ -12,7 +12,7 @@ SYNOPSIS
|
||||
[<upstream> [<branch>]]
|
||||
'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>]
|
||||
--root [<branch>]
|
||||
'git rebase' --continue | --skip | --abort | --quit | --edit-todo
|
||||
'git rebase' --continue | --skip | --abort | --edit-todo
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -252,11 +252,6 @@ leave out at most one of A and B, in which case it defaults to HEAD.
|
||||
will be reset to where it was when the rebase operation was
|
||||
started.
|
||||
|
||||
--quit::
|
||||
Abort the rebase operation but HEAD is not reset back to the
|
||||
original branch. The index and working tree are also left
|
||||
unchanged as a result.
|
||||
|
||||
--keep-empty::
|
||||
Keep the commits that do not change anything from its
|
||||
parents in the result.
|
||||
|
30
Documentation/git-relink.txt
Normal file
30
Documentation/git-relink.txt
Normal file
@ -0,0 +1,30 @@
|
||||
git-relink(1)
|
||||
=============
|
||||
|
||||
NAME
|
||||
----
|
||||
git-relink - Hardlink common objects in local repositories
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git relink' [--safe] <dir>... <master_dir>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
This will scan 1 or more object repositories and look for objects in common
|
||||
with a master repository. Objects not already hardlinked to the master
|
||||
repository will be replaced with a hardlink to the master repository.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
--safe::
|
||||
Stops if two objects with the same hash exist but have different sizes.
|
||||
Default is to warn and continue.
|
||||
|
||||
<dir>::
|
||||
Directories containing a .git/objects/ subdirectory.
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
@ -292,54 +292,6 @@ $ git reset --keep start <3>
|
||||
<3> But you can use "reset --keep" to remove the unwanted commit after
|
||||
you switched to "branch2".
|
||||
|
||||
Split a commit apart into a sequence of commits::
|
||||
+
|
||||
Suppose that you have created lots of logically separate changes and commited
|
||||
them together. Then, later you decide that it might be better to have each
|
||||
logical chunk associated with its own commit. You can use git reset to rewind
|
||||
history without changing the contents of your local files, and then successively
|
||||
use `git add -p` to interactively select which hunks to include into each commit,
|
||||
using `git commit -c` to pre-populate the commit message.
|
||||
+
|
||||
------------
|
||||
$ git reset -N HEAD^ <1>
|
||||
$ git add -p <2>
|
||||
$ git diff --cached <3>
|
||||
$ git commit -c HEAD@{1} <4>
|
||||
... <5>
|
||||
$ git add ... <6>
|
||||
$ git diff --cached <7>
|
||||
$ git commit ... <8>
|
||||
------------
|
||||
+
|
||||
<1> First, reset the history back one commit so that we remove the original
|
||||
commit, but leave the working tree with all the changes. The -N ensures
|
||||
that any new files added with HEAD are still marked so that git add -p
|
||||
will find them.
|
||||
<2> Next, we interactively select diff hunks to add using the git add -p
|
||||
facility. This will ask you about each diff hunk in sequence and you can
|
||||
use simple commands such as "yes, include this", "No don't include this"
|
||||
or even the very powerful "edit" facility.
|
||||
<3> Once satisfied with the hunks you want to include, you should verify what
|
||||
has been prepared for the first commit by using git diff --cached. This
|
||||
shows all the changes that have been moved into the index and are about
|
||||
to be committed.
|
||||
<4> Next, commit the changes stored in the index. The -c option specifies to
|
||||
pre-populate the commit message from the original message that you started
|
||||
with in the first commit. This is helpful to avoid retyping it. The HEAD@{1}
|
||||
is a special notation for the commit that HEAD used to be at prior to the
|
||||
original reset commit (1 change ago). See linkgit:git-reflog[1] for more
|
||||
details. You may also use any other valid commit reference.
|
||||
<5> You can repeat steps 2-4 multiple times to break the original code into
|
||||
any number of commits.
|
||||
<6> Now you've split out many of the changes into their own commits, and might
|
||||
no longer use the patch mode of git add, in order to select all remaining
|
||||
uncommitted changes.
|
||||
<7> Once again, check to verify that you've included what you want to. You may
|
||||
also wish to verify that git diff doesn't show any remaining changes to be
|
||||
committed later.
|
||||
<8> And finally create the final commit.
|
||||
|
||||
|
||||
DISCUSSION
|
||||
----------
|
||||
|
@ -91,8 +91,7 @@ repository. For example:
|
||||
----
|
||||
prefix=$(git rev-parse --show-prefix)
|
||||
cd "$(git rev-parse --show-toplevel)"
|
||||
# rev-parse provides the -- needed for 'set'
|
||||
eval "set $(git rev-parse --sq --prefix "$prefix" -- "$@")"
|
||||
eval "set -- $(git rev-parse --sq --prefix "$prefix" "$@")"
|
||||
----
|
||||
|
||||
--verify::
|
||||
@ -217,10 +216,6 @@ If `$GIT_DIR` is not defined and the current directory
|
||||
is not detected to lie in a Git repository or work tree
|
||||
print a message to stderr and exit with nonzero status.
|
||||
|
||||
--absolute-git-dir::
|
||||
Like `--git-dir`, but its output is always the canonicalized
|
||||
absolute path.
|
||||
|
||||
--git-common-dir::
|
||||
Show `$GIT_COMMON_DIR` if defined, else `$GIT_DIR`.
|
||||
|
||||
@ -261,12 +256,6 @@ print a message to stderr and exit with nonzero status.
|
||||
--show-toplevel::
|
||||
Show the absolute path of the top-level directory.
|
||||
|
||||
--show-superproject-working-tree
|
||||
Show the absolute path of the root of the superproject's
|
||||
working tree (if exists) that uses the current repository as
|
||||
its submodule. Outputs nothing if the current repository is
|
||||
not used as a submodule by any project.
|
||||
|
||||
--shared-index-path::
|
||||
Show the path to the shared index file in split index mode, or
|
||||
empty if not in split-index mode.
|
||||
|
@ -89,7 +89,7 @@ See the CONFIGURATION section for `sendemail.multiEdit`.
|
||||
reply to the given Message-Id, which avoids breaking threads to
|
||||
provide a new patch series.
|
||||
The second and subsequent emails will be sent as replies according to
|
||||
the `--[no-]chain-reply-to` setting.
|
||||
the `--[no]-chain-reply-to` setting.
|
||||
+
|
||||
So for example when `--thread` and `--no-chain-reply-to` are specified, the
|
||||
second and subsequent patches will be replies to the first one like in the
|
||||
|
@ -81,12 +81,6 @@ be in a separate packet, and the list must end with a flush packet.
|
||||
will also fail if the actual call to `gpg --sign` fails. See
|
||||
linkgit:git-receive-pack[1] for the details on the receiving end.
|
||||
|
||||
--push-option=<string>::
|
||||
Pass the specified string as a push option for consumption by
|
||||
hooks on the server side. If the server doesn't support push
|
||||
options, error out. See linkgit:git-push[1] and
|
||||
linkgit:githooks[5] for details.
|
||||
|
||||
<host>::
|
||||
A remote host to house the repository. When this
|
||||
part is specified, 'git-receive-pack' is invoked via
|
||||
|
@ -47,10 +47,6 @@ OPTIONS
|
||||
|
||||
Each pretty-printed commit will be rewrapped before it is shown.
|
||||
|
||||
-c::
|
||||
--committer::
|
||||
Collect and show committer identities instead of authors.
|
||||
|
||||
-w[<width>[,<indent1>[,<indent2>]]]::
|
||||
Linewrap the output by wrapping each line at `width`. The first
|
||||
line of each entry is indented by `indent1` spaces, and the second
|
||||
|
@ -13,11 +13,8 @@ SYNOPSIS
|
||||
'git stash' drop [-q|--quiet] [<stash>]
|
||||
'git stash' ( pop | apply ) [--index] [-q|--quiet] [<stash>]
|
||||
'git stash' branch <branchname> [<stash>]
|
||||
'git stash' save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
|
||||
[-u|--include-untracked] [-a|--all] [<message>]
|
||||
'git stash' [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
|
||||
[-u|--include-untracked] [-a|--all] [-m|--message <message>]]
|
||||
[--] [<pathspec>...]]
|
||||
'git stash' [save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
|
||||
[-u|--include-untracked] [-a|--all] [<message>]]
|
||||
'git stash' clear
|
||||
'git stash' create [<message>]
|
||||
'git stash' store [-m|--message <message>] [-q|--quiet] <commit>
|
||||
@ -49,24 +46,13 @@ OPTIONS
|
||||
-------
|
||||
|
||||
save [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [<message>]::
|
||||
push [-p|--patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [-m|--message <message>] [--] [<pathspec>...]::
|
||||
|
||||
Save your local modifications to a new 'stash' and roll them
|
||||
back to HEAD (in the working tree and in the index).
|
||||
The <message> part is optional and gives
|
||||
the description along with the stashed state.
|
||||
+
|
||||
For quickly making a snapshot, you can omit "push". In this mode,
|
||||
non-option arguments are not allowed to prevent a misspelled
|
||||
subcommand from making an unwanted stash. The two exceptions to this
|
||||
are `stash -p` which acts as alias for `stash push -p` and pathspecs,
|
||||
which are allowed after a double hyphen `--` for disambiguation.
|
||||
+
|
||||
When pathspec is given to 'git stash push', the new stash records the
|
||||
modified states only for the files that match the pathspec. The index
|
||||
entries and working tree files are then rolled back to the state in
|
||||
HEAD only for these files, too, leaving files that do not match the
|
||||
pathspec intact.
|
||||
Save your local modifications to a new 'stash', and run `git reset
|
||||
--hard` to revert them. The <message> part is optional and gives
|
||||
the description along with the stashed state. For quickly making
|
||||
a snapshot, you can omit _both_ "save" and <message>, but giving
|
||||
only <message> does not trigger this action to prevent a misspelled
|
||||
subcommand from making an unwanted stash.
|
||||
+
|
||||
If the `--keep-index` option is used, all changes already added to the
|
||||
index are left intact.
|
||||
|
@ -181,17 +181,6 @@ in which case `XY` are `!!`.
|
||||
! ! ignored
|
||||
-------------------------------------------------
|
||||
|
||||
Submodules have more state and instead report
|
||||
M the submodule has a different HEAD than
|
||||
recorded in the index
|
||||
m the submodule has modified content
|
||||
? the submodule has untracked files
|
||||
since modified content or untracked files in a submodule cannot be added
|
||||
via `git add` in the superproject to prepare a commit.
|
||||
|
||||
'm' and '?' are applied recursively. For example if a nested submodule
|
||||
in a submodule contains an untracked file, this is reported as '?' as well.
|
||||
|
||||
If -b is used the short-format status is preceded by a line
|
||||
|
||||
## branchname tracking info
|
||||
@ -221,8 +210,6 @@ field from the first filename). Third, filenames containing special
|
||||
characters are not specially formatted; no quoting or
|
||||
backslash-escaping is performed.
|
||||
|
||||
Any submodule changes are reported as modified `M` instead of `m` or single `?`.
|
||||
|
||||
Porcelain Format Version 2
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@ -335,9 +322,10 @@ When the `-z` option is given, pathnames are printed as is and
|
||||
without any quoting and lines are terminated with a NUL (ASCII 0x00)
|
||||
byte.
|
||||
|
||||
Without the `-z` option, pathnames with "unusual" characters are
|
||||
quoted as explained for the configuration variable `core.quotePath`
|
||||
(see linkgit:git-config[1]).
|
||||
Otherwise, all pathnames will be "C-quoted" if they contain any tab,
|
||||
linefeed, double quote, or backslash characters. In C-quoting, these
|
||||
characters will be replaced with the corresponding C-style escape
|
||||
sequences and the resulting pathname will be double quoted.
|
||||
|
||||
|
||||
CONFIGURATION
|
||||
|
@ -9,15 +9,19 @@ git-submodule - Initialize, update or inspect submodules
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git submodule' [--quiet] add [<options>] [--] <repository> [<path>]
|
||||
'git submodule' [--quiet] add [-b <branch>] [-f|--force] [--name <name>]
|
||||
[--reference <repository>] [--depth <depth>] [--] <repository> [<path>]
|
||||
'git submodule' [--quiet] status [--cached] [--recursive] [--] [<path>...]
|
||||
'git submodule' [--quiet] init [--] [<path>...]
|
||||
'git submodule' [--quiet] deinit [-f|--force] (--all|[--] <path>...)
|
||||
'git submodule' [--quiet] update [<options>] [--] [<path>...]
|
||||
'git submodule' [--quiet] summary [<options>] [--] [<path>...]
|
||||
'git submodule' [--quiet] update [--init] [--remote] [-N|--no-fetch]
|
||||
[--[no-]recommend-shallow] [-f|--force] [--rebase|--merge]
|
||||
[--reference <repository>] [--depth <depth>] [--recursive]
|
||||
[--jobs <n>] [--] [<path>...]
|
||||
'git submodule' [--quiet] summary [--cached|--files] [(-n|--summary-limit) <n>]
|
||||
[commit] [--] [<path>...]
|
||||
'git submodule' [--quiet] foreach [--recursive] <command>
|
||||
'git submodule' [--quiet] sync [--recursive] [--] [<path>...]
|
||||
'git submodule' [--quiet] absorbgitdirs [--] [<path>...]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
@ -58,7 +62,7 @@ if you choose to go that route.
|
||||
|
||||
COMMANDS
|
||||
--------
|
||||
add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--depth <depth>] [--] <repository> [<path>]::
|
||||
add::
|
||||
Add the given repository as a submodule at the given path
|
||||
to the changeset to be committed next to the current
|
||||
project: the current project is termed the "superproject".
|
||||
@ -73,17 +77,13 @@ configuration entries unless `--name` is used to specify a logical name.
|
||||
+
|
||||
<repository> is the URL of the new submodule's origin repository.
|
||||
This may be either an absolute URL, or (if it begins with ./
|
||||
or ../), the location relative to the superproject's default remote
|
||||
or ../), the location relative to the superproject's origin
|
||||
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
|
||||
when following the rules for relative URLs - because the evaluation
|
||||
of relative URLs in Git is identical to that of relative directories).
|
||||
+
|
||||
The default remote is the remote of the remote tracking branch
|
||||
of the current branch. If no such remote tracking branch exists or
|
||||
the HEAD is detached, "origin" is assumed to be the default remote.
|
||||
If the superproject doesn't have a default remote configured
|
||||
If the superproject doesn't have an origin configured
|
||||
the superproject is its own authoritative upstream and the current
|
||||
working directory is used instead.
|
||||
+
|
||||
@ -103,7 +103,7 @@ together in the same relative location, and only the
|
||||
superproject's URL needs to be provided: git-submodule will correctly
|
||||
locate the submodule using the relative URL in .gitmodules.
|
||||
|
||||
status [--cached] [--recursive] [--] [<path>...]::
|
||||
status::
|
||||
Show the status of the submodules. This will print the SHA-1 of the
|
||||
currently checked out commit for each submodule, along with the
|
||||
submodule path and the output of 'git describe' for the
|
||||
@ -120,30 +120,22 @@ submodules with respect to the commit recorded in the index or the HEAD,
|
||||
linkgit:git-status[1] and linkgit:git-diff[1] will provide that information
|
||||
too (and can also report changes to a submodule's work tree).
|
||||
|
||||
init [--] [<path>...]::
|
||||
init::
|
||||
Initialize the submodules recorded in the index (which were
|
||||
added and committed elsewhere) by setting `submodule.$name.url`
|
||||
in .git/config. It uses the same setting from .gitmodules as
|
||||
a template. If the URL is relative, it will be resolved using
|
||||
the default remote. If there is no default remote, the current
|
||||
repository will be assumed to be upstream.
|
||||
+
|
||||
Optional <path> arguments limit which submodules will be initialized.
|
||||
If no path is specified and submodule.active has been configured, submodules
|
||||
configured to be active will be initialized, otherwise all submodules are
|
||||
initialized.
|
||||
+
|
||||
When present, it will also copy the value of `submodule.$name.update`.
|
||||
This command does not alter existing information in .git/config.
|
||||
You can then customize the submodule clone URLs in .git/config
|
||||
for your local setup and proceed to `git submodule update`;
|
||||
you can also just use `git submodule update --init` without
|
||||
the explicit 'init' step if you do not intend to customize
|
||||
any submodule locations.
|
||||
+
|
||||
See the add subcommand for the defintion of default remote.
|
||||
added and committed elsewhere) by copying submodule
|
||||
names and urls from .gitmodules to .git/config.
|
||||
Optional <path> arguments limit which submodules will be initialized.
|
||||
It will also copy the value of `submodule.$name.update` into
|
||||
.git/config.
|
||||
The key used in .git/config is `submodule.$name.url`.
|
||||
This command does not alter existing information in .git/config.
|
||||
You can then customize the submodule clone URLs in .git/config
|
||||
for your local setup and proceed to `git submodule update`;
|
||||
you can also just use `git submodule update --init` without
|
||||
the explicit 'init' step if you do not intend to customize
|
||||
any submodule locations.
|
||||
|
||||
deinit [-f|--force] (--all|[--] <path>...)::
|
||||
deinit::
|
||||
Unregister the given submodules, i.e. remove the whole
|
||||
`submodule.$name` section from .git/config together with their work
|
||||
tree. Further calls to `git submodule update`, `git submodule foreach`
|
||||
@ -159,20 +151,20 @@ instead of deinit-ing everything, to prevent mistakes.
|
||||
If `--force` is specified, the submodule's working tree will
|
||||
be removed even if it contains local modifications.
|
||||
|
||||
update [--init] [--remote] [-N|--no-fetch] [--[no-]recommend-shallow] [-f|--force] [--checkout|--rebase|--merge] [--reference <repository>] [--depth <depth>] [--recursive] [--jobs <n>] [--] [<path>...]::
|
||||
update::
|
||||
+
|
||||
--
|
||||
Update the registered submodules to match what the superproject
|
||||
expects by cloning missing submodules and updating the working tree of
|
||||
the submodules. The "updating" can be done in several ways depending
|
||||
on command line options and the value of `submodule.<name>.update`
|
||||
configuration variable. The command line option takes precedence over
|
||||
the configuration variable. if neither is given, a checkout is performed.
|
||||
update procedures supported both from the command line as well as setting
|
||||
`submodule.<name>.update`:
|
||||
configuration variable. Supported update procedures are:
|
||||
|
||||
checkout;; the commit recorded in the superproject will be
|
||||
checked out in the submodule on a detached HEAD.
|
||||
checked out in the submodule on a detached HEAD. This is
|
||||
done when `--checkout` option is given, or no option is
|
||||
given, and `submodule.<name>.update` is unset, or if it is
|
||||
set to 'checkout'.
|
||||
+
|
||||
If `--force` is specified, the submodule will be checked out (using
|
||||
`git checkout --force` if appropriate), even if the commit specified
|
||||
@ -180,21 +172,23 @@ in the index of the containing repository already matches the commit
|
||||
checked out in the submodule.
|
||||
|
||||
rebase;; the current branch of the submodule will be rebased
|
||||
onto the commit recorded in the superproject.
|
||||
onto the commit recorded in the superproject. This is done
|
||||
when `--rebase` option is given, or no option is given, and
|
||||
`submodule.<name>.update` is set to 'rebase'.
|
||||
|
||||
merge;; the commit recorded in the superproject will be merged
|
||||
into the current branch in the submodule.
|
||||
|
||||
The following procedures are only available via the `submodule.<name>.update`
|
||||
configuration variable:
|
||||
into the current branch in the submodule. This is done
|
||||
when `--merge` option is given, or no option is given, and
|
||||
`submodule.<name>.update` is set to 'merge'.
|
||||
|
||||
custom command;; arbitrary shell command that takes a single
|
||||
argument (the sha1 of the commit recorded in the
|
||||
superproject) is executed. When `submodule.<name>.update`
|
||||
is set to '!command', the remainder after the exclamation mark
|
||||
is the custom command.
|
||||
superproject) is executed. This is done when no option is
|
||||
given, and `submodule.<name>.update` has the form of
|
||||
'!command'.
|
||||
|
||||
none;; the submodule is not updated.
|
||||
When no option is given and `submodule.<name>.update` is set to 'none',
|
||||
the submodule is not updated.
|
||||
|
||||
If the submodule is not yet initialized, and you just want to use the
|
||||
setting as stored in .gitmodules, you can automatically initialize the
|
||||
@ -203,7 +197,7 @@ submodule with the `--init` option.
|
||||
If `--recursive` is specified, this command will recurse into the
|
||||
registered submodules, and update any nested submodules within.
|
||||
--
|
||||
summary [--cached|--files] [(-n|--summary-limit) <n>] [commit] [--] [<path>...]::
|
||||
summary::
|
||||
Show commit summary between the given commit (defaults to HEAD) and
|
||||
working tree/index. For a submodule in question, a series of commits
|
||||
in the submodule between the given super project commit and the
|
||||
@ -216,7 +210,7 @@ summary [--cached|--files] [(-n|--summary-limit) <n>] [commit] [--] [<path>...]:
|
||||
Using the `--submodule=log` option with linkgit:git-diff[1] will provide that
|
||||
information too.
|
||||
|
||||
foreach [--recursive] <command>::
|
||||
foreach::
|
||||
Evaluates an arbitrary shell command in each checked out submodule.
|
||||
The command has access to the variables $name, $path, $sha1 and
|
||||
$toplevel:
|
||||
@ -233,14 +227,11 @@ foreach [--recursive] <command>::
|
||||
the processing to terminate. This can be overridden by adding '|| :'
|
||||
to the end of the command.
|
||||
+
|
||||
As an example, the command below will show the path and currently
|
||||
checked out commit for each submodule:
|
||||
+
|
||||
--------------
|
||||
git submodule foreach 'echo $path `git rev-parse HEAD`'
|
||||
--------------
|
||||
As an example, +git submodule foreach \'echo $path {backtick}git
|
||||
rev-parse HEAD{backtick}'+ will show the path and currently checked out
|
||||
commit for each submodule.
|
||||
|
||||
sync [--recursive] [--] [<path>...]::
|
||||
sync::
|
||||
Synchronizes submodules' remote URL configuration setting
|
||||
to the value specified in .gitmodules. It will only affect those
|
||||
submodules which already have a URL entry in .git/config (that is the
|
||||
@ -254,20 +245,6 @@ sync [--recursive] [--] [<path>...]::
|
||||
If `--recursive` is specified, this command will recurse into the
|
||||
registered submodules, and sync any nested submodules within.
|
||||
|
||||
absorbgitdirs::
|
||||
If a git directory of a submodule is inside the submodule,
|
||||
move the git directory of the submodule into its superprojects
|
||||
`$GIT_DIR/modules` path and then connect the git directory and
|
||||
its working directory by setting the `core.worktree` and adding
|
||||
a .git file pointing to the git directory embedded in the
|
||||
superprojects git directory.
|
||||
+
|
||||
A repository that was cloned independently and later added as a submodule or
|
||||
old setups have the submodules git directory inside the submodule instead of
|
||||
embedded into the superprojects git directory.
|
||||
+
|
||||
This command is recursive by default.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-q::
|
||||
|
@ -12,11 +12,10 @@ SYNOPSIS
|
||||
'git tag' [-a | -s | -u <keyid>] [-f] [-m <msg> | -F <file>]
|
||||
<tagname> [<commit> | <object>]
|
||||
'git tag' -d <tagname>...
|
||||
'git tag' [-n[<num>]] -l [--contains <commit>] [--contains <commit>]
|
||||
[--points-at <object>] [--column[=<options>] | --no-column]
|
||||
[--create-reflog] [--sort=<key>] [--format=<format>]
|
||||
[--[no-]merged [<commit>]] [<pattern>...]
|
||||
'git tag' -v [--format=<format>] <tagname>...
|
||||
'git tag' [-n[<num>]] -l [--contains <commit>] [--points-at <object>]
|
||||
[--column[=<options>] | --no-column] [--create-reflog] [--sort=<key>]
|
||||
[--format=<format>] [--[no-]merged [<commit>]] [<pattern>...]
|
||||
'git tag' -v <tagname>...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -83,24 +82,18 @@ OPTIONS
|
||||
|
||||
-n<num>::
|
||||
<num> specifies how many lines from the annotation, if any,
|
||||
are printed when using -l. Implies `--list`.
|
||||
+
|
||||
The default is not to print any annotation lines.
|
||||
If no number is given to `-n`, only the first line is printed.
|
||||
If the tag is not annotated, the commit message is displayed instead.
|
||||
are printed when using -l.
|
||||
The default is not to print any annotation lines.
|
||||
If no number is given to `-n`, only the first line is printed.
|
||||
If the tag is not annotated, the commit message is displayed instead.
|
||||
|
||||
-l::
|
||||
--list::
|
||||
List tags. With optional `<pattern>...`, e.g. `git tag --list
|
||||
'v-*'`, list only the tags that match the pattern(s).
|
||||
+
|
||||
Running "git tag" without arguments also lists all tags. The pattern
|
||||
is a shell wildcard (i.e., matched using fnmatch(3)). Multiple
|
||||
patterns may be given; if any of them matches, the tag is shown.
|
||||
+
|
||||
This option is implicitly supplied if any other list-like option such
|
||||
as `--contains` is provided. See the documentation for each of those
|
||||
options for details.
|
||||
-l <pattern>::
|
||||
--list <pattern>::
|
||||
List tags with names that match the given pattern (or all if no
|
||||
pattern is given). Running "git tag" without arguments also
|
||||
lists all tags. The pattern is a shell wildcard (i.e., matched
|
||||
using fnmatch(3)). Multiple patterns may be given; if any of
|
||||
them matches, the tag is shown.
|
||||
|
||||
--sort=<key>::
|
||||
Sort based on the key given. Prefix `-` to sort in
|
||||
@ -108,17 +101,13 @@ options for details.
|
||||
multiple times, in which case the last key becomes the primary
|
||||
key. Also supports "version:refname" or "v:refname" (tag
|
||||
names are treated as versions). The "version:refname" sort
|
||||
order can also be affected by the "versionsort.suffix"
|
||||
configuration variable.
|
||||
order can also be affected by the
|
||||
"versionsort.prereleaseSuffix" configuration variable.
|
||||
The keys supported are the same as those in `git for-each-ref`.
|
||||
Sort order defaults to the value configured for the `tag.sort`
|
||||
variable if it exists, or lexicographic order otherwise. See
|
||||
linkgit:git-config[1].
|
||||
|
||||
-i::
|
||||
--ignore-case::
|
||||
Sorting and filtering tags are case insensitive.
|
||||
|
||||
--column[=<options>]::
|
||||
--no-column::
|
||||
Display tag listing in columns. See configuration variable
|
||||
@ -129,23 +118,10 @@ This option is only applicable when listing tags without annotation lines.
|
||||
|
||||
--contains [<commit>]::
|
||||
Only list tags which contain the specified commit (HEAD if not
|
||||
specified). Implies `--list`.
|
||||
|
||||
--no-contains [<commit>]::
|
||||
Only list tags which don't contain the specified commit (HEAD if
|
||||
not specified). Implies `--list`.
|
||||
|
||||
--merged [<commit>]::
|
||||
Only list tags whose commits are reachable from the specified
|
||||
commit (`HEAD` if not specified), incompatible with `--no-merged`.
|
||||
|
||||
--no-merged [<commit>]::
|
||||
Only list tags whose commits are not reachable from the specified
|
||||
commit (`HEAD` if not specified), incompatible with `--merged`.
|
||||
specified).
|
||||
|
||||
--points-at <object>::
|
||||
Only list tags of the given object (HEAD if not
|
||||
specified). Implies `--list`.
|
||||
Only list tags of the given object.
|
||||
|
||||
-m <msg>::
|
||||
--message=<msg>::
|
||||
@ -170,11 +146,7 @@ This option is only applicable when listing tags without annotation lines.
|
||||
'strip' removes both whitespace and commentary.
|
||||
|
||||
--create-reflog::
|
||||
Create a reflog for the tag. To globally enable reflogs for tags, see
|
||||
`core.logAllRefUpdates` in linkgit:git-config[1].
|
||||
The negated form `--no-create-reflog` only overrides an earlier
|
||||
`--create-reflog`, but currently does not negate the setting of
|
||||
`core.logallrefupdates`.
|
||||
Create a reflog for the tag.
|
||||
|
||||
<tagname>::
|
||||
The name of the tag to create, delete, or describe.
|
||||
@ -193,6 +165,11 @@ This option is only applicable when listing tags without annotation lines.
|
||||
that of linkgit:git-for-each-ref[1]. When unspecified,
|
||||
defaults to `%(refname:strip=2)`.
|
||||
|
||||
--[no-]merged [<commit>]::
|
||||
Only list tags whose tips are reachable, or not reachable
|
||||
if `--no-merged` is used, from the specified commit (`HEAD`
|
||||
if not specified).
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
By default, 'git tag' in sign-with-default mode (-s) will use your
|
||||
|
@ -163,16 +163,14 @@ may not support it yet.
|
||||
|
||||
--split-index::
|
||||
--no-split-index::
|
||||
Enable or disable split index mode. If split-index mode is
|
||||
already enabled and `--split-index` is given again, all
|
||||
changes in $GIT_DIR/index are pushed back to the shared index
|
||||
file.
|
||||
+
|
||||
These options take effect whatever the value of the `core.splitIndex`
|
||||
configuration variable (see linkgit:git-config[1]). But a warning is
|
||||
emitted when the change goes against the configured value, as the
|
||||
configured value will take effect next time the index is read and this
|
||||
will remove the intended effect of the option.
|
||||
Enable or disable split index mode. If enabled, the index is
|
||||
split into two files, $GIT_DIR/index and $GIT_DIR/sharedindex.<SHA-1>.
|
||||
Changes are accumulated in $GIT_DIR/index while the shared
|
||||
index file contains all index entries stays unchanged. If
|
||||
split-index mode is already enabled and `--split-index` is
|
||||
given again, all changes in $GIT_DIR/index are pushed back to
|
||||
the shared index file. This mode is designed for very large
|
||||
indexes that take a significant amount of time to read or write.
|
||||
|
||||
--untracked-cache::
|
||||
--no-untracked-cache::
|
||||
@ -390,31 +388,6 @@ Although this bit looks similar to assume-unchanged bit, its goal is
|
||||
different from assume-unchanged bit's. Skip-worktree also takes
|
||||
precedence over assume-unchanged bit when both are set.
|
||||
|
||||
Split index
|
||||
-----------
|
||||
|
||||
This mode is designed for repositories with very large indexes, and
|
||||
aims at reducing the time it takes to repeatedly write these indexes.
|
||||
|
||||
In this mode, the index is split into two files, $GIT_DIR/index and
|
||||
$GIT_DIR/sharedindex.<SHA-1>. Changes are accumulated in
|
||||
$GIT_DIR/index, the split index, while the shared index file contains
|
||||
all index entries and stays unchanged.
|
||||
|
||||
All changes in the split index are pushed back to the shared index
|
||||
file when the number of entries in the split index reaches a level
|
||||
specified by the splitIndex.maxPercentChange config variable (see
|
||||
linkgit:git-config[1]).
|
||||
|
||||
Each time a new shared index file is created, the old shared index
|
||||
files are deleted if their modification time is older than what is
|
||||
specified by the splitIndex.sharedIndexExpire config variable (see
|
||||
linkgit:git-config[1]).
|
||||
|
||||
To avoid deleting a shared index file that is still used, its
|
||||
modification time is updated to the current time everytime a new split
|
||||
index based on the shared index file is either created or read from.
|
||||
|
||||
Untracked cache
|
||||
---------------
|
||||
|
||||
|
@ -8,7 +8,7 @@ git-verify-tag - Check the GPG signature of tags
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git verify-tag' [--format=<format>] <tag>...
|
||||
'git verify-tag' <tag>...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -52,7 +52,7 @@ is linked to the current repository, sharing everything except working
|
||||
directory specific files such as HEAD, index, etc. `-` may also be
|
||||
specified as `<branch>`; it is synonymous with `@{-1}`.
|
||||
+
|
||||
If `<branch>` is omitted and neither `-b` nor `-B` nor `--detach` used,
|
||||
If `<branch>` is omitted and neither `-b` nor `-B` nor `--detached` used,
|
||||
then, as a convenience, a new branch based at HEAD is created automatically,
|
||||
as if `-b $(basename <path>)` was specified.
|
||||
|
||||
|
@ -44,54 +44,54 @@ unreleased) version of Git, that is available from the 'master'
|
||||
branch of the `git.git` repository.
|
||||
Documentation for older releases are available here:
|
||||
|
||||
* link:v2.12.2/git.html[documentation for release 2.12.2]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.12.2.txt[2.12.2].
|
||||
link:RelNotes/2.12.1.txt[2.12.1].
|
||||
link:RelNotes/2.12.0.txt[2.12].
|
||||
|
||||
* link:v2.11.1/git.html[documentation for release 2.11.1]
|
||||
* link:v2.11.2/git.html[documentation for release 2.11.2]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.11.2.txt[2.11.2],
|
||||
link:RelNotes/2.11.1.txt[2.11.1],
|
||||
link:RelNotes/2.11.0.txt[2.11].
|
||||
|
||||
* link:v2.10.2/git.html[documentation for release 2.10.2]
|
||||
* link:v2.10.3/git.html[documentation for release 2.10.3]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.10.3.txt[2.10.3],
|
||||
link:RelNotes/2.10.2.txt[2.10.2],
|
||||
link:RelNotes/2.10.1.txt[2.10.1],
|
||||
link:RelNotes/2.10.0.txt[2.10].
|
||||
|
||||
* link:v2.9.3/git.html[documentation for release 2.9.3]
|
||||
* link:v2.9.4/git.html[documentation for release 2.9.4]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.9.4.txt[2.9.4],
|
||||
link:RelNotes/2.9.3.txt[2.9.3],
|
||||
link:RelNotes/2.9.2.txt[2.9.2],
|
||||
link:RelNotes/2.9.1.txt[2.9.1],
|
||||
link:RelNotes/2.9.0.txt[2.9].
|
||||
|
||||
* link:v2.8.4/git.html[documentation for release 2.8.4]
|
||||
* link:v2.8.5/git.html[documentation for release 2.8.5]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.8.5.txt[2.8.5],
|
||||
link:RelNotes/2.8.4.txt[2.8.4],
|
||||
link:RelNotes/2.8.3.txt[2.8.3],
|
||||
link:RelNotes/2.8.2.txt[2.8.2],
|
||||
link:RelNotes/2.8.1.txt[2.8.1],
|
||||
link:RelNotes/2.8.0.txt[2.8].
|
||||
|
||||
* link:v2.7.3/git.html[documentation for release 2.7.3]
|
||||
* link:v2.7.5/git.html[documentation for release 2.7.5]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.7.5.txt[2.7.5],
|
||||
link:RelNotes/2.7.4.txt[2.7.4],
|
||||
link:RelNotes/2.7.3.txt[2.7.3],
|
||||
link:RelNotes/2.7.2.txt[2.7.2],
|
||||
link:RelNotes/2.7.1.txt[2.7.1],
|
||||
link:RelNotes/2.7.0.txt[2.7].
|
||||
|
||||
* link:v2.6.6/git.html[documentation for release 2.6.6]
|
||||
* link:v2.6.7/git.html[documentation for release 2.6.7]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.6.7.txt[2.6.7],
|
||||
link:RelNotes/2.6.6.txt[2.6.6],
|
||||
link:RelNotes/2.6.5.txt[2.6.5],
|
||||
link:RelNotes/2.6.4.txt[2.6.4],
|
||||
@ -100,9 +100,10 @@ Documentation for older releases are available here:
|
||||
link:RelNotes/2.6.1.txt[2.6.1],
|
||||
link:RelNotes/2.6.0.txt[2.6].
|
||||
|
||||
* link:v2.5.5/git.html[documentation for release 2.5.5]
|
||||
* link:v2.5.6/git.html[documentation for release 2.5.6]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.5.6.txt[2.5.6],
|
||||
link:RelNotes/2.5.5.txt[2.5.5],
|
||||
link:RelNotes/2.5.4.txt[2.5.4],
|
||||
link:RelNotes/2.5.3.txt[2.5.3],
|
||||
@ -110,9 +111,10 @@ Documentation for older releases are available here:
|
||||
link:RelNotes/2.5.1.txt[2.5.1],
|
||||
link:RelNotes/2.5.0.txt[2.5].
|
||||
|
||||
* link:v2.4.11/git.html[documentation for release 2.4.11]
|
||||
* link:v2.4.12/git.html[documentation for release 2.4.12]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.4.12.txt[2.4.12],
|
||||
link:RelNotes/2.4.11.txt[2.4.11],
|
||||
link:RelNotes/2.4.10.txt[2.4.10],
|
||||
link:RelNotes/2.4.9.txt[2.4.9],
|
||||
@ -1027,12 +1029,6 @@ Usually it is easier to configure any desired options through your
|
||||
personal `.ssh/config` file. Please consult your ssh documentation
|
||||
for further details.
|
||||
|
||||
`GIT_SSH_VARIANT`::
|
||||
If this environment variable is set, it overrides Git's autodetection
|
||||
whether `GIT_SSH`/`GIT_SSH_COMMAND`/`core.sshCommand` refer to OpenSSH,
|
||||
plink or tortoiseplink. This variable overrides the config setting
|
||||
`ssh.variant` that serves the same purpose.
|
||||
|
||||
`GIT_ASKPASS`::
|
||||
If this environment variable is set, then Git commands which need to
|
||||
acquire passwords or passphrases (e.g. for HTTP or IMAP authentication)
|
||||
@ -1175,20 +1171,30 @@ of clones and fetches.
|
||||
cloning a repository to make a backup).
|
||||
|
||||
`GIT_ALLOW_PROTOCOL`::
|
||||
If set to a colon-separated list of protocols, behave as if
|
||||
`protocol.allow` is set to `never`, and each of the listed
|
||||
protocols has `protocol.<name>.allow` set to `always`
|
||||
(overriding any existing configuration). In other words, any
|
||||
protocol not mentioned will be disallowed (i.e., this is a
|
||||
whitelist, not a blacklist). See the description of
|
||||
`protocol.allow` in linkgit:git-config[1] for more details.
|
||||
If set, provide a colon-separated list of protocols which are
|
||||
allowed to be used with fetch/push/clone. This is useful to
|
||||
restrict recursive submodule initialization from an untrusted
|
||||
repository. Any protocol not mentioned will be disallowed (i.e.,
|
||||
this is a whitelist, not a blacklist). If the variable is not
|
||||
set at all, all protocols are enabled. The protocol names
|
||||
currently used by git are:
|
||||
|
||||
- `file`: any local file-based path (including `file://` URLs,
|
||||
or local paths)
|
||||
|
||||
- `git`: the anonymous git protocol over a direct TCP
|
||||
connection (or proxy, if configured)
|
||||
|
||||
- `ssh`: git over ssh (including `host:path` syntax,
|
||||
`ssh://`, etc).
|
||||
|
||||
- `http`: git over http, both "smart http" and "dumb http".
|
||||
Note that this does _not_ include `https`; if you want both,
|
||||
you should specify both as `http:https`.
|
||||
|
||||
- any external helpers are named by their protocol (e.g., use
|
||||
`hg` to allow the `git-remote-hg` helper)
|
||||
|
||||
`GIT_PROTOCOL_FROM_USER`::
|
||||
Set to 0 to prevent protocols used by fetch/push/clone which are
|
||||
configured to the `user` state. This is useful to restrict recursive
|
||||
submodule initialization from an untrusted repository or for programs
|
||||
which feed potentially-untrusted URLS to git commands. See
|
||||
linkgit:git-config[1] for more details.
|
||||
|
||||
Discussion[[Discussion]]
|
||||
------------------------
|
||||
|
@ -21,11 +21,9 @@ Each line in `gitattributes` file is of form:
|
||||
pattern attr1 attr2 ...
|
||||
|
||||
That is, a pattern followed by an attributes list,
|
||||
separated by whitespaces. Leading and trailing whitespaces are
|
||||
ignored. Lines that begin with '#' are ignored. Patterns
|
||||
that begin with a double quote are quoted in C style.
|
||||
When the pattern matches the path in question, the attributes
|
||||
listed on the line are given to the path.
|
||||
separated by whitespaces. When the pattern matches the
|
||||
path in question, the attributes listed on the line are given to
|
||||
the path.
|
||||
|
||||
Each attribute can be in one of these states for a given path:
|
||||
|
||||
@ -88,7 +86,7 @@ is either not set or empty, $HOME/.config/git/attributes is used instead.
|
||||
Attributes for all users on a system should be placed in the
|
||||
`$(prefix)/etc/gitattributes` file.
|
||||
|
||||
Sometimes you would need to override a setting of an attribute
|
||||
Sometimes you would need to override an setting of an attribute
|
||||
for a path to `Unspecified` state. This can be done by listing
|
||||
the name of the attribute prefixed with an exclamation point `!`.
|
||||
|
||||
|
@ -1658,4 +1658,4 @@ link:user-manual.html[The Git User's Manual]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Part of the linkgit:git[1] suite.
|
||||
|
@ -203,4 +203,4 @@ link:user-manual.html[The Git User's Manual]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Part of the linkgit:git[1] suite.
|
||||
|
@ -84,8 +84,8 @@ format sections of the manual for 'git diff-{asterisk}' commands) or
|
||||
diff-patch format.
|
||||
|
||||
|
||||
diffcore-break: For Splitting Up Complete Rewrites
|
||||
--------------------------------------------------
|
||||
diffcore-break: For Splitting Up "Complete Rewrites"
|
||||
----------------------------------------------------
|
||||
|
||||
The second transformation in the chain is diffcore-break, and is
|
||||
controlled by the -B option to the 'git diff-{asterisk}' commands. This is
|
||||
@ -119,7 +119,7 @@ the original is used), and can be customized by giving a number
|
||||
after "-B" option (e.g. "-B75" to tell it to use 75%).
|
||||
|
||||
|
||||
diffcore-rename: For Detecting Renames and Copies
|
||||
diffcore-rename: For Detection Renames and Copies
|
||||
-------------------------------------------------
|
||||
|
||||
This transformation is used to detect renames and copies, and is
|
||||
@ -177,8 +177,8 @@ the expense of making it slower. Without `--find-copies-harder`,
|
||||
copied happened to have been modified in the same changeset.
|
||||
|
||||
|
||||
diffcore-merge-broken: For Putting Complete Rewrites Back Together
|
||||
------------------------------------------------------------------
|
||||
diffcore-merge-broken: For Putting "Complete Rewrites" Back Together
|
||||
--------------------------------------------------------------------
|
||||
|
||||
This transformation is used to merge filepairs broken by
|
||||
diffcore-break, and not transformed into rename/copy by
|
||||
@ -288,4 +288,4 @@ link:user-manual.html[The Git User's Manual]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Part of the linkgit:git[1] suite.
|
||||
|
@ -307,16 +307,9 @@ master or exposed as a part of a stable branch.
|
||||
<9> backport a critical fix.
|
||||
<10> create a signed tag.
|
||||
<11> make sure master was not accidentally rewound beyond that
|
||||
already pushed out.
|
||||
<12> In the output from `git show-branch`, `master` should have
|
||||
everything `ko/master` has, and `next` should have
|
||||
everything `ko/next` has, etc.
|
||||
<13> push out the bleeding edge, together with new tags that point
|
||||
into the pushed history.
|
||||
|
||||
In this example, the `ko` shorthand points at the Git maintainer's
|
||||
already pushed out. `ko` shorthand points at the Git maintainer's
|
||||
repository at kernel.org, and looks like this:
|
||||
|
||||
+
|
||||
------------
|
||||
(in .git/config)
|
||||
[remote "ko"]
|
||||
@ -327,6 +320,12 @@ repository at kernel.org, and looks like this:
|
||||
push = +refs/heads/pu
|
||||
push = refs/heads/maint
|
||||
------------
|
||||
+
|
||||
<12> In the output from `git show-branch`, `master` should have
|
||||
everything `ko/master` has, and `next` should have
|
||||
everything `ko/next` has, etc.
|
||||
<13> push out the bleeding edge, together with new tags that point
|
||||
into the pushed history.
|
||||
|
||||
|
||||
Repository Administration[[ADMINISTRATION]]
|
||||
|
@ -24,4 +24,4 @@ link:user-manual.html[The Git User's Manual]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Part of the linkgit:git[1] suite.
|
||||
|
@ -178,21 +178,19 @@ used by default. If '$XDG_CONFIG_HOME' is not set it defaults to
|
||||
History
|
||||
-------
|
||||
Gitk was the first graphical repository browser. It's written in
|
||||
tcl/tk.
|
||||
tcl/tk and started off in a separate repository but was later merged
|
||||
into the main Git repository.
|
||||
|
||||
'gitk' is actually maintained as an independent project, but stable
|
||||
versions are distributed as part of the Git suite for the convenience
|
||||
of end users.
|
||||
|
||||
gitk-git/ comes from Paul Mackerras's gitk project:
|
||||
|
||||
git://ozlabs.org/~paulus/gitk
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
'qgit(1)'::
|
||||
A repository browser written in C++ using Qt.
|
||||
|
||||
'gitview(1)'::
|
||||
A repository browser written in Python using Gtk. It's based on
|
||||
'bzrk(1)' and distributed in the contrib area of the Git repository.
|
||||
|
||||
'tig(1)'::
|
||||
A minimal repository browser and Git tool output highlighter written
|
||||
in C using Ncurses.
|
||||
|
@ -452,20 +452,16 @@ set by Git if the remote helper has the 'option' capability.
|
||||
Request the helper to perform a force update. Defaults to
|
||||
'false'.
|
||||
|
||||
'option cloning' {'true'|'false'}::
|
||||
'option cloning {'true'|'false'}::
|
||||
Notify the helper this is a clone request (i.e. the current
|
||||
repository is guaranteed empty).
|
||||
|
||||
'option update-shallow' {'true'|'false'}::
|
||||
'option update-shallow {'true'|'false'}::
|
||||
Allow to extend .git/shallow if the new refs require it.
|
||||
|
||||
'option pushcert' {'true'|'false'}::
|
||||
'option pushcert {'true'|'false'}::
|
||||
GPG sign pushes.
|
||||
|
||||
'option push-option <string>::
|
||||
Transmit <string> as a push option. As the a push option
|
||||
must not contain LF or NUL characters, the string is not encoded.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:git-remote[1]
|
||||
|
@ -289,4 +289,4 @@ link:user-manual.html[The Git User's Manual]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Part of the linkgit:git[1] suite.
|
||||
|
@ -433,4 +433,4 @@ link:user-manual.html[The Git User's Manual]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Part of the linkgit:git[1] suite.
|
||||
|
@ -674,4 +674,4 @@ link:user-manual.html[The Git User's Manual]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Part of the linkgit:git[1] suite.
|
||||
|
@ -477,4 +477,4 @@ linkgit:git-am[1]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Part of the linkgit:git[1] suite.
|
||||
|
@ -384,33 +384,10 @@ full pathname may have special meaning:
|
||||
+
|
||||
Glob magic is incompatible with literal magic.
|
||||
|
||||
attr;;
|
||||
After `attr:` comes a space separated list of "attribute
|
||||
requirements", all of which must be met in order for the
|
||||
path to be considered a match; this is in addition to the
|
||||
usual non-magic pathspec pattern matching.
|
||||
See linkgit:gitattributes[5].
|
||||
+
|
||||
Each of the attribute requirements for the path takes one of
|
||||
these forms:
|
||||
|
||||
- "`ATTR`" requires that the attribute `ATTR` be set.
|
||||
|
||||
- "`-ATTR`" requires that the attribute `ATTR` be unset.
|
||||
|
||||
- "`ATTR=VALUE`" requires that the attribute `ATTR` be
|
||||
set to the string `VALUE`.
|
||||
|
||||
- "`!ATTR`" requires that the attribute `ATTR` be
|
||||
unspecified.
|
||||
+
|
||||
|
||||
exclude;;
|
||||
After a path matches any non-exclude pathspec, it will be run
|
||||
through all exclude pathspec (magic signature: `!` or its
|
||||
synonym `^`). If it matches, the path is ignored. When there
|
||||
is no non-exclude pathspec, the exclusion is applied to the
|
||||
result set as if invoked without any pathspec.
|
||||
through all exclude pathspec (magic signature: `!`). If it
|
||||
matches, the path is ignored.
|
||||
--
|
||||
|
||||
[[def_parent]]parent::
|
||||
|
@ -199,8 +199,6 @@ endif::git-rev-list[]
|
||||
than given and there are spaces on its left, use those spaces
|
||||
- '%><(<N>)', '%><|(<N>)': similar to '% <(<N>)', '%<|(<N>)'
|
||||
respectively, but padding both sides (i.e. the text is centered)
|
||||
-%(trailers): display the trailers of the body as interpreted by
|
||||
linkgit:git-interpret-trailers[1]
|
||||
|
||||
NOTE: Some placeholders may depend on other options given to the
|
||||
revision traversal engine. For example, the `%g*` reflog options will
|
||||
|
@ -133,8 +133,8 @@ parents) and `--max-parents=-1` (negative numbers denote no upper limit).
|
||||
for all following revision specifiers, up to the next `--not`.
|
||||
|
||||
--all::
|
||||
Pretend as if all the refs in `refs/`, along with `HEAD`, are
|
||||
listed on the command line as '<commit>'.
|
||||
Pretend as if all the refs in `refs/` are listed on the
|
||||
command line as '<commit>'.
|
||||
|
||||
--branches[=<pattern>]::
|
||||
Pretend as if all the refs in `refs/heads` are listed
|
||||
|
@ -96,8 +96,7 @@ some output processing may assume ref names in UTF-8.
|
||||
refers to the branch that the branch specified by branchname is set to build on
|
||||
top of (configured with `branch.<name>.remote` and
|
||||
`branch.<name>.merge`). A missing branchname defaults to the
|
||||
current one. These suffixes are also accepted when spelled in uppercase, and
|
||||
they mean the same thing no matter the case.
|
||||
current one.
|
||||
|
||||
'<branchname>@\{push\}', e.g. 'master@\{push\}', '@\{push\}'::
|
||||
The suffix '@\{push}' reports the branch "where we would push to" if
|
||||
@ -123,9 +122,6 @@ refs/remotes/myfork/mybranch
|
||||
Note in the example that we set up a triangular workflow, where we pull
|
||||
from one location and push to another. In a non-triangular workflow,
|
||||
'@\{push}' is the same as '@\{upstream}', and there is no need for it.
|
||||
+
|
||||
This suffix is also accepted when spelled in uppercase, and means the same
|
||||
thing no matter the case.
|
||||
|
||||
'<rev>{caret}', e.g. 'HEAD{caret}, v1.5.1{caret}0'::
|
||||
A suffix '{caret}' to a revision parameter means the first parent of
|
||||
@ -295,7 +291,7 @@ The 'r1{caret}@' notation means all parents of 'r1'.
|
||||
The 'r1{caret}!' notation includes commit 'r1' but excludes all of its parents.
|
||||
By itself, this notation denotes the single commit 'r1'.
|
||||
|
||||
The '<rev>{caret}-<n>' notation includes '<rev>' but excludes the <n>th
|
||||
The '<rev>{caret}-{<n>}' notation includes '<rev>' but excludes the <n>th
|
||||
parent (i.e. a shorthand for '<rev>{caret}<n>..<rev>'), with '<n>' = 1 if
|
||||
not given. This is typically useful for merge commits where you
|
||||
can just pass '<commit>{caret}-' to get all the commits in the branch
|
||||
@ -337,7 +333,7 @@ Revision Range Summary
|
||||
as giving commit '<rev>' and then all its parents prefixed with
|
||||
'{caret}' to exclude them (and their ancestors).
|
||||
|
||||
'<rev>{caret}-<n>', e.g. 'HEAD{caret}-, HEAD{caret}-2'::
|
||||
'<rev>{caret}-{<n>}', e.g. 'HEAD{caret}-, HEAD{caret}-2'::
|
||||
Equivalent to '<rev>{caret}<n>..<rev>', with '<n>' = 1 if not
|
||||
given.
|
||||
|
||||
|
@ -16,15 +16,10 @@ Data Structure
|
||||
of no interest to the calling programs. The name of the
|
||||
attribute can be retrieved by calling `git_attr_name()`.
|
||||
|
||||
`struct attr_check_item`::
|
||||
`struct git_attr_check`::
|
||||
|
||||
This structure represents one attribute and its value.
|
||||
|
||||
`struct attr_check`::
|
||||
|
||||
This structure represents a collection of `attr_check_item`.
|
||||
It is passed to `git_check_attr()` function, specifying the
|
||||
attributes to check, and receives their values.
|
||||
This structure represents a set of attributes to check in a call
|
||||
to `git_check_attr()` function, and receives the results.
|
||||
|
||||
|
||||
Attribute Values
|
||||
@ -32,7 +27,7 @@ Attribute Values
|
||||
|
||||
An attribute for a path can be in one of four states: Set, Unset,
|
||||
Unspecified or set to a string, and `.value` member of `struct
|
||||
attr_check_item` records it. There are three macros to check these:
|
||||
git_attr_check` records it. There are three macros to check these:
|
||||
|
||||
`ATTR_TRUE()`::
|
||||
|
||||
@ -53,51 +48,49 @@ value of the attribute for the path.
|
||||
Querying Specific Attributes
|
||||
----------------------------
|
||||
|
||||
* Prepare `struct attr_check` using attr_check_initl()
|
||||
function, enumerating the names of attributes whose values you are
|
||||
interested in, terminated with a NULL pointer. Alternatively, an
|
||||
empty `struct attr_check` can be prepared by calling
|
||||
`attr_check_alloc()` function and then attributes you want to
|
||||
ask about can be added to it with `attr_check_append()`
|
||||
function.
|
||||
* Prepare an array of `struct git_attr_check` to define the list of
|
||||
attributes you would want to check. To populate this array, you would
|
||||
need to define necessary attributes by calling `git_attr()` function.
|
||||
|
||||
* Call `git_check_attr()` to check the attributes for the path.
|
||||
|
||||
* Inspect `attr_check` structure to see how each of the
|
||||
attribute in the array is defined for the path.
|
||||
* Inspect `git_attr_check` structure to see how each of the attribute in
|
||||
the array is defined for the path.
|
||||
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
To see how attributes "crlf" and "ident" are set for different paths.
|
||||
To see how attributes "crlf" and "indent" are set for different paths.
|
||||
|
||||
. Prepare a `struct attr_check` with two elements (because
|
||||
we are checking two attributes):
|
||||
. Prepare an array of `struct git_attr_check` with two elements (because
|
||||
we are checking two attributes). Initialize their `attr` member with
|
||||
pointers to `struct git_attr` obtained by calling `git_attr()`:
|
||||
|
||||
------------
|
||||
static struct attr_check *check;
|
||||
static struct git_attr_check check[2];
|
||||
static void setup_check(void)
|
||||
{
|
||||
if (check)
|
||||
if (check[0].attr)
|
||||
return; /* already done */
|
||||
check = attr_check_initl("crlf", "ident", NULL);
|
||||
check[0].attr = git_attr("crlf");
|
||||
check[1].attr = git_attr("ident");
|
||||
}
|
||||
------------
|
||||
|
||||
. Call `git_check_attr()` with the prepared `struct attr_check`:
|
||||
. Call `git_check_attr()` with the prepared array of `struct git_attr_check`:
|
||||
|
||||
------------
|
||||
const char *path;
|
||||
|
||||
setup_check();
|
||||
git_check_attr(path, check);
|
||||
git_check_attr(path, ARRAY_SIZE(check), check);
|
||||
------------
|
||||
|
||||
. Act on `.value` member of the result, left in `check->items[]`:
|
||||
. Act on `.value` member of the result, left in `check[]`:
|
||||
|
||||
------------
|
||||
const char *value = check->items[0].value;
|
||||
const char *value = check[0].value;
|
||||
|
||||
if (ATTR_TRUE(value)) {
|
||||
The attribute is Set, by listing only the name of the
|
||||
@ -116,39 +109,20 @@ static void setup_check(void)
|
||||
}
|
||||
------------
|
||||
|
||||
To see how attributes in argv[] are set for different paths, only
|
||||
the first step in the above would be different.
|
||||
|
||||
------------
|
||||
static struct attr_check *check;
|
||||
static void setup_check(const char **argv)
|
||||
{
|
||||
check = attr_check_alloc();
|
||||
while (*argv) {
|
||||
struct git_attr *attr = git_attr(*argv);
|
||||
attr_check_append(check, attr);
|
||||
argv++;
|
||||
}
|
||||
}
|
||||
------------
|
||||
|
||||
|
||||
Querying All Attributes
|
||||
-----------------------
|
||||
|
||||
To get the values of all attributes associated with a file:
|
||||
|
||||
* Prepare an empty `attr_check` structure by calling
|
||||
`attr_check_alloc()`.
|
||||
* Call `git_all_attrs()`, which returns an array of `git_attr_check`
|
||||
structures.
|
||||
|
||||
* Call `git_all_attrs()`, which populates the `attr_check`
|
||||
with the attributes attached to the path.
|
||||
* Iterate over the `git_attr_check` array to examine the attribute
|
||||
names and values. The name of the attribute described by a
|
||||
`git_attr_check` object can be retrieved via
|
||||
`git_attr_name(check[i].attr)`. (Please note that no items will be
|
||||
returned for unset attributes, so `ATTR_UNSET()` will return false
|
||||
for all returned `git_array_check` objects.)
|
||||
|
||||
* Iterate over the `attr_check.items[]` array to examine
|
||||
the attribute names and values. The name of the attribute
|
||||
described by a `attr_check.items[]` object can be retrieved via
|
||||
`git_attr_name(check->items[i].attr)`. (Please note that no items
|
||||
will be returned for unset attributes, so `ATTR_UNSET()` will return
|
||||
false for all returned `attr_check.items[]` objects.)
|
||||
|
||||
* Free the `attr_check` struct by calling `attr_check_free()`.
|
||||
* Free the `git_array_check` array.
|
||||
|
@ -21,9 +21,6 @@ that the hashmap is initialized. It may also be useful for statistical purposes
|
||||
`cmpfn` stores the comparison function specified in `hashmap_init()`. In
|
||||
advanced scenarios, it may be useful to change this, e.g. to switch between
|
||||
case-sensitive and case-insensitive lookup.
|
||||
+
|
||||
When `disallow_rehash` is set, automatic rehashes are prevented during inserts
|
||||
and deletes.
|
||||
|
||||
`struct hashmap_entry`::
|
||||
|
||||
@ -60,7 +57,6 @@ Functions
|
||||
`unsigned int strihash(const char *buf)`::
|
||||
`unsigned int memhash(const void *buf, size_t len)`::
|
||||
`unsigned int memihash(const void *buf, size_t len)`::
|
||||
`unsigned int memihash_cont(unsigned int hash_seed, const void *buf, size_t len)`::
|
||||
|
||||
Ready-to-use hash functions for strings, using the FNV-1 algorithm (see
|
||||
http://www.isthe.com/chongo/tech/comp/fnv).
|
||||
@ -69,9 +65,6 @@ Functions
|
||||
`memihash` operate on arbitrary-length memory.
|
||||
+
|
||||
`strihash` and `memihash` are case insensitive versions.
|
||||
+
|
||||
`memihash_cont` is a variant of `memihash` that allows a computation to be
|
||||
continued with another chunk of data.
|
||||
|
||||
`unsigned int sha1hash(const unsigned char *sha1)`::
|
||||
|
||||
@ -191,28 +184,11 @@ passed to `hashmap_cmp_fn` to decide whether the entry matches the key.
|
||||
+
|
||||
Returns the removed entry, or NULL if not found.
|
||||
|
||||
`void hashmap_disallow_rehash(struct hashmap *map, unsigned value)`::
|
||||
|
||||
Disallow/allow automatic rehashing of the hashmap during inserts
|
||||
and deletes.
|
||||
+
|
||||
This is useful if the caller knows that the hashmap will be accessed
|
||||
by multiple threads.
|
||||
+
|
||||
The caller is still responsible for any necessary locking; this simply
|
||||
prevents unexpected rehashing. The caller is also responsible for properly
|
||||
sizing the initial hashmap to ensure good performance.
|
||||
+
|
||||
A call to allow rehashing does not force a rehash; that might happen
|
||||
with the next insert or delete.
|
||||
|
||||
`void hashmap_iter_init(struct hashmap *map, struct hashmap_iter *iter)`::
|
||||
`void *hashmap_iter_next(struct hashmap_iter *iter)`::
|
||||
`void *hashmap_iter_first(struct hashmap *map, struct hashmap_iter *iter)`::
|
||||
|
||||
Used to iterate over all entries of a hashmap. Note that it is
|
||||
not safe to add or remove entries to the hashmap while
|
||||
iterating.
|
||||
Used to iterate over all entries of a hashmap.
|
||||
+
|
||||
`hashmap_iter_init` initializes a `hashmap_iter` structure.
|
||||
+
|
||||
|
@ -168,11 +168,6 @@ There are some macros to easily define options:
|
||||
Introduce an option with string argument.
|
||||
The string argument is put into `str_var`.
|
||||
|
||||
`OPT_STRING_LIST(short, long, &struct string_list, arg_str, description)`::
|
||||
Introduce an option with string argument.
|
||||
The string argument is stored as an element in `string_list`.
|
||||
Use of `--no-option` will clear the list of preceding values.
|
||||
|
||||
`OPT_INTEGER(short, long, &int_var, description)`::
|
||||
Introduce an option with integer argument.
|
||||
The integer is put into `int_var`.
|
||||
|
@ -27,6 +27,8 @@ parse_pathspec(). This function takes several arguments:
|
||||
|
||||
- prefix and args come from cmd_* functions
|
||||
|
||||
get_pathspec() is obsolete and should never be used in new code.
|
||||
|
||||
parse_pathspec() helps catch unsupported features and reject them
|
||||
politely. At a lower level, different pathspec-related functions may
|
||||
not support the same set of features. Such pathspec-sensitive
|
||||
|
@ -1,7 +1,7 @@
|
||||
oid-array API
|
||||
sha1-array API
|
||||
==============
|
||||
|
||||
The oid-array API provides storage and manipulation of sets of object
|
||||
The sha1-array API provides storage and manipulation of sets of SHA-1
|
||||
identifiers. The emphasis is on storage and processing efficiency,
|
||||
making them suitable for large lists. Note that the ordering of items is
|
||||
not preserved over some operations.
|
||||
@ -9,10 +9,10 @@ not preserved over some operations.
|
||||
Data Structures
|
||||
---------------
|
||||
|
||||
`struct oid_array`::
|
||||
`struct sha1_array`::
|
||||
|
||||
A single array of object IDs. This should be initialized by
|
||||
assignment from `OID_ARRAY_INIT`. The `oid` member contains
|
||||
A single array of SHA-1 hashes. This should be initialized by
|
||||
assignment from `SHA1_ARRAY_INIT`. The `sha1` member contains
|
||||
the actual data. The `nr` member contains the number of items in
|
||||
the set. The `alloc` and `sorted` members are used internally,
|
||||
and should not be needed by API callers.
|
||||
@ -20,22 +20,22 @@ Data Structures
|
||||
Functions
|
||||
---------
|
||||
|
||||
`oid_array_append`::
|
||||
Add an item to the set. The object ID will be placed at the end of
|
||||
`sha1_array_append`::
|
||||
Add an item to the set. The sha1 will be placed at the end of
|
||||
the array (but note that some operations below may lose this
|
||||
ordering).
|
||||
|
||||
`oid_array_lookup`::
|
||||
Perform a binary search of the array for a specific object ID.
|
||||
`sha1_array_lookup`::
|
||||
Perform a binary search of the array for a specific sha1.
|
||||
If found, returns the offset (in number of elements) of the
|
||||
object ID. If not found, returns a negative integer. If the array
|
||||
is not sorted, this function has the side effect of sorting it.
|
||||
sha1. If not found, returns a negative integer. If the array is
|
||||
not sorted, this function has the side effect of sorting it.
|
||||
|
||||
`oid_array_clear`::
|
||||
`sha1_array_clear`::
|
||||
Free all memory associated with the array and return it to the
|
||||
initial, empty state.
|
||||
|
||||
`oid_array_for_each_unique`::
|
||||
`sha1_array_for_each_unique`::
|
||||
Efficiently iterate over each unique element of the list,
|
||||
executing the callback function for each one. If the array is
|
||||
not sorted, this function has the side effect of sorting it. If
|
||||
@ -47,25 +47,25 @@ Examples
|
||||
--------
|
||||
|
||||
-----------------------------------------
|
||||
int print_callback(const struct object_id *oid,
|
||||
int print_callback(const unsigned char sha1[20],
|
||||
void *data)
|
||||
{
|
||||
printf("%s\n", oid_to_hex(oid));
|
||||
printf("%s\n", sha1_to_hex(sha1));
|
||||
return 0; /* always continue */
|
||||
}
|
||||
|
||||
void some_func(void)
|
||||
{
|
||||
struct sha1_array hashes = OID_ARRAY_INIT;
|
||||
struct object_id oid;
|
||||
struct sha1_array hashes = SHA1_ARRAY_INIT;
|
||||
unsigned char sha1[20];
|
||||
|
||||
/* Read objects into our set */
|
||||
while (read_object_from_stdin(oid.hash))
|
||||
oid_array_append(&hashes, &oid);
|
||||
while (read_object_from_stdin(sha1))
|
||||
sha1_array_append(&hashes, sha1);
|
||||
|
||||
/* Check if some objects are in our set */
|
||||
while (read_object_from_stdin(oid.hash)) {
|
||||
if (oid_array_lookup(&hashes, &oid) >= 0)
|
||||
while (read_object_from_stdin(sha1)) {
|
||||
if (sha1_array_lookup(&hashes, sha1) >= 0)
|
||||
printf("it's in there!\n");
|
||||
|
||||
/*
|
||||
@ -75,6 +75,6 @@ void some_func(void)
|
||||
* Instead, this will sort once and then skip duplicates
|
||||
* in linear time.
|
||||
*/
|
||||
oid_array_for_each_unique(&hashes, print_callback, NULL);
|
||||
sha1_array_for_each_unique(&hashes, print_callback, NULL);
|
||||
}
|
||||
-----------------------------------------
|
@ -47,20 +47,16 @@ Functions
|
||||
Can be passed to the config parsing infrastructure to parse
|
||||
local (worktree) submodule configurations.
|
||||
|
||||
`const struct submodule *submodule_from_path(const unsigned char *treeish_name, const char *path)`::
|
||||
`const struct submodule *submodule_from_path(const unsigned char *commit_sha1, const char *path)`::
|
||||
|
||||
Given a tree-ish in the superproject and a path, return the
|
||||
submodule that is bound at the path in the named tree.
|
||||
Lookup values for one submodule by its commit_sha1 and path.
|
||||
|
||||
`const struct submodule *submodule_from_name(const unsigned char *treeish_name, const char *name)`::
|
||||
`const struct submodule *submodule_from_name(const unsigned char *commit_sha1, const char *name)`::
|
||||
|
||||
The same as above but lookup by name.
|
||||
|
||||
Whenever a submodule configuration is parsed in `parse_submodule_config_option`
|
||||
via e.g. `gitmodules_config()`, it will overwrite the null_sha1 entry.
|
||||
So in the normal case, when HEAD:.gitmodules is parsed first and then overlayed
|
||||
with the repository configuration, the null_sha1 entry contains the local
|
||||
configuration of a submodule (e.g. consolidated values from local git
|
||||
If given the null_sha1 as commit_sha1 the local configuration of a
|
||||
submodule will be returned (e.g. consolidated values from local git
|
||||
configuration and the .gitmodules file in the worktree).
|
||||
|
||||
For an example usage see test-submodule-config.c.
|
||||
|
@ -1,26 +0,0 @@
|
||||
<!-- texi.xsl:
|
||||
convert refsection elements into refsect elements that docbook2texi can
|
||||
understand -->
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
version="1.0">
|
||||
|
||||
<xsl:output method="xml"
|
||||
encoding="UTF-8"
|
||||
doctype-public="-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
doctype-system="http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" />
|
||||
|
||||
<xsl:template match="//refsection">
|
||||
<xsl:variable name="element">refsect<xsl:value-of select="count(ancestor-or-self::refsection)" /></xsl:variable>
|
||||
<xsl:element name="{$element}">
|
||||
<xsl:apply-templates select="@*|node()" />
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Copy all other nodes through. -->
|
||||
<xsl:template match="node()|@*">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="@*|node()" />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@ -4395,10 +4395,6 @@ itself!
|
||||
Git Glossary
|
||||
============
|
||||
|
||||
[[git-explained]]
|
||||
Git explained
|
||||
-------------
|
||||
|
||||
include::glossary-content.txt[]
|
||||
|
||||
[[git-quick-start]]
|
||||
@ -4640,10 +4636,6 @@ $ git gc
|
||||
Appendix B: Notes and todo list for this manual
|
||||
===============================================
|
||||
|
||||
[[todo-list]]
|
||||
Todo list
|
||||
---------
|
||||
|
||||
This is a work in progress.
|
||||
|
||||
The basic requirements:
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
GVF=GIT-VERSION-FILE
|
||||
DEF_VER=v2.13.0-rc0
|
||||
DEF_VER=v2.11.3
|
||||
|
||||
LF='
|
||||
'
|
||||
@ -12,7 +12,7 @@ if test -f version
|
||||
then
|
||||
VN=$(cat version) || VN="$DEF_VER"
|
||||
elif test -d ${GIT_DIR:-.git} -o -f .git &&
|
||||
VN=$(git describe --match "v[0-9]*" HEAD 2>/dev/null) &&
|
||||
VN=$(git describe --match "v[0-9]*" --abbrev=7 HEAD 2>/dev/null) &&
|
||||
case "$VN" in
|
||||
*$LF*) (exit 1) ;;
|
||||
v[0-9]*)
|
||||
|
88
Makefile
88
Makefile
@ -102,6 +102,8 @@ all::
|
||||
#
|
||||
# Define MKDIR_WO_TRAILING_SLASH if your mkdir() can't deal with trailing slash.
|
||||
#
|
||||
# Define NO_MKSTEMPS if you don't have mkstemps in the C library.
|
||||
#
|
||||
# Define NO_GECOS_IN_PWENT if you don't have pw_gecos in struct passwd
|
||||
# in the C library.
|
||||
#
|
||||
@ -140,13 +142,6 @@ all::
|
||||
# Define PPC_SHA1 environment variable when running make to make use of
|
||||
# a bundled SHA1 routine optimized for PowerPC.
|
||||
#
|
||||
# Define DC_SHA1 to unconditionally enable the collision-detecting sha1
|
||||
# algorithm. This is slower, but may detect attempted collision attacks.
|
||||
# Takes priority over other *_SHA1 knobs.
|
||||
#
|
||||
# Define OPENSSL_SHA1 environment variable when running make to link
|
||||
# with the SHA1 routine from openssl library.
|
||||
#
|
||||
# Define SHA1_MAX_BLOCK_SIZE to limit the amount of data that will be hashed
|
||||
# in one call to the platform's SHA1_Update(). e.g. APPLE_COMMON_CRYPTO
|
||||
# wants 'SHA1_MAX_BLOCK_SIZE=1024L*1024L*1024L' defined.
|
||||
@ -255,12 +250,6 @@ all::
|
||||
# apostrophes to be ASCII so that cut&pasting examples to the shell
|
||||
# will work.
|
||||
#
|
||||
# Define USE_ASCIIDOCTOR to use Asciidoctor instead of AsciiDoc to build the
|
||||
# documentation.
|
||||
#
|
||||
# Define ASCIIDOCTOR_EXTENSIONS_LAB to point to the location of the Asciidoctor
|
||||
# Extensions Lab if you have it available.
|
||||
#
|
||||
# Define PERL_PATH to the path of your Perl binary (usually /usr/bin/perl).
|
||||
#
|
||||
# Define NO_PERL_MAKEMAKER if you cannot use Makefiles generated by perl's
|
||||
@ -290,9 +279,6 @@ all::
|
||||
# is a simplified version of the merge sort used in glibc. This is
|
||||
# recommended if Git triggers O(n^2) behavior in your platform's qsort().
|
||||
#
|
||||
# Define HAVE_ISO_QSORT_S if your platform provides a qsort_s() that's
|
||||
# compatible with the one described in C11 Annex K.
|
||||
#
|
||||
# Define UNRELIABLE_FSTAT if your system's fstat does not return the same
|
||||
# information on a not yet closed file that lstat would return for the same
|
||||
# file after it was closed.
|
||||
@ -352,6 +338,11 @@ all::
|
||||
#
|
||||
# Define NATIVE_CRLF if your platform uses CRLF for line endings.
|
||||
#
|
||||
# Define XDL_FAST_HASH to use an alternative line-hashing method in
|
||||
# the diff algorithm. It gives a nice speedup if your processor has
|
||||
# fast unaligned word loads. Does NOT work on big-endian systems!
|
||||
# Enabled by default on x86_64.
|
||||
#
|
||||
# Define GIT_USER_AGENT if you want to change how git identifies itself during
|
||||
# network interactions. The default is "git/$(GIT_VERSION)".
|
||||
#
|
||||
@ -536,10 +527,12 @@ SCRIPT_LIB += git-sh-setup
|
||||
SCRIPT_LIB += git-sh-i18n
|
||||
|
||||
SCRIPT_PERL += git-add--interactive.perl
|
||||
SCRIPT_PERL += git-difftool.perl
|
||||
SCRIPT_PERL += git-archimport.perl
|
||||
SCRIPT_PERL += git-cvsexportcommit.perl
|
||||
SCRIPT_PERL += git-cvsimport.perl
|
||||
SCRIPT_PERL += git-cvsserver.perl
|
||||
SCRIPT_PERL += git-relink.perl
|
||||
SCRIPT_PERL += git-send-email.perl
|
||||
SCRIPT_PERL += git-svn.perl
|
||||
|
||||
@ -621,17 +614,14 @@ TEST_PROGRAMS_NEED_X += test-fake-ssh
|
||||
TEST_PROGRAMS_NEED_X += test-genrandom
|
||||
TEST_PROGRAMS_NEED_X += test-hashmap
|
||||
TEST_PROGRAMS_NEED_X += test-index-version
|
||||
TEST_PROGRAMS_NEED_X += test-lazy-init-name-hash
|
||||
TEST_PROGRAMS_NEED_X += test-line-buffer
|
||||
TEST_PROGRAMS_NEED_X += test-match-trees
|
||||
TEST_PROGRAMS_NEED_X += test-mergesort
|
||||
TEST_PROGRAMS_NEED_X += test-mktemp
|
||||
TEST_PROGRAMS_NEED_X += test-online-cpus
|
||||
TEST_PROGRAMS_NEED_X += test-parse-options
|
||||
TEST_PROGRAMS_NEED_X += test-path-utils
|
||||
TEST_PROGRAMS_NEED_X += test-prio-queue
|
||||
TEST_PROGRAMS_NEED_X += test-read-cache
|
||||
TEST_PROGRAMS_NEED_X += test-ref-store
|
||||
TEST_PROGRAMS_NEED_X += test-regex
|
||||
TEST_PROGRAMS_NEED_X += test-revision-walking
|
||||
TEST_PROGRAMS_NEED_X += test-run-command
|
||||
@ -789,7 +779,6 @@ LIB_OBJS += notes-cache.o
|
||||
LIB_OBJS += notes-merge.o
|
||||
LIB_OBJS += notes-utils.o
|
||||
LIB_OBJS += object.o
|
||||
LIB_OBJS += oidset.o
|
||||
LIB_OBJS += pack-bitmap.o
|
||||
LIB_OBJS += pack-bitmap-write.o
|
||||
LIB_OBJS += pack-check.o
|
||||
@ -899,7 +888,6 @@ BUILTIN_OBJS += builtin/diff-files.o
|
||||
BUILTIN_OBJS += builtin/diff-index.o
|
||||
BUILTIN_OBJS += builtin/diff-tree.o
|
||||
BUILTIN_OBJS += builtin/diff.o
|
||||
BUILTIN_OBJS += builtin/difftool.o
|
||||
BUILTIN_OBJS += builtin/fast-export.o
|
||||
BUILTIN_OBJS += builtin/fetch-pack.o
|
||||
BUILTIN_OBJS += builtin/fetch.o
|
||||
@ -941,7 +929,6 @@ BUILTIN_OBJS += builtin/prune.o
|
||||
BUILTIN_OBJS += builtin/pull.o
|
||||
BUILTIN_OBJS += builtin/push.o
|
||||
BUILTIN_OBJS += builtin/read-tree.o
|
||||
BUILTIN_OBJS += builtin/rebase--helper.o
|
||||
BUILTIN_OBJS += builtin/receive-pack.o
|
||||
BUILTIN_OBJS += builtin/reflog.o
|
||||
BUILTIN_OBJS += builtin/remote.o
|
||||
@ -1290,6 +1277,9 @@ ifdef MKDIR_WO_TRAILING_SLASH
|
||||
COMPAT_CFLAGS += -DMKDIR_WO_TRAILING_SLASH
|
||||
COMPAT_OBJS += compat/mkdir.o
|
||||
endif
|
||||
ifdef NO_MKSTEMPS
|
||||
COMPAT_CFLAGS += -DNO_MKSTEMPS
|
||||
endif
|
||||
ifdef NO_UNSETENV
|
||||
COMPAT_CFLAGS += -DNO_UNSETENV
|
||||
COMPAT_OBJS += compat/unsetenv.o
|
||||
@ -1393,27 +1383,20 @@ ifdef APPLE_COMMON_CRYPTO
|
||||
SHA1_MAX_BLOCK_SIZE = 1024L*1024L*1024L
|
||||
endif
|
||||
|
||||
ifdef OPENSSL_SHA1
|
||||
EXTLIBS += $(LIB_4_CRYPTO)
|
||||
BASIC_CFLAGS += -DSHA1_OPENSSL
|
||||
else
|
||||
ifdef BLK_SHA1
|
||||
SHA1_HEADER = "block-sha1/sha1.h"
|
||||
LIB_OBJS += block-sha1/sha1.o
|
||||
BASIC_CFLAGS += -DSHA1_BLK
|
||||
else
|
||||
ifdef PPC_SHA1
|
||||
SHA1_HEADER = "ppc/sha1.h"
|
||||
LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
|
||||
BASIC_CFLAGS += -DSHA1_PPC
|
||||
else
|
||||
ifdef APPLE_COMMON_CRYPTO
|
||||
COMPAT_CFLAGS += -DCOMMON_DIGEST_FOR_OPENSSL
|
||||
BASIC_CFLAGS += -DSHA1_APPLE
|
||||
SHA1_HEADER = <CommonCrypto/CommonDigest.h>
|
||||
else
|
||||
DC_SHA1 := YesPlease
|
||||
LIB_OBJS += sha1dc/sha1.o
|
||||
LIB_OBJS += sha1dc/ubc_check.o
|
||||
BASIC_CFLAGS += -DSHA1_DC
|
||||
endif
|
||||
SHA1_HEADER = <openssl/sha.h>
|
||||
EXTLIBS += $(LIB_4_CRYPTO)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@ -1440,11 +1423,6 @@ ifdef INTERNAL_QSORT
|
||||
COMPAT_CFLAGS += -DINTERNAL_QSORT
|
||||
COMPAT_OBJS += compat/qsort.o
|
||||
endif
|
||||
ifdef HAVE_ISO_QSORT_S
|
||||
COMPAT_CFLAGS += -DHAVE_ISO_QSORT_S
|
||||
else
|
||||
COMPAT_OBJS += compat/qsort_s.o
|
||||
endif
|
||||
ifdef RUNTIME_PREFIX
|
||||
COMPAT_CFLAGS += -DRUNTIME_PREFIX
|
||||
endif
|
||||
@ -1507,6 +1485,10 @@ ifndef NO_MSGFMT_EXTENDED_OPTIONS
|
||||
MSGFMT += --check --statistics
|
||||
endif
|
||||
|
||||
ifneq (,$(XDL_FAST_HASH))
|
||||
BASIC_CFLAGS += -DXDL_FAST_HASH
|
||||
endif
|
||||
|
||||
ifdef GMTIME_UNRELIABLE_ERRORS
|
||||
COMPAT_OBJS += compat/gmtime.o
|
||||
BASIC_CFLAGS += -DGMTIME_UNRELIABLE_ERRORS
|
||||
@ -1605,6 +1587,7 @@ endif
|
||||
|
||||
# Shell quote (do not use $(call) to accommodate ancient setups);
|
||||
|
||||
SHA1_HEADER_SQ = $(subst ','\'',$(SHA1_HEADER))
|
||||
ETC_GITCONFIG_SQ = $(subst ','\'',$(ETC_GITCONFIG))
|
||||
ETC_GITATTRIBUTES_SQ = $(subst ','\'',$(ETC_GITATTRIBUTES))
|
||||
|
||||
@ -1637,7 +1620,8 @@ PERLLIB_EXTRA_SQ = $(subst ','\'',$(PERLLIB_EXTRA))
|
||||
# from the dependency list, that would make each entry appear twice.
|
||||
LIBS = $(filter-out %.o, $(GITLIBS)) $(EXTLIBS)
|
||||
|
||||
BASIC_CFLAGS += $(COMPAT_CFLAGS)
|
||||
BASIC_CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER_SQ)' \
|
||||
$(COMPAT_CFLAGS)
|
||||
LIB_OBJS += $(COMPAT_OBJS)
|
||||
|
||||
# Quote for C
|
||||
@ -1841,7 +1825,7 @@ $(SCRIPT_LIB) : % : %.sh GIT-SCRIPT-DEFINES
|
||||
git.res: git.rc GIT-VERSION-FILE
|
||||
$(QUIET_RC)$(RC) \
|
||||
$(join -DMAJOR= -DMINOR=, $(wordlist 1,2,$(subst -, ,$(subst ., ,$(GIT_VERSION))))) \
|
||||
-DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" -i $< -o $@
|
||||
-DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" $< -o $@
|
||||
|
||||
# This makes sure we depend on the NO_PERL setting itself.
|
||||
$(SCRIPT_PERL_GEN): GIT-BUILD-OPTIONS
|
||||
@ -1853,7 +1837,6 @@ perl/perl.mak: perl/PM.stamp
|
||||
|
||||
perl/PM.stamp: FORCE
|
||||
@$(FIND) perl -type f -name '*.pm' | sort >$@+ && \
|
||||
$(PERL_PATH) -V >>$@+ && \
|
||||
{ cmp $@+ $@ >/dev/null 2>/dev/null || mv $@+ $@; } && \
|
||||
$(RM) $@+
|
||||
|
||||
@ -2072,7 +2055,7 @@ git-%$X: %.o GIT-LDFLAGS $(GITLIBS)
|
||||
|
||||
git-imap-send$X: imap-send.o $(IMAP_SEND_BUILDDEPS) GIT-LDFLAGS $(GITLIBS)
|
||||
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
|
||||
$(IMAP_SEND_LDFLAGS) $(LIBS)
|
||||
$(LIBS) $(IMAP_SEND_LDFLAGS)
|
||||
|
||||
git-http-fetch$X: http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)
|
||||
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
|
||||
@ -2131,8 +2114,7 @@ XGETTEXT_FLAGS_C = $(XGETTEXT_FLAGS) --language=C \
|
||||
--keyword=_ --keyword=N_ --keyword="Q_:1,2"
|
||||
XGETTEXT_FLAGS_SH = $(XGETTEXT_FLAGS) --language=Shell \
|
||||
--keyword=gettextln --keyword=eval_gettextln
|
||||
XGETTEXT_FLAGS_PERL = $(XGETTEXT_FLAGS) --language=Perl \
|
||||
--keyword=__ --keyword=N__ --keyword="__n:1,2"
|
||||
XGETTEXT_FLAGS_PERL = $(XGETTEXT_FLAGS) --keyword=__ --language=Perl
|
||||
LOCALIZED_C = $(C_OBJ:o=c) $(LIB_H) $(GENERATED_H)
|
||||
LOCALIZED_SH = $(SCRIPT_SH)
|
||||
LOCALIZED_SH += git-parse-remote.sh
|
||||
@ -2241,7 +2223,6 @@ GIT-BUILD-OPTIONS: FORCE
|
||||
@echo NO_PYTHON=\''$(subst ','\'',$(subst ','\'',$(NO_PYTHON)))'\' >>$@+
|
||||
@echo NO_UNIX_SOCKETS=\''$(subst ','\'',$(subst ','\'',$(NO_UNIX_SOCKETS)))'\' >>$@+
|
||||
@echo PAGER_ENV=\''$(subst ','\'',$(subst ','\'',$(PAGER_ENV)))'\' >>$@+
|
||||
@echo DC_SHA1=\''$(subst ','\'',$(subst ','\'',$(DC_SHA1)))'\' >>$@+
|
||||
ifdef TEST_OUTPUT_DIRECTORY
|
||||
@echo TEST_OUTPUT_DIRECTORY=\''$(subst ','\'',$(subst ','\'',$(TEST_OUTPUT_DIRECTORY)))'\' >>$@+
|
||||
endif
|
||||
@ -2268,9 +2249,6 @@ endif
|
||||
ifdef GIT_PERF_MAKE_OPTS
|
||||
@echo GIT_PERF_MAKE_OPTS=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_MAKE_OPTS)))'\' >>$@+
|
||||
endif
|
||||
ifdef GIT_INTEROP_MAKE_OPTS
|
||||
@echo GIT_INTEROP_MAKE_OPTS=\''$(subst ','\'',$(subst ','\'',$(GIT_INTEROP_MAKE_OPTS)))'\' >>$@+
|
||||
endif
|
||||
ifdef TEST_GIT_INDEX_VERSION
|
||||
@echo TEST_GIT_INDEX_VERSION=\''$(subst ','\'',$(subst ','\'',$(TEST_GIT_INDEX_VERSION)))'\' >>$@+
|
||||
endif
|
||||
@ -2351,17 +2329,9 @@ check: common-cmds.h
|
||||
C_SOURCES = $(patsubst %.o,%.c,$(C_OBJ))
|
||||
%.cocci.patch: %.cocci $(C_SOURCES)
|
||||
@echo ' ' SPATCH $<; \
|
||||
ret=0; \
|
||||
for f in $(C_SOURCES); do \
|
||||
$(SPATCH) --sp-file $< $$f $(SPATCH_FLAGS) || \
|
||||
{ ret=$$?; break; }; \
|
||||
done >$@+ 2>$@.log; \
|
||||
if test $$ret != 0; \
|
||||
then \
|
||||
cat $@.log; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
mv $@+ $@; \
|
||||
$(SPATCH) --sp-file $< $$f $(SPATCH_FLAGS); \
|
||||
done >$@ 2>$@.log; \
|
||||
if test -s $@; \
|
||||
then \
|
||||
echo ' ' SPATCH result: $@; \
|
||||
|
@ -12,7 +12,7 @@ Torvalds with help of a group of hackers around the net.
|
||||
|
||||
Please read the file [INSTALL][] for installation instructions.
|
||||
|
||||
Many Git online resources are accessible from <https://git-scm.com/>
|
||||
Many Git online resources are accessible from http://git-scm.com/
|
||||
including full documentation and Git related tools.
|
||||
|
||||
See [Documentation/gittutorial.txt][] to get started, then see
|
||||
@ -33,8 +33,8 @@ requests, comments and patches to git@vger.kernel.org (read
|
||||
[Documentation/SubmittingPatches][] for instructions on patch submission).
|
||||
To subscribe to the list, send an email with just "subscribe git" in
|
||||
the body to majordomo@vger.kernel.org. The mailing list archives are
|
||||
available at <https://public-inbox.org/git/>,
|
||||
<http://marc.info/?l=git> and other archival sites.
|
||||
available at https://public-inbox.org/git,
|
||||
http://marc.info/?l=git and other archival sites.
|
||||
|
||||
The maintainer frequently sends the "What's cooking" reports that
|
||||
list the current status of various development topics to the mailing
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user