Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Squash leaks in t0000 #1092

Closed
wants to merge 150 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
c222385
ssh signing: preliminary refactoring and clean-up
FStelzer Aug 3, 2021
3a3fdc0
ssh signing: add test prereqs
FStelzer Aug 3, 2021
c7e2d30
ssh signing: add ssh key format and signing code
FStelzer Aug 3, 2021
5493722
ssh signing: retrieve a default key from ssh-agent
FStelzer Aug 3, 2021
6869f1f
ssh signing: provide a textual signing_key_id
FStelzer Aug 3, 2021
9048bb3
ssh signing: verify signatures using ssh-keygen
FStelzer Aug 3, 2021
5879676
ssh signing: duplicate t7510 tests for commits
FStelzer Aug 3, 2021
52ac6bd
ssh signing: tests for logs, tags & push certs
FStelzer Aug 3, 2021
4d01043
Merge branch 'jc/bisect-sans-show-branch' into next
gitster Aug 23, 2021
179c474
Merge branch 'ds/add-with-sparse-index' into next
gitster Aug 23, 2021
7018859
Merge branch 'ab/http-drop-old-curl' into next
gitster Aug 23, 2021
ec9d0ba
Merge branch 'ab/pack-stdin-packs-fix' into next
gitster Aug 23, 2021
5c06fb4
Merge branch 'zh/ref-filter-raw-data' into next
gitster Aug 23, 2021
af25d34
Merge branch 'ab/bundle-doc' into next
gitster Aug 23, 2021
cf274b0
Merge branch 'js/expand-runtime-prefix' into next
gitster Aug 23, 2021
d22a850
Merge branch 'en/ort-perf-batch-15' into next
gitster Aug 23, 2021
96fe62c
Merge branch 'hn/refs-test-cleanup' into next
gitster Aug 23, 2021
a931820
Merge branch 'es/trace2-log-parent-process-name' into next
gitster Aug 23, 2021
6b3dcc1
Merge branch 'jt/push-negotiation-fixes' into next
gitster Aug 23, 2021
09f9fbd
Merge branch 'ps/fetch-pack-load-refs-optim' into next
gitster Aug 23, 2021
e1e5b2c
Merge branch 'en/pull-conflicting-options' into next
gitster Aug 24, 2021
ceb66b1
Merge branch 'en/merge-strategy-docs' into next
gitster Aug 24, 2021
92f4e08
Merge branch 'en/ort-becomes-the-default' into next
gitster Aug 24, 2021
aeeaee0
Merge branch 'js/log-protocol-version' into next
gitster Aug 24, 2021
94a7a04
Merge branch 'ps/connectivity-optim' into next
gitster Aug 24, 2021
6e94c19
Merge branch 'cb/builtin-merge-format-string-fix' into next
gitster Aug 24, 2021
f29f511
Merge branch 'jc/userdiff-pattern-hint' into next
gitster Aug 24, 2021
c786cd1
Merge branch 'jk/apply-binary-hunk-parsing-fix' into next
gitster Aug 24, 2021
eff05f5
Merge branch 'jk/range-diff-fixes' into next
gitster Aug 24, 2021
a5617ab
Merge branch 'th/userdiff-more-java' into next
gitster Aug 24, 2021
66c1e51
Merge branch 'bc/t5607-avoid-broken-test-fail-prereqs' into next
gitster Aug 24, 2021
0c62543
Merge branch 'jk/commit-edit-fixup-fix' into next
gitster Aug 24, 2021
55cc85c
Merge branch 'tl/traverse-non-commits-rename' into next
gitster Aug 24, 2021
1ecf63a
Merge branch 'cb/ci-freebsd-update' into next
gitster Aug 24, 2021
afdbb7e
Merge branch 'cb/ci-use-upload-artifacts-v1' into next
gitster Aug 24, 2021
73ec41e
Merge branch 'pw/rebase-skip-final-fix' into next
gitster Aug 24, 2021
81c6aff
Merge branch 'pw/rebase-r-fixes' into next
gitster Aug 24, 2021
593cd75
Merge branch 'fc/completion-updates' into next
gitster Aug 24, 2021
8fa66cf
Merge branch 'ti/tcsh-completion-regression-fix' into next
gitster Aug 24, 2021
9a3df9e
Merge branch 'sg/make-fix-ar-invocation' into next
gitster Aug 24, 2021
ba50c8f
Sync with master
gitster Aug 24, 2021
b88bcd0
ssh signing: test that gpg fails for unknown keys
FStelzer Aug 3, 2021
e92258e
Merge branch 'me/t5582-cleanup' into next
gitster Aug 30, 2021
1bb659c
Merge branch 'ga/send-email-sendmail-cmd' into next
gitster Aug 30, 2021
6339c8e
Merge branch 'rs/git-mmap-uses-malloc' into next
gitster Aug 30, 2021
fec2e5a
Merge branch 'ab/ls-remote-packet-trace' into next
gitster Aug 30, 2021
256e1cb
Merge branch 'ab/rebase-fatal-fatal-fix' into next
gitster Aug 30, 2021
12a5da4
Merge branch 'js/maintenance-launchctl-fix' into next
gitster Aug 30, 2021
2892635
Merge branch 'jk/t5323-no-pack-test-fix' into next
gitster Aug 30, 2021
be9e67b
Merge branch 'mh/credential-leakfix' into next
gitster Aug 30, 2021
59f5669
Merge branch 'dd/t6300-wo-gpg-fix' into next
gitster Aug 30, 2021
63a1bdd
Merge branch 'dd/diff-files-unmerged-fix' into next
gitster Aug 30, 2021
a858877
Merge branch 'rs/xopen-reports-open-failures' into next
gitster Aug 30, 2021
d243498
Merge branch 'mt/quiet-with-delayed-checkout' into next
gitster Aug 30, 2021
35b9d15
Merge branch 'rs/branch-allow-deleting-dangling' into next
gitster Aug 30, 2021
e4cbc72
Merge branch 'ps/ls-refs-strbuf-optim' into next
gitster Aug 30, 2021
9fe8f1a
Merge branch 'cb/makefile-apple-clang' into next
gitster Aug 30, 2021
a3cb0f4
Merge branch 'sg/column-nl' into next
gitster Aug 30, 2021
f212846
Sync with master
gitster Aug 30, 2021
bc883fc
Merge branch 'js/advise-when-skipping-cherry-picked' into next
gitster Sep 2, 2021
6ff491c
Merge branch 'zh/cherry-pick-advice' into next
gitster Sep 2, 2021
a1075a9
Merge branch 'ka/want-ref-in-namespace' into next
gitster Sep 2, 2021
2440a8a
Merge branch 'ps/fetch-omit-formatting-under-quiet' into next
gitster Sep 2, 2021
66b0f85
Merge branch 'tb/add-objects-in-unpacked-packs-simplify' into next
gitster Sep 2, 2021
73719be
Merge branch 'es/walken-tutorial-fix' into next
gitster Sep 2, 2021
5ee2615
Merge branch 'jh/sparse-index-resize-fix' into next
gitster Sep 2, 2021
5378ce3
Merge branch 'sg/set-ceiling-during-tests' into next
gitster Sep 2, 2021
3052b89
Merge branch 'rs/more-fspathcmp' into next
gitster Sep 2, 2021
3a60892
Merge branch 'mh/send-email-reset-in-reply-to' into next
gitster Sep 3, 2021
2254ea1
Merge branch 'ab/commit-graph-usage' into next
gitster Sep 3, 2021
6d47f59
Merge branch 'ba/object-info' into next
gitster Sep 3, 2021
15ce1ab
Merge branch 'tk/fast-export-anonymized-tag-fix' into next
gitster Sep 3, 2021
5c9eb65
Merge branch 'uk/userdiff-php-enum' into next
gitster Sep 3, 2021
24c51e3
Merge branch 'ab/gc-log-rephrase' into next
gitster Sep 3, 2021
348fe07
Merge branch 'ab/mailmap-leakfix' into next
gitster Sep 3, 2021
eed4e81
Merge branch 'fs/ssh-signing' into next
gitster Sep 3, 2021
9787178
Merge branch 'mk/clone-recurse-submodules' into next
gitster Sep 3, 2021
0045df3
Merge branch 'ab/retire-advice-config' into next
gitster Sep 3, 2021
a47f44c
Merge branch 'cb/remote-ndebug-fix' into next
gitster Sep 3, 2021
be952f7
Sync with master
gitster Sep 3, 2021
193ad0f
Sync with master
gitster Sep 8, 2021
56fe25c
Merge branch 'jk/log-warn-on-bogus-encoding' into next
gitster Sep 8, 2021
047750a
Merge branch 'rs/show-branch-simplify' into next
gitster Sep 8, 2021
02899d8
Merge branch 'rs/archive-use-object-id' into next
gitster Sep 8, 2021
99f8651
Merge branch 'ps/fetch-optim' into next
gitster Sep 8, 2021
f2b7415
Merge branch 'tb/multi-pack-bitmaps' into next
gitster Sep 8, 2021
ca17912
Merge branch 'so/diff-index-regression-fix' into next
gitster Sep 8, 2021
c2000e9
Merge branch 'ab/send-email-config-fix' into next
gitster Sep 8, 2021
4fddb38
Merge branch 'ab/no-more-check-bindir' into next
gitster Sep 8, 2021
5ea3df2
Merge branch 'bs/doc-bugreport-outdir' into next
gitster Sep 8, 2021
a51cf7e
Merge branch 'gh/gitweb-branch-sort' into next
gitster Sep 8, 2021
67612d0
Merge branch 'jt/grep-wo-submodule-odb-as-alternate' into next
gitster Sep 8, 2021
d6ba073
Merge branch 'jc/trivial-threeway-binary-merge' into next
gitster Sep 8, 2021
c47fb2d
Merge branch 'cb/ci-build-pedantic' into next
gitster Sep 8, 2021
e9e130d
Merge branch 'ab/help-autocorrect-prompt' into next
gitster Sep 8, 2021
6fa5d96
Merge branch 'pb/test-use-user-env' into next
gitster Sep 8, 2021
40cfa71
Merge branch 'bs/install-strip' into next
gitster Sep 8, 2021
1972c59
Merge branch 'ab/reverse-midx-optim' into next
gitster Sep 8, 2021
14f0dd5
Merge branch 'ab/tr2-leaks-and-fixes' into next
gitster Sep 10, 2021
b27d720
Merge branch 'lh/systemd-timers' into next
gitster Sep 10, 2021
c31d871
Merge branch 'jv/pkt-line-batch' into next
gitster Sep 10, 2021
21b773f
Merge branch 'dt/submodule-diff-fixes' into next
gitster Sep 10, 2021
b50c37a
Merge branch 'ab/progress-users-adjust-counters' into next
gitster Sep 10, 2021
4ae19a5
Merge branch 'ps/update-ref-batch-flush' into next
gitster Sep 10, 2021
b8df102
Merge branch 'cb/pedantic-build-for-developers' into next
gitster Sep 10, 2021
e8bac5f
Merge branch 'rs/range-diff-avoid-segfault-with-I' into next
gitster Sep 10, 2021
a5221ea
Merge branch 'jc/prefix-filename-allocates' into next
gitster Sep 10, 2021
f645ffd
Merge branch 'js/retire-preserve-merges' into next
gitster Sep 10, 2021
7b39c39
Merge branch 'tb/pack-finalize-ordering' into next
gitster Sep 10, 2021
71559ef
Merge branch 'tb/multi-pack-bitmaps' into next
gitster Sep 10, 2021
dc202c5
Sync with master
gitster Sep 10, 2021
5e29049
Revert "Merge branch 'fs/ssh-signing' into next"
gitster Sep 10, 2021
d7bacb3
Merge branch 'ab/unbundle-progress' into next
gitster Sep 13, 2021
fdabb4f
Merge branch 'ar/submodule-add-config' into next
gitster Sep 13, 2021
efebf6d
Merge branch 'ar/submodule-add-more' into next
gitster Sep 13, 2021
ea87ede
Merge branch 'ab/serve-cleanup' into next
gitster Sep 13, 2021
79584f3
Merge branch 'ab/make-tags-cleanup' into next
gitster Sep 13, 2021
fbe4177
Merge branch 'ar/submodule-run-update-procedure' into next
gitster Sep 13, 2021
6993c73
Merge branch 'ds/sparse-index-ignored-files' into next
gitster Sep 13, 2021
1535fa2
Merge branch 'ds/mergies-with-sparse-index' into next
gitster Sep 13, 2021
97c3614
Merge branch 'js/run-command-close-packs' into next
gitster Sep 13, 2021
544b481
Merge branch 'rs/setup-use-xopen-and-xdup' into next
gitster Sep 13, 2021
a3ea25c
Merge branch 'rs/no-mode-to-open-when-appending' into next
gitster Sep 13, 2021
22d4bfa
Merge branch 'jk/t5562-racefix' into next
gitster Sep 13, 2021
11f3d2d
Merge branch 'en/am-abort-fix' into next
gitster Sep 14, 2021
80e72f5
Merge branch 'rs/packfile-bad-object-list-in-oidset' into next
gitster Sep 14, 2021
3bd0662
Merge branch 'rs/drop-core-compression-vars' into next
gitster Sep 14, 2021
e078585
Merge branch 'jk/strvec-typefix' into next
gitster Sep 14, 2021
cf38118
Merge branch 'en/tests-cleanup-leftover-untracked' into next
gitster Sep 14, 2021
086310d
Merge branch 'ab/test-tool-run-command-cleanup' into next
gitster Sep 14, 2021
14f69ed
Merge branch 'ab/gc-remove-unused-call' into next
gitster Sep 14, 2021
9174cd6
Merge branch 'jk/http-server-protocol-versions' into next
gitster Sep 14, 2021
bddbd5c
Merge branch 'po/git-config-doc-mentions-help-c' into next
gitster Sep 14, 2021
39a6914
Merge branch 'ps/update-ref-batch-flush' into next
gitster Sep 15, 2021
16aaab3
Merge branch 'ab/http-drop-old-curl-plus' into next
gitster Sep 15, 2021
14e6b0f
Merge branch 'ab/unused-script-helpers' into next
gitster Sep 15, 2021
2af7f04
Merge branch 'mr/bisect-in-c-4' into next
gitster Sep 15, 2021
0bd7ce1
Merge branch 'ab/retire-option-argument' into next
gitster Sep 15, 2021
46640ce
Sync with master
gitster Sep 15, 2021
05cdcab
Merge branch 'js/pull-release-packs-before-fetching' into next
gitster Sep 13, 2021
e292133
Merge branch 'cb/unix-sockets-with-windows' into next
gitster Sep 16, 2021
292dd71
Merge branch 'ma/help-w-check-for-requested-page' into next
gitster Sep 16, 2021
54a6a3f
Merge branch 'ma/doc-git-version' into next
gitster Sep 16, 2021
40cfe41
Merge branch 'jk/reduce-malloc-in-v2-servers' into next
gitster Sep 16, 2021
c658fbf
Merge branch 'jt/submodule-name-to-gitdir' into next
gitster Sep 16, 2021
2eecae2
Merge branch 'cb/plug-leaks-in-alloca-emu-users' into next
gitster Sep 16, 2021
b4797ad
Merge branch 'kz/revindex-comment-fix' into next
gitster Sep 16, 2021
186eaaa
Merge branch 'rs/use-xopen-in-index-pack' into next
gitster Sep 16, 2021
6d54bc2
log: UNLEAK rev to silence a large number of leaks
ahunt Mar 16, 2021
aad3fe7
log: UNLEAK original pending objects
ahunt Mar 16, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/main.yml
Expand Up @@ -198,7 +198,6 @@ jobs:
shell: bash
env:
NO_SVN_TESTS: 1
GIT_TEST_SKIP_REBASE_P: 1
run: ci/run-test-slice.sh ${{matrix.nr}} 10
- name: ci/print-test-failures.sh
if: failure()
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Expand Up @@ -125,7 +125,6 @@
/git-range-diff
/git-read-tree
/git-rebase
/git-rebase--preserve-merges
/git-receive-pack
/git-reflog
/git-remote
Expand Down
4 changes: 0 additions & 4 deletions Documentation/config/branch.txt
Expand Up @@ -85,10 +85,6 @@ When `merges` (or just 'm'), pass the `--rebase-merges` option to 'git rebase'
so that the local merge commits are included in the rebase (see
linkgit:git-rebase[1] for details).
+
When `preserve` (or just 'p', deprecated in favor of `merges`), also pass
`--preserve-merges` along to 'git rebase' so that locally committed merge
commits will not be flattened by running 'git pull'.
+
When the value is `interactive` (or just 'i'), the rebase is run in interactive
mode.
+
Expand Down
4 changes: 0 additions & 4 deletions Documentation/config/pull.txt
Expand Up @@ -18,10 +18,6 @@ When `merges` (or just 'm'), pass the `--rebase-merges` option to 'git rebase'
so that the local merge commits are included in the rebase (see
linkgit:git-rebase[1] for details).
+
When `preserve` (or just 'p', deprecated in favor of `merges`), also pass
`--preserve-merges` along to 'git rebase' so that locally committed merge
commits will not be flattened by running 'git pull'.
+
When the value is `interactive` (or just 'i'), the rebase is run in interactive
mode.
+
Expand Down
2 changes: 2 additions & 0 deletions Documentation/git-am.txt
Expand Up @@ -178,6 +178,8 @@ default. You can use `--no-utf8` to override this.

