Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
0fac156
commit-reach: reduce requirements for remove_redundant()
derrickstolee Feb 1, 2021
3803a3a
t: add --no-tag option to test_commit
peff Feb 9, 2021
42d906b
grep: honor sparse-checkout on working tree searches
matheustavares Feb 9, 2021
fa9ab02
docs: clarify that refs/notes/ do not keep the attached objects alive
martinvonz Feb 11, 2021
780aa0a
tests: remove last uses of GIT_TEST_GETTEXT_POISON=false
avar Feb 11, 2021
a926c4b
tests: remove most uses of C_LOCALE_OUTPUT
avar Feb 11, 2021
b1e0798
tests: remove last uses of C_LOCALE_OUTPUT
avar Feb 11, 2021
1108cea
tests: remove most uses of test_i18ncmp
avar Feb 11, 2021
16950f8
rev-list: add --disk-usage option for calculating disk usage
peff Feb 9, 2021
1eb4136
diff: --{rotate,skip}-to=<path>
gitster Feb 11, 2021
9334ea8
write_entry(): fix misuses of `path` in error messages
matheustavares Feb 16, 2021
3f7ba60
checkout-index: omit entries with no tempname from --temp output
matheustavares Feb 16, 2021
8e16eff
blame: remove unnecessary use of get_commit_info()
raffs Feb 17, 2021
452d264
rev-list-options.txt: fix rendering of bonus paragraph
Feb 17, 2021
669b458
docs/rev-list: add an examples section
peff Feb 17, 2021
a1db097
docs/rev-list: add some examples of --disk-usage
peff Feb 17, 2021
9d33665
doc: fix naming of response-end-pkt
Feb 18, 2021
83171ed
git.txt: fix monospace rendering
Feb 17, 2021
f89f46b
gitmailmap.txt: fix rendering of e-mail addresses
Feb 17, 2021
1b5b8cf
Documentation: typofix --column description
gitster Feb 20, 2021
3a837b5
doc: mention bigFileThreshold for packing
cwalther Feb 21, 2021
fbc21e3
commit-reach: use one walk in remove_redundant()
derrickstolee Feb 19, 2021
c8d693e
commit-reach: move compare_commits_by_gen
derrickstolee Feb 19, 2021
3677773
commit-reach: use heuristic in remove_redundant()
derrickstolee Feb 19, 2021
41f3c99
commit-reach: stale commits may prune generation further
derrickstolee Feb 19, 2021
1c88102
difftool.c: learn a new way start at specified file
adlternative Feb 19, 2021
bf4bb9f
commit-graph: avoid leaking topo_levels slab in write_commit_graph()
ahunt Feb 19, 2021
26c7974
maintenance: fix incorrect `maintenance.repo` path with bare repository
sunshineco Feb 23, 2021
30bb808
mergetools/vimdiff: add vimdiff1 merge tool variant
whiteinge Feb 14, 2021
b865734
replace "parameters" by "arguments" in error messages
j6t Feb 23, 2021
01168a9
doc: mention approxidates for git-commit --date
peff Feb 23, 2021
20e4164
push: do not turn --delete '' into a matching push
gitster Feb 23, 2021
2803d80
rebase: add a config option for --no-fork-point
alexhenrie Feb 23, 2021
c937d70
add --chmod: don't update index when --dry-run is used
matheustavares Feb 23, 2021
4896089
add: mark --chmod error string for translation
matheustavares Feb 23, 2021
9ebd7fe
add: propagate --chmod errors to exit status
matheustavares Feb 23, 2021
77645b5
i18n.txt: camel case and monospace "i18n.commitEncoding"
Denton-L Feb 24, 2021
edaf10d
blame-options.txt: camelcase blame.blankBoundary
gitster Feb 24, 2021
7dd0eaa
index-format doc: camelCase core.excludesFile
gitster Feb 24, 2021
6fe12b5
Merge branch 'jk/rev-list-disk-usage'
gitster Feb 26, 2021
608cc4f
Merge branch 'ab/detox-gettext-tests'
gitster Feb 26, 2021
d590ae5
Merge branch 'mz/doc-notes-are-not-anchors'
gitster Feb 26, 2021
18decfd
Merge branch 'rs/blame-optim'
gitster Feb 26, 2021
f47c332
Merge branch 'js/doc-proto-v2-response-end'
gitster Feb 26, 2021
3da165c
Merge branch 'mt/checkout-index-corner-cases'
gitster Feb 26, 2021
845d603
Merge branch 'jc/diffcore-rotate'
gitster Feb 26, 2021
2638e33
Merge branch 'ma/doc-markup-fix'
gitster Feb 26, 2021
dddb420
Merge branch 'jc/maint-column-doc-typofix'
gitster Feb 26, 2021
ccf6861
Merge branch 'cw/pack-config-doc'
gitster Feb 26, 2021
6eea44c
Merge branch 'zh/difftool-skip-to'
gitster Feb 26, 2021
3c8e6dd
Merge branch 'ah/commit-graph-leakplug'
gitster Feb 26, 2021
628c13c
Merge branch 'mt/grep-sparse-checkout'
gitster Feb 26, 2021
682bbad
Merge branch 'ah/rebase-no-fork-point-config'
gitster Feb 26, 2021
48923e8
Merge branch 'ds/merge-base-independent'
gitster Feb 26, 2021
f277234
Merge branch 'mt/add-chmod-fixes'
gitster Feb 26, 2021
d166e8c
Merge branch 'es/maintenance-of-bare-repositories'
gitster Feb 26, 2021
d228b6b
Merge branch 'ug/doc-commit-approxidate'
gitster Feb 26, 2021
1c8f5df
Merge branch 'js/params-vs-args'
gitster Feb 26, 2021
09e7220
Merge branch 'dl/doc-config-camelcase'
gitster Feb 26, 2021
cadae71
Merge branch 'sh/mergetools-vimdiff1'
gitster Feb 26, 2021
1400458
Merge branch 'jc/push-delete-nothing'
gitster Feb 26, 2021
225365f
Git 2.31-rc0
gitster Feb 26, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions Documentation/RelNotes/2.31.0.txt
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,22 @@ UI, Workflows & Features
two object names (one in SHA-1, the other in SHA-256) are both
signed.

