summaryrefslogtreecommitdiff
path: root/Documentation
AgeCommit message (Collapse)Author
2024-11-26Git 2.46.3v2.46.3Johannes Schindelin
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-11-26Sync with 2.45.3Johannes Schindelin
* maint-2.45: Git 2.45.3 Git 2.44.3 Git 2.43.6 Git 2.42.4 Git 2.41.3 Git 2.40.4 credential: disallow Carriage Returns in the protocol by default credential: sanitize the user prompt credential_format(): also encode <host>[:<port>] t7300: work around platform-specific behaviour with long paths on MinGW compat/regex: fix argument order to calloc(3) mingw: drop bogus (and unneeded) declaration of `_pgmptr` ci: remove 'Upload failed tests' directories' step from linux32 jobs
2024-11-26Git 2.45.3v2.45.3Johannes Schindelin
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-11-26Sync with 2.44.3Johannes Schindelin
* maint-2.44: Git 2.44.3 Git 2.43.6 Git 2.42.4 Git 2.41.3 Git 2.40.4 credential: disallow Carriage Returns in the protocol by default credential: sanitize the user prompt credential_format(): also encode <host>[:<port>] t7300: work around platform-specific behaviour with long paths on MinGW compat/regex: fix argument order to calloc(3) mingw: drop bogus (and unneeded) declaration of `_pgmptr` ci: remove 'Upload failed tests' directories' step from linux32 jobs
2024-11-26Git 2.44.3v2.44.3Johannes Schindelin
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-11-26Sync with 2.43.6Johannes Schindelin
* maint-2.43: Git 2.43.6 Git 2.42.4 Git 2.41.3 Git 2.40.4 credential: disallow Carriage Returns in the protocol by default credential: sanitize the user prompt credential_format(): also encode <host>[:<port>] t7300: work around platform-specific behaviour with long paths on MinGW compat/regex: fix argument order to calloc(3) mingw: drop bogus (and unneeded) declaration of `_pgmptr` ci: remove 'Upload failed tests' directories' step from linux32 jobs
2024-11-26Git 2.43.6v2.43.6Johannes Schindelin
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-11-26Sync with 2.42.4Johannes Schindelin
* maint-2.42: Git 2.42.4 Git 2.41.3 Git 2.40.4 credential: disallow Carriage Returns in the protocol by default credential: sanitize the user prompt credential_format(): also encode <host>[:<port>] t7300: work around platform-specific behaviour with long paths on MinGW compat/regex: fix argument order to calloc(3) mingw: drop bogus (and unneeded) declaration of `_pgmptr` ci: remove 'Upload failed tests' directories' step from linux32 jobs
2024-11-26Git 2.42.4v2.42.4Johannes Schindelin
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-11-26Sync with 2.41.3Johannes Schindelin
* maint-2.41: Git 2.41.3 Git 2.40.4 credential: disallow Carriage Returns in the protocol by default credential: sanitize the user prompt credential_format(): also encode <host>[:<port>] t7300: work around platform-specific behaviour with long paths on MinGW compat/regex: fix argument order to calloc(3) mingw: drop bogus (and unneeded) declaration of `_pgmptr` ci: remove 'Upload failed tests' directories' step from linux32 jobs
2024-11-26Git 2.41.3v2.41.3Johannes Schindelin
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-11-26Sync with 2.40.4Johannes Schindelin
* maint-2.40: Git 2.40.4 credential: disallow Carriage Returns in the protocol by default credential: sanitize the user prompt credential_format(): also encode <host>[:<port>] t7300: work around platform-specific behaviour with long paths on MinGW compat/regex: fix argument order to calloc(3) mingw: drop bogus (and unneeded) declaration of `_pgmptr` ci: remove 'Upload failed tests' directories' step from linux32 jobs
2024-11-26Git 2.40.4v2.40.4Johannes Schindelin
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-11-26credential: disallow Carriage Returns in the protocol by defaultJohannes Schindelin
While Git has documented that the credential protocol is line-based, with newlines as terminators, the exact shape of a newline has not been documented. From Git's perspective, which is firmly rooted in the Linux ecosystem, it is clear that "a newline" means a Line Feed character. However, even Git's credential protocol respects Windows line endings (a Carriage Return character followed by a Line Feed character, "CR/LF") by virtue of using `strbuf_getline()`. There is a third category of line endings that has been used originally by MacOS, and that is respected by the default line readers of .NET and node.js: bare Carriage Returns. Git cannot handle those, and what is worse: Git's remedy against CVE-2020-5260 does not catch when credential helpers are used that interpret bare Carriage Returns as newlines. Git Credential Manager addressed this as CVE-2024-50338, but other credential helpers may still be vulnerable. So let's not only disallow Line Feed characters as part of the values in the credential protocol, but also disallow Carriage Return characters. In the unlikely event that a credential helper relies on Carriage Returns in the protocol, introduce an escape hatch via the `credential.protectProtocol` config setting. This addresses CVE-2024-52006. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-11-26credential: sanitize the user promptJohannes Schindelin
When asking the user interactively for credentials, we want to avoid misleading them e.g. via control sequences that pretend that the URL targets a trusted host when it does not. While Git learned, over the course of the preceding commits, to disallow URLs containing URL-encoded control characters by default, credential helpers are still allowed to specify values very freely (apart from Line Feed and NUL characters, anything is allowed), and this would allow, say, a username containing control characters to be specified that would then be displayed in the interactive terminal prompt asking the user for the password, potentially sending those control characters directly to the terminal. This is undesirable because control characters can be used to mislead users to divulge secret information to untrusted sites. To prevent such an attack vector, let's add a `git_prompt()` that forces the displayed text to be sanitized, i.e. displaying question marks instead of control characters. Note: While this commit's diff changes a lot of `user@host` strings to `user%40host`, which may look suspicious on the surface, there is a good reason for that: this string specifies a user name, not a <username>@<hostname> combination! In the context of t5541, the actual combination looks like this: `user%40@127.0.0.1:5541`. Therefore, these string replacements document a net improvement introduced by this commit, as `user@host@127.0.0.1` could have left readers wondering where the user name ends and where the host name begins. Hinted-at-by: Jeff King <peff@peff.net> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-09-23Git 2.46.2v2.46.2Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-09-23Merge branch 'jc/doc-skip-fetch-all-and-prefetch' into maint-2.46Junio C Hamano
Doc updates. * jc/doc-skip-fetch-all-and-prefetch: doc: remote.*.skip{DefaultUpdate,FetchAll} stops prefetch
2024-09-16Start preparing for Git 2.46.2Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-09-13Git 2.46.1v2.46.1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-09-13Merge branch 'jc/config-doc-update' into maint-2.46Junio C Hamano
Docfix. * jc/config-doc-update: git-config.1: fix description of --regexp in synopsis git-config.1: --get-all description update
2024-09-13Merge branch 'aa/cat-file-batch-output-doc' into maint-2.46Junio C Hamano
Docfix. * aa/cat-file-batch-output-doc: docs: explain the order of output in the batched mode of git-cat-file(1)
2024-09-13Merge branch 'cl/config-regexp-docfix' into maint-2.46Junio C Hamano
Docfix. * cl/config-regexp-docfix: doc: replace 3 dash with correct 2 dash in git-config(1)
2024-09-13Merge branch 'jc/coding-style-c-operator-with-spaces' into maint-2.46Junio C Hamano
Write down whitespacing rules around C opeators. * jc/coding-style-c-operator-with-spaces: CodingGuidelines: spaces around C operators
2024-09-12Another batch of topics for 2.46.1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-09-12Merge branch 'jc/grammo-fixes' into maint-2.46Junio C Hamano
Doc updates. * jc/grammo-fixes: doc: grammofix in git-diff-tree tutorial: grammofix
2024-09-12Merge branch 'jc/how-to-maintain-updates' into maint-2.46Junio C Hamano
Doc updates. * jc/how-to-maintain-updates: howto-maintain: mention preformatted docs
2024-09-09doc: remote.*.skip{DefaultUpdate,FetchAll} stops prefetchJunio C Hamano
Back when 7cc91a2f (Add the configuration option skipFetchAll, 2009-11-09) added for the sole purpose of adding skipFetchAll as a synonym to skipDefaultUpdate, there was no explanation about the reason why it was needed., but these two configuration variables mean exactly the same thing. Also, when we taught the "prefetch" task to "git maintenance" later, we did make it pay attention to the setting, but we forgot to document it. Document these variables as synonyms that collectively implements the last-one-wins semantics, and also clarify that the prefetch task is also controlled by this variable. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-26git-config.1: fix description of --regexp in synopsisJunio C Hamano
The synopsis says --regexp=<regexp> but the --regexp option is a Boolean that says "the name given is not literal, but a pattern to match the name". Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-26git-config.1: --get-all description updateJunio C Hamano
"git config --get-all foo.bar" shows all values for the foo.bar variable, but does not give the variable name in each output entry. Hence it is equivalent to "git config get --all foo.bar", without "--show-names", in the more modern syntax. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-26A bit more topics for 2.46.x maintenance trackJunio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-26Merge branch 'jc/document-use-of-local' into maint-2.46Junio C Hamano
Doc update. * jc/document-use-of-local: doc: note that AT&T ksh does not work with our test suite
2024-08-26Merge branch 'jr/ls-files-expand-literal-doc' into maint-2.46Junio C Hamano
Docfix. * jr/ls-files-expand-literal-doc: doc: fix hex code escapes in git-ls-files
2024-08-23doc: replace 3 dash with correct 2 dash in git-config(1)Celeste Liu
Commit 4e51389000 (builtin/config: introduce "get" subcommand, 2024-05-06) introduced this typo. It uses 3 dashes for regexp argument instead of correct 2 dashes. Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-22docs: explain the order of output in the batched mode of git-cat-file(1)ahmed akef
The batched mode of git-cat-file(1) reads multiple objects from stdin and prints their respective contents to stdout. The order in which those objects are printed is not documented and may not be immediately obvious to the user. Document it. Signed-off-by: ahmed akef <aemed.akef.1@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-20CodingGuidelines: spaces around C operatorsJunio C Hamano
As we have operated with "write like how your surrounding code is written" for too long, after a huge code drop from another project, we'll end up being inconsistent before such an imported code is cleaned up. We have many uses of cast operator with a space before its operand, mostly in the reftable code. Spell the convention out before it spreads to other places. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-16Prepare for 2.46.1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-16Merge branch 'jc/doc-rebase-fuzz-vs-offset-fix' into maint-2.46Junio C Hamano
"git rebase --help" referred to "offset" (the difference between the location a change was taken from and the change gets replaced) incorrectly and called it "fuzz", which has been corrected. * jc/doc-rebase-fuzz-vs-offset-fix: doc: difference in location to apply is "offset", not "fuzz"
2024-08-16Merge branch 'tn/doc-commit-fix' into maint-2.46Junio C Hamano
Docfix. * tn/doc-commit-fix: doc: remove dangling closing parenthesis
2024-08-16Merge branch 'jt/doc-post-receive-hook-update' into maint-2.46Junio C Hamano
Doc update. * jt/doc-post-receive-hook-update: doc: clarify post-receive hook behavior
2024-08-16Merge branch 'jc/how-to-maintain-updates' (early part) into maint-2.46Junio C Hamano
* 'jc/how-to-maintain-updates' (early part): howto-maintain: update daily tasks howto-maintain: cover a whole development cycle
2024-08-16Merge branch 'jc/doc-one-shot-export-with-shell-func' into maint-2.46Junio C Hamano
It has been documented that we avoid "VAR=VAL shell_func" and why. * jc/doc-one-shot-export-with-shell-func: CodingGuidelines: document a shell that "fails" "VAR=VAL shell_func"
2024-08-14howto-maintain: mention preformatted docsJunio C Hamano
Forgot to mention that the preformatted documentation repositories are updated every time the master branch of the project advances. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-09doc: grammofix in git-diff-treeJunio C Hamano
Describe in present tense what the option does when it is given. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-08-09tutorial: grammofixJunio C Hamano
We say "these", so "range notations" must be plural. Reported-by: Furkan Akkurt Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-26doc: fix hex code escapes in git-ls-filesJayson Rhynas
The --format option on the git-ls-files man page states that `%xx` interpolates to the character with hex code `xx`. This mirrors the documentation and behavior of `git for-each-ref --format=...`. However, in reality it requires the character with code `XX` to be specified as `%xXX`, mirroring the behaviour of `git log --format`. Signed-off-by: Jayson Rhynas <jayrhynas@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-25doc: difference in location to apply is "offset", not "fuzz"Junio C Hamano
The documentation to "git rebase" says that the line numbers (in the rebased change) may not exactly be the same as the line numbers the change gets replayed on top of the new base, but uses a wrong noun "fuzz". It should have said "offset". They are both terms of art. "fuzz" is about context lines not exactly matching. "offset" is about the difference in the location that a change was taken from the original and the change gets replayed on the target. "offset" is often inevitable and part of normal life. "fuzz" on the other hand is often a sign of trouble (and indeed "Git" refuses to apply a change with "fuzz", except there are options to be fuzzy about whitespaces). Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-23Git 2.46-rc2v2.46.0-rc2Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-23Merge branch 'js/doc-markup-updates-fix'Junio C Hamano
Work around asciidoctor's css that renders `monospace` material in the SYNOPSIS section of manual pages as block elements. * js/doc-markup-updates-fix: Doc: fix Asciidoctor css workaround asciidoctor: fix `synopsis` rendering
2024-07-23Merge branch 'ja/doc-markup-updates-fix'Junio C Hamano
Fix documentation mark-up regression in 2.45. * ja/doc-markup-updates-fix: doc: git-clone fix discrepancy between asciidoc and asciidoctor
2024-07-23Doc: fix Asciidoctor css workaroundJunio C Hamano
The previous step introduced docinfo.html to be used to tweak the CSS used by the asciidoctor, that by default renders <code> inside <pre> as a block element, breaking the SYNOPSIS section of a few pages that adopted a new convention we use since Git 2.45. But in this project, HTML files are all generated. We do not force any human to write HTML by hand, which is an unusual and cruel punishment. "*.html" is in the .gitignore file, and "make clean" removes them. Having a tracked .html file makes "make clean" make the tree dirty by removing the tracked docinfo.html file. Let's do an obvious, minimum and stupid workaround to generate that file at runtime instead. The mark-up is being rethought in a major way for the next development cycle, and the CSS workaround we added in the previous step may have to adjusted, possibly in a large way, anyway. Signed-off-by: Junio C Hamano <gitster@pobox.com>