--abort::
Restore the original branch and abort the patching operation.
Revert contents of files involved in the am operation to their
pre-am state.

--quit::
Abort the patching operation but keep HEAD and the index
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-bundle.txt
Expand Up @@ -13,7 +13,7 @@ SYNOPSIS
[--version=<version>] <file> <git-rev-list-args>
'git bundle' verify [-q | --quiet] <file>
'git bundle' list-heads <file> [<refname>...]
'git bundle' unbundle <file> [<refname>...]
'git bundle' unbundle [--progress] <file> [<refname>...]

DESCRIPTION
-----------
Expand Down
3 changes: 3 additions & 0 deletions Documentation/git-config.txt
Expand Up @@ -71,6 +71,9 @@ codes are:

On success, the command returns the exit code 0.

A list of all available configuration variables can be obtained using the
`git help --config` command.

[[OPTIONS]]
OPTIONS
-------
Expand Down
26 changes: 25 additions & 1 deletion Documentation/git-http-backend.txt
Expand Up @@ -16,7 +16,9 @@ A simple CGI program to serve the contents of a Git repository to Git
clients accessing the repository over http:// and https:// protocols.
The program supports clients fetching using both the smart HTTP protocol
and the backwards-compatible dumb HTTP protocol, as well as clients
pushing using the smart HTTP protocol.
pushing using the smart HTTP protocol. It also supports Git's
more-efficient "v2" protocol if properly configured; see the
discussion of `GIT_PROTOCOL` in the ENVIRONMENT section below.