* "git rev-list" command learned "--disk-usage" option.

* "git {diff,log} --{skip,rotate}-to=<path>" allows the user to
discard diff output for early paths or move them to the end of the
output.

* "git difftool" learned "--skip-to=<path>" option to restart an
interrupted session from an arbitrary path.

* "git grep" has been tweaked to be limited to the sparse checkout
paths.

* "git rebase --[no-]fork-point" gained a configuration variable
rebase.forkPoint so that users do not have to keep specifying a
non-default setting.


Performance, Internal Implementation, Development Support etc.

Expand Down Expand Up @@ -176,6 +192,11 @@ Performance, Internal Implementation, Development Support etc.
* When a pager spawned by us exited, the trace log did not record its
exit status correctly, which has been corrected.

* Removal of GIT_TEST_GETTEXT_POISON continues.

* The code to implement "git merge-base --independent" was poorly
done and was kept from the very beginning of the feature.


Fixes since v2.30
-----------------
Expand Down Expand Up @@ -274,5 +295,33 @@ Fixes since v2.30
turned commit-graph off; we now tell the user what we are doing.
(merge c85eec7fc3 js/commit-graph-warning later to maint).

* Objects that lost references can be pruned away, even when they
have notes attached to it (and these notes will become dangling,
which in turn can be pruned with "git notes prune"). This has been
clarified in the documentation.
(merge fa9ab027ba mz/doc-notes-are-not-anchors later to maint).

* The error codepath around the "--temp/--prefix" feature of "git
checkout-index" has been improved.
(merge 3f7ba60350 mt/checkout-index-corner-cases later to maint).

* The "git maintenance register" command had trouble registering bare
repositories, which had been corrected.

* A handful of multi-word configuration variable names in
documentation that are spelled in all lowercase have been corrected
to use the more canonical camelCase.
(merge 7dd0eaa39c dl/doc-config-camelcase later to maint).

