From dac8a36b534b6c8ed2b9be2398e225a9ea272ceb Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 17 Oct 2022 15:25:51 -0700 Subject: Autogenerated HTML docs for v2.38.0-118-g47328 --- RelNotes/2.39.0.txt | 34 ++++++++++++++++ SubmittingPatches.html | 6 ++- SubmittingPatches.txt | 4 +- config.txt | 2 + git-config.html | 22 +++++++++++ git-fsmonitor--daemon.html | 60 +++++++++++++++++++++++++++-- git-fsmonitor--daemon.txt | 37 ++++++++++++++++-- howto/coordinate-embargoed-releases.html | 2 +- howto/keep-canonical-history-correct.html | 2 +- howto/maintain-git.html | 2 +- howto/new-command.html | 2 +- howto/rebase-from-internal-branch.html | 2 +- howto/rebuild-from-update-hook.html | 2 +- howto/recover-corrupted-blob-object.html | 2 +- howto/recover-corrupted-object-harder.html | 2 +- howto/revert-a-faulty-merge.html | 2 +- howto/revert-branch-rebase.html | 2 +- howto/separating-topic-branches.html | 2 +- howto/setup-git-server-over-http.html | 2 +- howto/update-hook-example.html | 2 +- howto/use-git-daemon.html | 2 +- howto/using-merge-subtree.html | 2 +- howto/using-signed-tag-in-pull-request.html | 2 +- 23 files changed, 171 insertions(+), 26 deletions(-) diff --git a/RelNotes/2.39.0.txt b/RelNotes/2.39.0.txt index a6ee7c899..c8e333eeb 100644 --- a/RelNotes/2.39.0.txt +++ b/RelNotes/2.39.0.txt @@ -7,6 +7,9 @@ UI, Workflows & Features * "git grep" learned to expand the sparse-index more lazily and on demand in a sparse checkout. + * By default, use of fsmonitor on a repository on networked + filesystem is disabled. Add knobs to make it workable on macOS. + Performance, Internal Implementation, Development Support etc. -------------------------------------------------------------- @@ -26,6 +29,10 @@ Performance, Internal Implementation, Development Support etc. * "scalar unregister" in a repository that is already been unregistered reported an error. + * Remove error detection from a function that fetches from promisor + remotes, and make it die when such a fetch fails to bring all the + requested objects, to give an early failure to various operations. + Fixes since v2.38 ----------------- @@ -78,6 +85,29 @@ Fixes since v2.38 from "ssh-keygen". (merge 36fb0d07d8 pw/ssh-sign-report-errors later to maint). + * Code clean-up that results in plugging a leak. + (merge 246526d019 rs/bisect-start-leakfix later to maint). + + * "GIT_EDITOR=: git branch --edit-description" resulted in failure, + which has been corrected. + (merge e288b3de35 jc/branch-description-unset later to maint). + + * The code to clean temporary object directories (used for + quarantine) tried to remove them inside its signal handler, which + was a no-no. + (merge 22613b25ec jc/tmp-objdir later to maint). + + * Update comment in the Makefile about the RUNTIME_PREFIX config knob. + (merge ebb6c16607 dd/document-runtime-prefix-better later to maint). + + * Clarify that "the sentence after : prefix does not begin with + a capital letter" rule applies only to the commit title. + (merge 3991bb73dd jc/use-of-uc-in-log-messages later to maint). + + * "git branch --edit-description" on an unborh branch misleadingly + said that no such branch exists, which has been corrected. + (merge bcfc82bd48 rj/branch-edit-desc-unborn later to maint). + * Other code cleanup, docfix, build fix, etc. (merge c34a6bd291 so/diff-merges-cleanup later to maint). (merge 5e7c8b75e7 ab/test-malloc-with-sanitize-leak later to maint). @@ -88,3 +118,7 @@ Fixes since v2.38 (merge 45350aeb11 jk/sequencer-missing-author-name-check later to maint). (merge edbf9a2e20 nb/doc-mergetool-typofix later to maint). (merge b004c90282 rs/gc-pack-refs-simplify later to maint). + (merge 69c5f17f11 jk/cleanup-callback-parameters later to maint). + (merge 7c07f36ad2 ab/unused-annotation later to maint). + (merge f7669676d0 rs/use-fspathncmp later to maint). + (merge a677d3c416 pw/remove-rebase-p-test later to maint). diff --git a/SubmittingPatches.html b/SubmittingPatches.html index 0a8fedc4e..45510f0d1 100644 --- a/SubmittingPatches.html +++ b/SubmittingPatches.html @@ -904,7 +904,9 @@ githooks.txt: improve the intro section