It verifies that the directory has the magic file
"git-daemon-export-ok", and it will refuse to export any Git directory
Expand Down Expand Up @@ -77,6 +79,18 @@ Apache 2.x::
SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/

# This is not strictly necessary using Apache and a modern version of
# git-http-backend, as the webserver will pass along the header in the
# environment as HTTP_GIT_PROTOCOL, and http-backend will copy that into
# GIT_PROTOCOL. But you may need this line (or something similar if you
# are using a different webserver), or if you want to support older Git
# versions that did not do that copying.
#
# Having the webserver set up GIT_PROTOCOL is perfectly fine even with
# modern versions (and will take precedence over HTTP_GIT_PROTOCOL,
# which means it can be used to override the client's request).
SetEnvIf Git-Protocol ".*" GIT_PROTOCOL=$0
----------------------------------------------------------------
+
To enable anonymous read access but authenticated write access,
Expand Down Expand Up @@ -264,6 +278,16 @@ a repository with an extremely large number of refs. The value can be
specified with a unit (e.g., `100M` for 100 megabytes). The default is
10 megabytes.

Clients may probe for optional protocol capabilities (like the v2
protocol) using the `Git-Protocol` HTTP header. In order to support
these, the contents of that header must appear in the `GIT_PROTOCOL`
environment variable. Most webservers will pass this header to the CGI
via the `HTTP_GIT_PROTOCOL` variable, and `git-http-backend` will
automatically copy that to `GIT_PROTOCOL`. However, some webservers may
be more selective about which headers they'll pass, in which case they
need to be configured explicitly (see the mention of `Git-Protocol` in
the Apache config from the earlier EXAMPLES section).