* "git push $there --delete ''" should have been diagnosed as an
error, but instead turned into a matching push, which has been
corrected.
(merge 20e416409f jc/push-delete-nothing later to maint).

* Other code cleanup, docfix, build fix, etc.
(merge e3f5da7e60 sg/t7800-difftool-robustify later to maint).
(merge 9d336655ba js/doc-proto-v2-response-end later to maint).
(merge 1b5b8cf072 jc/maint-column-doc-typofix later to maint).
(merge 3a837b58e3 cw/pack-config-doc later to maint).
(merge 01168a9d89 ug/doc-commit-approxidate later to maint).
(merge b865734760 js/params-vs-args later to maint).
2 changes: 1 addition & 1 deletion Documentation/blame-options.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
-b::
Show blank SHA-1 for boundary commits. This can also
be controlled via the `blame.blankboundary` config option.
be controlled via the `blame.blankBoundary` config option.

--root::
Do not treat root commits as boundaries. This can also be
Expand Down
3 changes: 3 additions & 0 deletions Documentation/config/rebase.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,6 @@ rebase.rescheduleFailedExec::
Automatically reschedule `exec` commands that failed. This only makes
sense in interactive mode (or when an `--exec` option was provided).
This is the same as specifying the `--reschedule-failed-exec` option.

rebase.forkPoint::
If set to false set `--no-fork-point` option by default.
11 changes: 7 additions & 4 deletions Documentation/date-formats.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
DATE FORMATS
------------

The `GIT_AUTHOR_DATE`, `GIT_COMMITTER_DATE` environment variables
ifdef::git-commit[]
and the `--date` option
endif::git-commit[]
The `GIT_AUTHOR_DATE` and `GIT_COMMITTER_DATE` environment variables
support the following date formats:

Git internal format::
Expand All @@ -26,3 +23,9 @@ ISO 8601::
+
NOTE: In addition, the date part is accepted in the following formats:
`YYYY.MM.DD`, `MM/DD/YYYY` and `DD.MM.YYYY`.