If in doubt which identifier to use, run git log --no-merges on the files you are modifying to see the current conventions.

The title sentence after the "area:" prefix omits the full stop at the -end, and its first word is not capitalized unless there is a reason to +end, and its first word is not capitalized (the omission +of capitalization applies only to the word after the "area:" +prefix of the title) unless there is a reason to capitalize it other than because it is the first word in the sentence. E.g. "doc: clarify…", not "doc: Clarify…", or "githooks.txt: improve…", not "githooks.txt: Improve…". But "refs: HEAD is also @@ -1444,7 +1446,7 @@ this problem around.

diff --git a/SubmittingPatches.txt b/SubmittingPatches.txt index 5bd795e5d..927f7329a 100644 --- a/SubmittingPatches.txt +++ b/SubmittingPatches.txt @@ -153,7 +153,9 @@ files you are modifying to see the current conventions. [[summary-section]] The title sentence after the "area:" prefix omits the full stop at the -end, and its first word is not capitalized unless there is a reason to +end, and its first word is not capitalized (the omission +of capitalization applies only to the word after the "area:" +prefix of the title) unless there is a reason to capitalize it other than because it is the first word in the sentence. E.g. "doc: clarify...", not "doc: Clarify...", or "githooks.txt: improve...", not "githooks.txt: Improve...". But "refs: HEAD is also diff --git a/config.txt b/config.txt index 5b5b97656..1e2058316 100644 --- a/config.txt +++ b/config.txt @@ -423,6 +423,8 @@ include::config/filter.txt[] include::config/fsck.txt[] +include::config/fsmonitor--daemon.txt[] + include::config/gc.txt[] include::config/gitcvs.txt[] diff --git a/git-config.html b/git-config.html index 541b82775..7ad61933d 100644 --- a/git-config.html +++ b/git-config.html @@ -5863,6 +5863,28 @@ your way to pre-sort the list. After Git version 2.20 a hash implementation is used instead, so there’s now no reason to pre-sort the list.

+fsmonitor.allowRemote +
+
+

+ By default, the fsmonitor daemon refuses to work against network-mounted + repositories. Setting fsmonitor.allowRemote to true overrides this + behavior. Only respected when core.fsmonitor is set to true. +

+
+
+fsmonitor.socketDir +
+
+

+ This Mac OS-specific option, if set, specifies the directory in + which to create the Unix domain socket used for communication + between the fsmonitor daemon and various Git commands. The directory must + reside on a native Mac OS filesystem. Only respected when core.fsmonitor + is set to true. +

+
+
gc.aggressiveDepth
diff --git a/git-fsmonitor--daemon.html b/git-fsmonitor--daemon.html index 9afdb5130..80dcb9852 100644 --- a/git-fsmonitor--daemon.html +++ b/git-fsmonitor--daemon.html @@ -740,7 +740,7 @@ git-fsmonitor--daemon(1) Manual Page

NAME

git-fsmonitor--daemon - - A Built-in File System Monitor + A Built-in Filesystem Monitor

@@ -761,7 +761,7 @@ git-fsmonitor--daemon(1) Manual Page

DESCRIPTION

A daemon to watch the working directory for file and directory -changes using platform-specific file system notification facilities.

+changes using platform-specific filesystem notification facilities.

This daemon communicates directly with commands like git status using the simple IPC interface instead of the slower githooks(5) interface.

@@ -829,12 +829,64 @@ automatically start it (if necessary).

CAVEATS

The fsmonitor daemon does not currently know about submodules and does -not know to filter out file system events that happen within a +not know to filter out filesystem events that happen within a submodule. If fsmonitor daemon is watching a super repo and a file is modified within the working directory of a submodule, it will report the change (as happening against the super repo). However, the client will properly ignore these extra events, so performance may be affected but it will not cause an incorrect result.