The backend process sets GIT_COMMITTER_NAME to '$REMOTE_USER' and
GIT_COMMITTER_EMAIL to '$\{REMOTE_USER}@http.$\{REMOTE_ADDR\}',
ensuring that any reflogs created by 'git-receive-pack' contain some
Expand Down
6 changes: 6 additions & 0 deletions Documentation/git-index-pack.txt
Expand Up @@ -82,6 +82,12 @@ OPTIONS
--strict::
Die, if the pack contains broken objects or links.

--progress-title::
For internal use only.
+
Set the title of the progress bar. The title is "Receiving objects" by
default and "Indexing objects" when `--stdin` is specified.

--check-self-contained-and-connected::
Die if the pack contains broken links. For internal use only.

Expand Down
57 changes: 57 additions & 0 deletions Documentation/git-maintenance.txt
Expand Up @@ -179,6 +179,17 @@ OPTIONS
`maintenance.<task>.enabled` configured as `true` are considered.
See the 'TASKS' section for the list of accepted `<task>` values.

--scheduler=auto|crontab|systemd-timer|launchctl|schtasks::
When combined with the `start` subcommand, specify the scheduler
for running the hourly, daily and weekly executions of
`git maintenance run`.
Possible values for `<scheduler>` are `auto`, `crontab`
(POSIX), `systemd-timer` (Linux), `launchctl` (macOS), and
`schtasks` (Windows). When `auto` is specified, the
appropriate platform-specific scheduler is used; on Linux,
`systemd-timer` is used if available, otherwise
`crontab`. Default is `auto`.