ifdef::git-commit[]
In addition to recognizing all date formats above, the `--date` option
will also try to make sense of other, more human-centric date formats,
such as relative dates like "yesterday" or "last Friday at noon".
endif::git-commit[]
8 changes: 8 additions & 0 deletions Documentation/diff-options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -700,6 +700,14 @@ 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`".

--skip-to=<file>::
--rotate-to=<file>::
Discard the files before the named <file> from the output
(i.e. 'skip to'), or move them to the end of the output
(i.e. 'rotate to'). These were invented primarily for use
of the `git difftool` command, and may not be very useful
otherwise.

ifndef::git-format-patch[]
-R::
Swap two inputs; that is, show differences from index or
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-am.txt
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ OPTIONS
Pass `-u` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
The proposed commit log message taken from the e-mail
is re-coded into UTF-8 encoding (configuration variable
`i18n.commitencoding` can be used to specify project's
`i18n.commitEncoding` can be used to specify project's
preferred encoding if it is not UTF-8).
+
This was optional in prior versions of git, but now it is the
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-branch.txt
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ OPTIONS
--column[=<options>]::
--no-column::
Display branch listing in columns. See configuration variable
column.branch for option syntax.`--column` and `--no-column`
`column.branch` for option syntax. `--column` and `--no-column`
without options are equivalent to 'always' and 'never' respectively.
+
This option is only applicable in non-verbose mode.
Expand Down
8 changes: 8 additions & 0 deletions Documentation/git-difftool.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ OPTIONS
This is the default behaviour; the option is provided to
override any configuration settings.

--rotate-to=<file>::
Start showing the diff for the given path,
the paths before it will move to end and output.

--skip-to=<file>::
Start showing the diff for the given path, skipping all
the paths before it.

-t <tool>::
--tool=<tool>::
Use the diff tool specified by <tool>. Valid values include
Expand Down
14 changes: 8 additions & 6 deletions Documentation/git-gc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -117,12 +117,14 @@ NOTES
'git gc' tries very hard not to delete objects that are referenced
anywhere in your repository. In particular, it will keep not only
objects referenced by your current set of branches and tags, but also
objects referenced by the index, remote-tracking branches, notes saved
by 'git notes' under refs/notes/, reflogs (which may reference commits
in branches that were later amended or rewound), and anything else in
the refs/* namespace. If you are expecting some objects to be deleted
and they aren't, check all of those locations and decide whether it
makes sense in your case to remove those references.
objects referenced by the index, remote-tracking branches, reflogs
(which may reference commits in branches that were later amended or
rewound), and anything else in the refs/* namespace. Note that a note
(of the kind created by 'git notes') attached to an object does not
contribute in keeping the object alive. If you are expecting some
objects to be deleted and they aren't, check all of those locations
and decide whether it makes sense in your case to remove those
references.

On the other hand, when 'git gc' runs concurrently with another process,
there is a risk of it deleting an object that the other process is using
Expand Down
4 changes: 2 additions & 2 deletions Documentation/git-mailinfo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,15 @@ character.
The commit log message, author name and author email are
taken from the e-mail, and after minimally decoding MIME
transfer encoding, re-coded in the charset specified by
i18n.commitencoding (defaulting to UTF-8) by transliterating
`i18n.commitEncoding` (defaulting to UTF-8) by transliterating
them. This used to be optional but now it is the default.
+
Note that the patch is always used as-is without charset
conversion, even with this flag.

--encoding=<encoding>::
Similar to -u. But when re-coding, the charset specified here is
used instead of the one specified by i18n.commitencoding or UTF-8.
used instead of the one specified by `i18n.commitEncoding` or UTF-8.

-n::
Disable all charset re-coding of the metadata.
Expand Down
11 changes: 11 additions & 0 deletions Documentation/git-pack-objects.txt
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,17 @@ Note that we pick a single island for each regex to go into, using "last
one wins" ordering (which allows repo-specific config to take precedence
over user-wide config, and so forth).


CONFIGURATION
-------------

Various configuration variables affect packing, see
linkgit:git-config[1] (search for "pack" and "delta").

Notably, delta compression is not used on objects larger than the
`core.bigFileThreshold` configuration variable and on files with the
attribute `delta` set to false.

SEE ALSO
--------
linkgit:git-rev-list[1]
Expand Down
9 changes: 8 additions & 1 deletion Documentation/git-repack.txt
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,12 @@ depth is 4095.
Pass the `--delta-islands` option to `git-pack-objects`, see
linkgit:git-pack-objects[1].

Configuration
CONFIGURATION
-------------

Various configuration variables affect packing, see
linkgit:git-config[1] (search for "pack" and "delta").

By default, the command passes `--delta-base-offset` option to
'git pack-objects'; this typically results in slightly smaller packs,
but the generated packs are incompatible with versions of Git older than
Expand All @@ -178,6 +181,10 @@ need to set the configuration variable `repack.UseDeltaBaseOffset` to
is unaffected by this option as the conversion is performed on the fly
as needed in that case.

Delta compression is not used on objects larger than the
`core.bigFileThreshold` configuration variable and on files with the
attribute `delta` set to false.

SEE ALSO
--------
linkgit:git-pack-objects[1]
Expand Down
93 changes: 93 additions & 0 deletions Documentation/git-rev-list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,99 @@ include::rev-list-options.txt[]

include::pretty-formats.txt[]

EXAMPLES
--------

* Print the list of commits reachable from the current branch.
+
----------
git rev-list HEAD
----------

* Print the list of commits on this branch, but not present in the
upstream branch.
+
----------
git rev-list @{upstream}..HEAD
----------

* Format commits with their author and commit message (see also the
porcelain linkgit:git-log[1]).
+
----------
git rev-list --format=medium HEAD
----------

* Format commits along with their diffs (see also the porcelain
linkgit:git-log[1], which can do this in a single process).
+
----------
git rev-list HEAD |
git diff-tree --stdin --format=medium -p
----------

* Print the list of commits on the current branch that touched any
file in the `Documentation` directory.
+
----------
git rev-list HEAD -- Documentation/
----------

* Print the list of commits authored by you in the past year, on
any branch, tag, or other ref.
+
----------
git rev-list --author=you@example.com --since=1.year.ago --all
----------

* Print the list of objects reachable from the current branch (i.e., all
commits and the blobs and trees they contain).
+
----------
git rev-list --objects HEAD
----------

* Compare the disk size of all reachable objects, versus those
reachable from reflogs, versus the total packed size. This can tell
you whether running `git repack -ad` might reduce the repository size
(by dropping unreachable objects), and whether expiring reflogs might
help.
+
----------
# reachable objects
git rev-list --disk-usage --objects --all
# plus reflogs
git rev-list --disk-usage --objects --all --reflog
# total disk size used
du -c .git/objects/pack/*.pack .git/objects/??/*
# alternative to du: add up "size" and "size-pack" fields
git count-objects -v
----------

* Report the disk size of each branch, not including objects used by the
current branch. This can find outliers that are contributing to a
bloated repository size (e.g., because somebody accidentally committed
large build artifacts).
+
----------
git for-each-ref --format='%(refname)' |
while read branch
do
size=$(git rev-list --disk-usage --objects HEAD..$branch)
echo "$size $branch"
done |
sort -n
----------

* Compare the on-disk size of branches in one group of refs, excluding
another. If you co-mingle objects from multiple remotes in a single
repository, this can show which remotes are contributing to the
repository size (taking the size of `origin` as a baseline).
+
----------
git rev-list --disk-usage --objects --remotes=$suspect --not --remotes=origin
----------

GIT
---
Part of the linkgit:git[1] suite
2 changes: 1 addition & 1 deletion Documentation/git-status.txt
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ ignored, then the directory is not shown, but all contents are shown.
--column[=<options>]::
--no-column::
Display untracked files in columns. See configuration variable
column.status for option syntax.`--column` and `--no-column`
`column.status` for option syntax. `--column` and `--no-column`
without options are equivalent to 'always' and 'never'
respectively.

Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-tag.txt
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ options for details.
--column[=<options>]::
--no-column::
Display tag listing in columns. See configuration variable
column.tag for option syntax.`--column` and `--no-column`
`column.tag` for option syntax. `--column` and `--no-column`
without options are equivalent to 'always' and 'never' respectively.
+
This option is only applicable when listing tags without annotation lines.
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git.txt
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ foo.bar= ...`) sets `foo.bar` to the empty string which `git config
empty string, instead the environment variable itself must be
set to the empty string. It is an error if the `<envvar>` does not exist
in the environment. `<envvar>` may not contain an equals sign
to avoid ambiguity with `<name>`s which contain one.
to avoid ambiguity with `<name>` containing one.
+
This is useful for cases where you want to pass transitory
configuration options to git, but are doing so on OS's where
Expand Down
21 changes: 21 additions & 0 deletions Documentation/gitdiffcore.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ into another list. There are currently 5 such transformations:
- diffcore-merge-broken
- diffcore-pickaxe
- diffcore-order
- diffcore-rotate

These are applied in sequence. The set of filepairs 'git diff-{asterisk}'
commands find are used as the input to diffcore-break, and
Expand Down Expand Up @@ -276,6 +277,26 @@ Documentation
t
------------------------------------------------

diffcore-rotate: For Changing At Which Path Output Starts
---------------------------------------------------------

This transformation takes one pathname, and rotates the set of
filepairs so that the filepair for the given pathname comes first,
optionally discarding the paths that come before it. This is used
to implement the `--skip-to` and the `--rotate-to` options. It is
an error when the specified pathname is not in the set of filepairs,
but it is not useful to error out when used with "git log" family of
commands, because it is unreasonable to expect that a given path
would be modified by each and every commit shown by the "git log"
command. For this reason, when used with "git log", the filepair
that sorts the same as, or the first one that sorts after, the given
pathname is where the output starts.

Use of this transformation combined with diffcore-order will produce
unexpected results, as the input to this transformation is likely
not sorted when diffcore-order is in effect.


SEE ALSO
--------
linkgit:git-diff[1],
Expand Down
Loading