+

By default, the fsmonitor daemon refuses to work against network-mounted +repositories; this may be overridden by setting fsmonitor.allowRemote to +true. Note, however, that the fsmonitor daemon is not guaranteed to work +correctly with all network-mounted repositories and such use is considered +experimental.

+

On Mac OS, the inter-process communication (IPC) between various Git +commands and the fsmonitor daemon is done via a Unix domain socket (UDS) — a +special type of file — which is supported by native Mac OS filesystems, +but not on network-mounted filesystems, NTFS, or FAT32. Other filesystems +may or may not have the needed support; the fsmonitor daemon is not guaranteed +to work with these filesystems and such use is considered experimental.

+

By default, the socket is created in the .git directory, however, if the +.git directory is on a network-mounted filesystem, it will be instead be +created at $HOME/.git-fsmonitor-* unless $HOME itself is on a +network-mounted filesystem in which case you must set the configuration +variable fsmonitor.socketDir to the path of a directory on a Mac OS native +filesystem in which to create the socket file.

+

If none of the above directories (.git, $HOME, or fsmonitor.socketDir) +is on a native Mac OS file filesystem the fsmonitor daemon will report an +error that will cause the daemon and the currently running command to exit.

+
+ +
+

CONFIGURATION

+
+

Everything below this line in this section is selectively included +from the git-config(1) documentation. The content is the same +as what’s found there:

+
+
+fsmonitor.allowRemote +
+
+

+ By default, the fsmonitor daemon refuses to work against network-mounted + repositories. Setting fsmonitor.allowRemote to true overrides this + behavior. Only respected when core.fsmonitor is set to true. +

+
+
+fsmonitor.socketDir +
+
+

+ This Mac OS-specific option, if set, specifies the directory in + which to create the Unix domain socket used for communication + between the fsmonitor daemon and various Git commands. The directory must + reside on a native Mac OS filesystem. Only respected when core.fsmonitor + is set to true. +

+
+
@@ -848,7 +900,7 @@ but it will not cause an incorrect result.

diff --git a/git-fsmonitor--daemon.txt b/git-fsmonitor--daemon.txt index cc142fb86..8238eadb0 100644 --- a/git-fsmonitor--daemon.txt +++ b/git-fsmonitor--daemon.txt @@ -3,7 +3,7 @@ git-fsmonitor{litdd}daemon(1) NAME ---- -git-fsmonitor--daemon - A Built-in File System Monitor +git-fsmonitor--daemon - A Built-in Filesystem Monitor SYNOPSIS -------- @@ -17,7 +17,7 @@ DESCRIPTION ----------- A daemon to watch the working directory for file and directory -changes using platform-specific file system notification facilities. +changes using platform-specific filesystem notification facilities. This daemon communicates directly with commands like `git status` using the link:technical/api-simple-ipc.html[simple IPC] interface @@ -63,13 +63,44 @@ CAVEATS ------- The fsmonitor daemon does not currently know about submodules and does -not know to filter out file system events that happen within a +not know to filter out filesystem events that happen within a submodule. If fsmonitor daemon is watching a super repo and a file is modified within the working directory of a submodule, it will report the change (as happening against the super repo). However, the client will properly ignore these extra events, so performance may be affected but it will not cause an incorrect result. +By default, the fsmonitor daemon refuses to work against network-mounted +repositories; this may be overridden by setting `fsmonitor.allowRemote` to +`true`. Note, however, that the fsmonitor daemon is not guaranteed to work +correctly with all network-mounted repositories and such use is considered +experimental. + +On Mac OS, the inter-process communication (IPC) between various Git +commands and the fsmonitor daemon is done via a Unix domain socket (UDS) -- a +special type of file -- which is supported by native Mac OS filesystems, +but not on network-mounted filesystems, NTFS, or FAT32. Other filesystems +may or may not have the needed support; the fsmonitor daemon is not guaranteed +to work with these filesystems and such use is considered experimental. + +By default, the socket is created in the `.git` directory, however, if the +`.git` directory is on a network-mounted filesystem, it will be instead be +created at `$HOME/.git-fsmonitor-*` unless `$HOME` itself is on a +network-mounted filesystem in which case you must set the configuration +variable `fsmonitor.socketDir` to the path of a directory on a Mac OS native +filesystem in which to create the socket file. + +If none of the above directories (`.git`, `$HOME`, or `fsmonitor.socketDir`) +is on a native Mac OS file filesystem the fsmonitor daemon will report an +error that will cause the daemon and the currently running command to exit. + +CONFIGURATION +------------- + +include::includes/cmd-config-section-all.txt[] + +include::config/fsmonitor--daemon.txt[] + GIT --- Part of the linkgit:git[1] suite diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html index 48de33e69..a9ec1dbf7 100644 --- a/howto/coordinate-embargoed-releases.html +++ b/howto/coordinate-embargoed-releases.html @@ -873,7 +873,7 @@ Thanks, diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index 0e8d7db56..686216cc3 100644 --- a/howto/keep-canonical-history-correct.html +++ b/howto/keep-canonical-history-correct.html @@ -938,7 +938,7 @@ tip of your master again and redo the two merges:

diff --git a/howto/maintain-git.html b/howto/maintain-git.html index 61ee5f47e..66010d891 100644 --- a/howto/maintain-git.html +++ b/howto/maintain-git.html @@ -1469,7 +1469,7 @@ $ git update-ref -d $mf/ai/topic diff --git a/howto/new-command.html b/howto/new-command.html index 842daa718..2fcf85bd0 100644 --- a/howto/new-command.html +++ b/howto/new-command.html @@ -863,7 +863,7 @@ letter [PATCH 0/n]. diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index 1f4a7bbf6..8af2dd691 100644 --- a/howto/rebase-from-internal-branch.html +++ b/howto/rebase-from-internal-branch.html @@ -895,7 +895,7 @@ the #1' commit.

diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index 266b14209..990d0ae02 100644 --- a/howto/rebuild-from-update-hook.html +++ b/howto/rebuild-from-update-hook.html @@ -847,7 +847,7 @@ This is still crude and does not protect against simultaneous diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index 5e4f2b23d..45542d1a0 100644 --- a/howto/recover-corrupted-blob-object.html +++ b/howto/recover-corrupted-blob-object.html @@ -880,7 +880,7 @@ thing.

diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index 122f45f8e..4f9f3f058 100644 --- a/howto/recover-corrupted-object-harder.html +++ b/howto/recover-corrupted-object-harder.html @@ -1189,7 +1189,7 @@ int main(int argc, char **argv) diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index 84383b02d..734cbe204 100644 --- a/howto/revert-a-faulty-merge.html +++ b/howto/revert-a-faulty-merge.html @@ -1025,7 +1025,7 @@ P---o---o---M---x---x---W---x---M2 diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index aee4e6d15..6c9dbe397 100644 --- a/howto/revert-branch-rebase.html +++ b/howto/revert-branch-rebase.html @@ -907,7 +907,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index d776d0c52..4f8bf933c 100644 --- a/howto/separating-topic-branches.html +++ b/howto/separating-topic-branches.html @@ -841,7 +841,7 @@ o---o"master" diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index ffe2c0189..be19d2d11 100644 --- a/howto/setup-git-server-over-http.html +++ b/howto/setup-git-server-over-http.html @@ -1071,7 +1071,7 @@ help diagnosing the problem, but removes security checks.

diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index 80bf34ca8..6ed30c679 100644 --- a/howto/update-hook-example.html +++ b/howto/update-hook-example.html @@ -930,7 +930,7 @@ that JC can make non-fast-forward pushes on it.

diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index cbe699c57..b1fb48e0e 100644 --- a/howto/use-git-daemon.html +++ b/howto/use-git-daemon.html @@ -791,7 +791,7 @@ a good practice to put the paths after a "--" separator.

diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index 8ca3ba198..a69c015ee 100644 --- a/howto/using-merge-subtree.html +++ b/howto/using-merge-subtree.html @@ -848,7 +848,7 @@ Please note that if the other project merges from you, then it will diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index 8ee55b8ae..a8e4d21f0 100644 --- a/howto/using-signed-tag-in-pull-request.html +++ b/howto/using-signed-tag-in-pull-request.html @@ -952,7 +952,7 @@ as part of the merge commit.

-- cgit 1.2.3-korg