TROUBLESHOOTING
---------------
Expand Down Expand Up @@ -277,6 +288,52 @@ schedule to ensure you are executing the correct binaries in your
schedule.


BACKGROUND MAINTENANCE ON LINUX SYSTEMD SYSTEMS
-----------------------------------------------

While Linux supports `cron`, depending on the distribution, `cron` may
be an optional package not necessarily installed. On modern Linux
distributions, systemd timers are superseding it.

If user systemd timers are available, they will be used as a replacement
of `cron`.

In this case, `git maintenance start` will create user systemd timer units
and start the timers. The current list of user-scheduled tasks can be found
by running `systemctl --user list-timers`. The timers written by `git
maintenance start` are similar to this:

-----------------------------------------------------------------------
$ systemctl --user list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Thu 2021-04-29 19:00:00 CEST 42min left Thu 2021-04-29 18:00:11 CEST 17min ago git-maintenance@hourly.timer git-maintenance@hourly.service
Fri 2021-04-30 00:00:00 CEST 5h 42min left Thu 2021-04-29 00:00:11 CEST 18h ago git-maintenance@daily.timer git-maintenance@daily.service
Mon 2021-05-03 00:00:00 CEST 3 days left Mon 2021-04-26 00:00:11 CEST 3 days ago git-maintenance@weekly.timer git-maintenance@weekly.service
-----------------------------------------------------------------------

One timer is registered for each `--schedule=<frequency>` option.

The definition of the systemd units can be inspected in the following files:

-----------------------------------------------------------------------
~/.config/systemd/user/git-maintenance@.timer
~/.config/systemd/user/git-maintenance@.service
~/.config/systemd/user/timers.target.wants/git-maintenance@hourly.timer
~/.config/systemd/user/timers.target.wants/git-maintenance@daily.timer
~/.config/systemd/user/timers.target.wants/git-maintenance@weekly.timer
-----------------------------------------------------------------------

`git maintenance start` will overwrite these files and start the timer
again with `systemctl --user`, so any customization should be done by
creating a drop-in file, i.e. a `.conf` suffixed file in the
`~/.config/systemd/user/git-maintenance@.service.d` directory.

`git maintenance stop` will stop the user systemd timers and delete
the above mentioned files.

For more details, see `systemd.timer(5)`.


BACKGROUND MAINTENANCE ON MACOS SYSTEMS
---------------------------------------

Expand Down
20 changes: 16 additions & 4 deletions Documentation/git-multi-pack-index.txt
Expand Up @@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git multi-pack-index' [--object-dir=<dir>] [--[no-]progress]
[--preferred-pack=<pack>] <subcommand>
[--preferred-pack=<pack>] [--[no-]bitmap] <subcommand>

DESCRIPTION
-----------
Expand All @@ -23,6 +23,8 @@ OPTIONS
Use given directory for the location of Git objects. We check
`<dir>/packs/multi-pack-index` for the current MIDX file, and
`<dir>/packs` for the pack-files to index.
+
`<dir>` must be an alternate of the current repository.

--[no-]progress::
Turn progress on/off explicitly. If neither is specified, progress is
Expand All @@ -37,9 +39,12 @@ write::
--
--preferred-pack=<pack>::
Optionally specify the tie-breaking pack used when
multiple packs contain the same object. If not given,
ties are broken in favor of the pack with the lowest
mtime.
multiple packs contain the same object. `<pack>` must
contain at least one object. If not given, ties are
broken in favor of the pack with the lowest mtime.

--[no-]bitmap::
Control whether or not a multi-pack bitmap is written.
--

verify::
Expand Down Expand Up @@ -81,6 +86,13 @@ EXAMPLES
$ git multi-pack-index write
-----------------------------------------------

* Write a MIDX file for the packfiles in the current .git folder with a
corresponding bitmap.
+
-------------------------------------------------------------
$ git multi-pack-index write --preferred-pack=<pack> --bitmap
-------------------------------------------------------------

* Write a MIDX file for the packfiles in an alternate object store.
+
-----------------------------------------------
Expand Down
6 changes: 1 addition & 5 deletions Documentation/git-pull.txt
Expand Up @@ -105,7 +105,7 @@ Options related to merging
include::merge-options.txt[]

-r::
--rebase[=false|true|merges|preserve|interactive]::
--rebase[=false|true|merges|interactive]::
When true, rebase the current branch on top of the upstream
branch after fetching. If there is a remote-tracking branch
corresponding to the upstream branch and the upstream branch
Expand All @@ -116,10 +116,6 @@ When set to `merges`, rebase using `git rebase --rebase-merges` so that
the local merge commits are included in the rebase (see
linkgit:git-rebase[1] for details).
+
When set to `preserve` (deprecated in favor of `merges`), rebase with the
`--preserve-merges` option passed to `git rebase` so that locally created
merge commits will not be flattened.
+
When false, merge the upstream branch into the current branch.
+
When `interactive`, enable the interactive mode of rebase.
Expand Down
51 changes: 0 additions & 51 deletions Documentation/git-rebase.txt
Expand Up @@ -526,29 +526,12 @@ i.e. commits that would be excluded by linkgit:git-log[1]'s
the `rebase-cousins` mode is turned on, such commits are instead rebased
onto `<upstream>` (or `<onto>`, if specified).
+
The `--rebase-merges` mode is similar in spirit to the deprecated
`--preserve-merges` but works with interactive rebases,
where commits can be reordered, inserted and dropped at will.
+
It is currently only possible to recreate the merge commits using the
`ort` merge strategy; different merge strategies can be used only via
explicit `exec git merge -s <strategy> [...]` commands.
+
See also REBASING MERGES and INCOMPATIBLE OPTIONS below.

-p::
--preserve-merges::
[DEPRECATED: use `--rebase-merges` instead] Recreate merge commits
instead of flattening the history by replaying commits a merge commit
introduces. Merge conflict resolutions or manual amendments to merge
commits are not preserved.
+
This uses the `--interactive` machinery internally, but combining it
with the `--interactive` option explicitly is generally not a good
idea unless you know what you are doing (see BUGS below).
+
See also INCOMPATIBLE OPTIONS below.

-x <cmd>::
--exec <cmd>::
Append "exec <cmd>" after each line creating a commit in the
Expand Down Expand Up @@ -580,9 +563,6 @@ See also INCOMPATIBLE OPTIONS below.
the root commit(s) on a branch. When used with --onto, it
will skip changes already contained in <newbase> (instead of
<upstream>) whereas without --onto it will operate on every change.
When used together with both --onto and --preserve-merges,
'all' root commits will be rewritten to have <newbase> as parent
instead.
+
See also INCOMPATIBLE OPTIONS below.

Expand Down Expand Up @@ -644,7 +624,6 @@ are incompatible with the following options:
* --allow-empty-message
* --[no-]autosquash
* --rebase-merges
* --preserve-merges
* --interactive
* --exec
* --no-keep-empty
Expand All @@ -655,13 +634,6 @@ are incompatible with the following options:

In addition, the following pairs of options are incompatible:

* --preserve-merges and --interactive
* --preserve-merges and --signoff
* --preserve-merges and --rebase-merges
* --preserve-merges and --empty=
* --preserve-merges and --ignore-whitespace
* --preserve-merges and --committer-date-is-author-date
* --preserve-merges and --ignore-date
* --keep-base and --onto
* --keep-base and --root
* --fork-point and --root
Expand Down Expand Up @@ -1279,29 +1251,6 @@ CONFIGURATION
include::config/rebase.txt[]
include::config/sequencer.txt[]

BUGS
----
The todo list presented by the deprecated `--preserve-merges --interactive`
does not represent the topology of the revision graph (use `--rebase-merges`
instead). Editing commits and rewording their commit messages should work
fine, but attempts to reorder commits tend to produce counterintuitive results.
Use `--rebase-merges` in such scenarios instead.

For example, an attempt to rearrange
------------
1 --- 2 --- 3 --- 4 --- 5
------------
to
------------
1 --- 2 --- 4 --- 3 --- 5
------------
by moving the "pick 4" line will result in the following history:
------------
3
/
1 --- 2 --- 4 --- 5
------------

GIT
---
Part of the linkgit:git[1] suite
5 changes: 5 additions & 0 deletions Documentation/git-receive-pack.txt
Expand Up @@ -41,6 +41,11 @@ OPTIONS
<directory>::
The repository to sync into.

--http-backend-info-refs::
Used by linkgit:git-http-backend[1] to serve up
`$GIT_URL/info/refs?service=git-receive-pack` requests. See
`--http-backend-info-refs` in linkgit:git-upload-pack[1].

PRE-RECEIVE HOOK
----------------
Before any ref is updated, if $GIT_DIR/hooks/pre-receive file exists
Expand Down
10 changes: 10 additions & 0 deletions Documentation/git-sparse-checkout.txt
Expand Up @@ -210,6 +210,16 @@ case-insensitive check. This corrects for case mismatched filenames in the
'git sparse-checkout set' command to reflect the expected cone in the working
directory.

When changing the sparse-checkout patterns in cone mode, Git will inspect each
tracked directory that is not within the sparse-checkout cone to see if it
contains any untracked files. If all of those files are ignored due to the
`.gitignore` patterns, then the directory will be deleted. If any of the
untracked files within that directory is not ignored, then no deletions will
occur within that directory and a warning message will appear. If these files
are important, then reset your sparse-checkout definition so they are included,
use `git add` and `git commit` to store them, then remove any remaining files
manually to ensure Git can behave optimally.


SUBMODULES
----------
Expand Down
1 change: 0 additions & 1 deletion Documentation/git-svn.txt
Expand Up @@ -678,7 +678,6 @@ config key: svn.authorsProg
--strategy=<strategy>::
-p::
--rebase-merges::
--preserve-merges (DEPRECATED)::
These are only used with the 'dcommit' and 'rebase' commands.
+
Passed directly to 'git rebase' when using 'dcommit' if a
Expand Down