summaryrefslogtreecommitdiff
path: root/Documentation
AgeCommit message (Collapse)Author
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>
2024-07-22asciidoctor: fix `synopsis` renderingJohannes Schindelin
Since 76880f0510c (doc: git-clone: apply new documentation formatting guidelines, 2024-03-29), the synopsis of `git clone`'s manual page is rendered differently than before; Its parent commit did the same for `git init`. The result looks quite nice. When rendered with AsciiDoc, that is. When rendered using AsciiDoctor and displayed in a graphical web browser such as Firefox, Chrome, Edge, etc, the result is quite unpleasant to my eye, reading something like this: SYNOPSIS git clone [ --template= <template-directory>] [ -l ] [ -s ] [ --no-hardlinks ] [ -q ] [ [... continuing like this ...] The reason is that AsciiDoctor's default style sheet contains this (see https://github.com/asciidoctor/asciidoctor/blob/854923b15533/src/stylesheets/asciidoctor.css#L519-L521 for context): pre > code { display: block; } It is this `display: block` that forces the parts that are enclosed in `<code>` tags (such as the `git clone` or the `--template=` part) to be rendered on their own line. Side note: This seems not to affect console web browsers like `lynx` or `w3m`, most likely because most style sheet directions cannot be respected in text terminals and therefore they seem to punt on style sheets altogether. To fix this, let's apply the method recommended by AsciiDoctor in https://docs.asciidoctor.org/asciidoctor/latest/html-backend/default-stylesheet/#customize-docinfo to partially override AsciiDoctor's default style sheet so that the `<code>` sections of the synopsis are no longer each rendered on their own, individual lines. This fixes https://github.com/git-for-windows/git/issues/5063. Even on the Git home page, where AsciiDoctor's default stylesheet is _not_ used, this change resulted in some unpleasant rendering where not only the font is changed for the `<code>` sections of the synopsis, but padding and a different background color make the visual impression quite uneven. This has been addressed in the meantime, via https://github.com/git/git-scm.com/commit/a492d0565512. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-20doc: git-clone fix discrepancy between asciidoc and asciidoctorJean-Noël Avila
Asciidoc.py does not have the concept of generalized roles, whereas asciidoctor interprets [foo]`blah` as blah with role foo in the synopsis, making in effect foo disappear in the output. Note that square brackets not directly followed by an inline markup do not define a role, which is why we do not have the issue on other parts of the documentation. In order to get a consistant result across asciidoctor and asciidoc.py, the hack is to use the {empty} entity to split the bracket part from the inline format part. Signed-off-by: Jean-Noël Avila <jn.avila@free.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-18Git 2.46-rc1v2.46.0-rc1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-18Merge branch 'tb/pseudo-merge-reachability-bitmap'Junio C Hamano
Doc update. * tb/pseudo-merge-reachability-bitmap: Documentation/gitpacking: make sample configs listing blocks
2024-07-18Merge branch 'ps/pseudo-ref-terminology'Junio C Hamano
Doc update. * ps/pseudo-ref-terminology: Documentation/glossary: fix double word
2024-07-18Merge branch 'tb/doc-max-tree-depth-fix'Junio C Hamano
Doc update. * tb/doc-max-tree-depth-fix: Documentation: fix default value for core.maxTreeDepth
2024-07-17Post 2.46-rc0 batch #3Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-17Merge branch 'ps/doc-http-empty-cookiefile'Junio C Hamano
What happens when http.cookieFile gets the special value "" has been clarified in the documentation. * ps/doc-http-empty-cookiefile: doc: update http.cookieFile with in-memory cookie processing
2024-07-17Documentation: fix default value for core.maxTreeDepthTaylor Blau
When `core.maxTreeDepth` was originally introduced via be20128bfa (add core.maxTreeDepth config, 2023-08-31), its default value was 4096. There have since been a couple of updates to its default value that were not reflected in the documentation for `core.maxTreeDepth`: - 4d5693ba05 (lower core.maxTreeDepth default to 2048, 2023-08-31) - b64d78ad02 (max_tree_depth: lower it for MSVC to avoid stack overflows, 2023-11-01) Commit 4d5693ba05 lowers the default to 2048 for platforms with smaller stack sizes, and commit b64d78ad02 lowers the default even further when Git is compiled with MSVC. Neither of these changes were reflected in the documentation, which I noticed while merging newer releases back into GitHub's private fork (which contained the original implementation of `core.maxTreeDepth`). Update the documentation to reflect what the platform-specific default values are. Noticed-by: Keith W. Campbell <keithc@ca.ibm.com> Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-17Documentation/glossary: fix double wordMartin Ågren
Remove a spurious "that". Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-17Documentation/gitpacking: make sample configs listing blocksMartin Ågren
This document contains a few sample config snippets. At least with Asciidoctor, the section headers are rendered *more* indented than the variables that follow: [bitmapPseudoMerge "all"] pattern = "refs/" ... To address this, wrap these listings in AsciiDoc listing blocks. Remove the indentation from the section headings. This is similar to how we handle such sample config elsewhere, e.g., in config.txt. While we're here, fix the nearby "wiht" typo. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-16Post 2.46-rc0 batch #2Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-16Merge branch 'bc/gitfaq-more'Junio C Hamano
A handful of entries are added to the GitFAQ document. * bc/gitfaq-more: doc: mention that proxies must be completely transparent gitfaq: add entry about syncing working trees gitfaq: give advice on using eol attribute in gitattributes gitfaq: add documentation on proxies
2024-07-16Merge branch 'bc/http-proactive-auth'Junio C Hamano
The http transport can now be told to send request with authentication material without first getting a 401 response. * bc/http-proactive-auth: http: allow authenticating proactively
2024-07-16Merge branch 'ds/advice-sparse-index-expansion'Junio C Hamano
A new warning message is issued when a command has to expand a sparse index to handle working tree cruft that are outside of the sparse checkout. * ds/advice-sparse-index-expansion: advice: warn when sparse index expands
2024-07-15Post 2.46-rc0 batch #1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-15Merge branch 'ri/doc-show-branch-fix'Junio C Hamano
Docfix. * ri/doc-show-branch-fix: doc: fix the max number of branches shown by "show-branch"
2024-07-12Git 2.46-rc0v2.46.0-rc0Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-11doc: update http.cookieFile with in-memory cookie processingPiotr Szlazak
Documentation only mentions how to read cookies from the given file and how to save them to the file using http.saveCookies. But underlying libcURL allows the HTTP cookies used only in memory; cookies from the server will be accepted and sent back in successive requests within same connection, by using an empty string as the filename. Document this. Signed-off-by: Piotr Szlazak <piotr.szlazak@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-09http: allow authenticating proactivelybrian m. carlson
When making a request over HTTP(S), Git only sends authentication if it receives a 401 response. Thus, if a repository is open to the public for reading, Git will typically never ask for authentication for fetches and clones. However, there may be times when a user would like to authenticate nevertheless. For example, a forge may give higher rate limits to users who authenticate because they are easier to contact in case of excessive use. Or it may be useful for a known heavy user, such as an internal service, to proactively authenticate so its use can be monitored and, if necessary, throttled. Let's make this possible with a new option, "http.proactiveAuth". This option specifies a type of authentication which can be used to authenticate against the host in question. This is necessary because we lack the WWW-Authenticate header to provide us details; similarly, we cannot accept certain types of authentication because we require information from the server, such as a nonce or challenge, to successfully authenticate. If we're in auto mode and we got a username and password, set the authentication scheme to Basic. libcurl will not send authentication proactively unless there's a single choice of allowed authentication, and we know in this case we didn't get an authtype entry telling us what scheme to use, or we would have taken a different codepath and written the header ourselves. In any event, of the other schemes that libcurl supports, Digest and NTLM require a nonce or challenge, which means that they cannot work with proactive auth, and GSSAPI does not use a username and password at all, so Basic is the only logical choice among the built-in options. Note that the existing http_proactive_auth variable signifies proactive auth if there are already credentials, which is different from the functionality we're adding, which always seeks credentials even if none are provided. Nonetheless, t5540 tests the existing behavior for WebDAV-based pushes to an open repository without credentials, so we preserve it. While at first this may seem an insecure and bizarre decision, it may be that authentication is done with TLS certificates, in which case it might actually provide a quite high level of security. Expand the variable to use an enum to handle the additional cases and a helper function to distinguish our new cases from the old ones. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-09doc: mention that proxies must be completely transparentbrian m. carlson
We already document in the FAQ that proxies must be completely transparent and not modify the request or response in any way, but add similar documentation to the http.proxy entry. We know that while the FAQ is very useful, users sometimes are less likely to read in favor of the documentation specific to an option or command, so adding it in both places will help users be adequately informed. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-09gitfaq: add entry about syncing working treesbrian m. carlson
Users very commonly want to sync their working tree with uncommitted changes across machines, often to carry across in-progress work or stashes. Despite this not being a recommended approach, users want to do it and are not dissuaded by suggestions not to, so let's recommend a sensible technique. The technique that many users are using is their preferred cloud syncing service, which is a bad idea. Users have reported problems where they end up with duplicate files that won't go away (with names like "file.c 2"), broken references, oddly named references that have date stamps appended to them, missing objects, and general corruption and data loss. That's because almost all of these tools sync file by file, which is a great technique if your project is a single word processing document or spreadsheet, but is utterly abysmal for Git repositories because they don't necessarily snapshot the entire repository correctly. They also tend to sync the files immediately instead of when the repository is quiescent, so writing multiple files, as occurs during a commit or a gc, can confuse the tools and lead to corruption. We know that the old standby, rsync, is up to the task, provided that the repository is quiescent, so let's suggest that and dissuade people from using cloud syncing tools. Let's tell people about common things they should be aware of before doing this and that this is still potentially risky. Additionally, let's tell people that Git's security model does not permit sharing working trees across users in case they planned to do that. While we'd still prefer users didn't try to do this, hopefully this will lead them in a safer direction. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-09gitfaq: give advice on using eol attribute in gitattributesbrian m. carlson
In the FAQ, we tell people how to use the text attribute, but we fail to explain what to do with the eol attribute. As we ourselves have noticed, most shell implementations do not care for carriage returns, and as such, people will practically always want them to use LF endings. Similar things can be said for batch files on Windows, except with CRLF endings. Since these are common things to have in a repository, let's help users make a good decision by recommending that they use the gitattributes file to correctly check out the endings. In addition, let's correct the cross-reference to this question, which originally referred to "the following entry", even though a new entry has been inserted in between. The cross-reference notation should prevent this from occurring and provide a link in formats, such as HTML, which support that. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-09gitfaq: add documentation on proxiesbrian m. carlson
Many corporate environments and local systems have proxies in use. Note the situations in which proxies can be used and how to configure them. At the same time, note what standards a proxy must follow to work with Git. Explicitly call out certain classes that are known to routinely have problems reported various places online, including in the Git for Windows issue tracker and on Stack Overflow, and recommend against the use of such software, noting that they are associated with myriad security problems (including, for example, breaking sandboxing and image integrity[0], and, for TLS middleboxes, the use of insecure protocols and ciphers and lack of certificate verification[1]). Don't mention the specific nature of these security problems in the FAQ entry because they are extremely numerous and varied and we wish to keep the FAQ entry relatively brief. [0] https://issues.chromium.org/issues/40285192 [1] https://faculty.cc.gatech.edu/~mbailey/publications/ndss17_interception.pdf Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-08The ninteenth batchJunio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-08Merge branch 'tb/path-filter-fix'Junio C Hamano
The Bloom filter used for path limited history traversal was broken on systems whose "char" is unsigned; update the implementation and bump the format version to 2. * tb/path-filter-fix: bloom: introduce `deinit_bloom_filters()` commit-graph: reuse existing Bloom filters where possible object.h: fix mis-aligned flag bits table commit-graph: new Bloom filter version that fixes murmur3 commit-graph: unconditionally load Bloom filters bloom: prepare to discard incompatible Bloom filters bloom: annotate filters with hash version repo-settings: introduce commitgraph.changedPathsVersion t4216: test changed path filters with high bit paths t/helper/test-read-graph: implement `bloom-filters` mode bloom.h: make `load_bloom_filter_from_graph()` public t/helper/test-read-graph.c: extract `dump_graph_info()` gitformat-commit-graph: describe version 2 of BDAT commit-graph: ensure Bloom filters are read with consistent settings revision.c: consult Bloom filters for root commits t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()`
2024-07-08Merge branch 'ss/doc-eol-attr-fix'Junio C Hamano
Doc update. * ss/doc-eol-attr-fix: doc: fix case error of eol attribute in example
2024-07-08Merge branch 'jc/archive-prefix-with-add-virtual-file'Junio C Hamano
"git archive --add-virtual-file=<path>:<contents>" never paid attention to the --prefix=<prefix> option but the documentation said it would. The documentation has been corrected. * jc/archive-prefix-with-add-virtual-file: archive: document that --add-virtual-file takes full path
2024-07-08advice: warn when sparse index expandsDerrick Stolee
Typically, forcing a sparse index to expand to a full index means that Git could not determine the status of a file outside of the sparse-checkout and needed to expand sparse trees into the full list of sparse blobs. This operation can be very slow when the sparse-checkout is much smaller than the full tree at HEAD. When users are in this state, there is usually a modified or untracked file outside of the sparse-checkout mentioned by the output of 'git status'. There are a number of reasons why this is insufficient: 1. Users may not have a full understanding of which files are inside or outside of their sparse-checkout. This is more common in monorepos that manage the sparse-checkout using custom tools that map build dependencies into sparse-checkout definitions. 2. In some cases, an empty directory could exist outside the sparse-checkout and these empty directories are not reported by 'git status' and friends. 3. If the user has '.gitignore' or 'exclude' files, then 'git status' will squelch the warnings and not demonstrate any problems. In order to help users who are in this state, add a new advice message to indicate that a sparse index is expanded to a full index. This message should be written at most once per process, so add a static global 'give_advice_on_expansion' to sparse-index.c. Further, there is a case in 'git sparse-checkout set' that uses the sparse index as an in-memory data structure (even when writing a full index) so we need to disable the message in that kind of case. The t1092-sparse-checkout-compatibility.sh test script compares the behavior of several Git commands across full and sparse repositories, including sparse repositories with and without a sparse index. We need to disable the advice in the sparse-index repo to avoid differences in stderr. By leaving the advice on in the sparse-checkout repo (without the sparse index), we can test the behavior of disabling the advice in convert_to_sparse(). (Indeed, these tests are how that necessity was discovered.) Add a test that reenables the advice and demonstrates that the message is output. The advice message is defined outside of expand_index() to avoid super- wide lines. It is also defined as a macro to avoid compile issues with -Werror=format-security. Signed-off-by: Derrick Stolee <stolee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-08doc: fix the max number of branches shown by "show-branch"Rikita Ishikawa
The number to be displayed is calculated by the following defined in object.h: #define REV_SHIFT 2 #define MAX_REVS (FLAG_BITS - REV_SHIFT) FLAG_BITS is currently 28, so 26 is the correct number. Signed-off-by: Rikita Ishikawa <lagrange.resolvent@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-02Sync with 'maint'Junio C Hamano
2024-07-02The eighteenth batchJunio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-02Merge branch 'jk/remote-wo-url'Junio C Hamano
Memory ownership rules for the in-core representation of remote.*.url configuration values have been straightened out, which resulted in a few leak fixes and code clarification. * jk/remote-wo-url: remote: drop checks for zero-url case remote: always require at least one url in a remote t5801: test remote.*.vcs config t5801: make remote-testgit GIT_DIR setup more robust remote: allow resetting url list config: document remote.*.url/pushurl interaction remote: simplify url/pushurl selection remote: use strvecs to store remote url/pushurl remote: transfer ownership of memory in add_url(), etc remote: refactor alias_url() memory ownership archive: fix check for missing url
2024-07-02Yet another batch of post 2.45.2 updates from the 'master' frontJunio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-07-02Merge branch 'jc/no-default-attr-tree-in-bare' into maint-2.45Junio C Hamano
Earlier we stopped using the tree of HEAD as the default source of attributes in a bare repository, but failed to document it. This has been corrected. * jc/no-default-attr-tree-in-bare: attr.tree: HEAD:.gitattributes is no longer the default in a bare repo
2024-07-02Merge branch 'pw/rebase-i-error-message' into maint-2.45Junio C Hamano
When the user adds to "git rebase -i" instruction to "pick" a merge commit, the error experience is not pleasant. Such an error is now caught earlier in the process that parses the todo list. * pw/rebase-i-error-message: rebase -i: improve error message when picking merge rebase -i: pass struct replay_opts to parse_insn_line()
2024-06-28Sync with 'maint'Junio C Hamano
2024-06-28More post 2.45.2 updates from the 'master' frontJunio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-06-28Merge branch 'ds/doc-add-interactive-singlekey' into maint-2.45Junio C Hamano
Doc update. * ds/doc-add-interactive-singlekey: doc: interactive.singleKey is disabled by default
2024-06-28Merge branch 'jc/safe-directory-leading-path' into maint-2.45Junio C Hamano
The safe.directory configuration knob has been updated to optionally allow leading path matches. * jc/safe-directory-leading-path: safe.directory: allow "lead/ing/path/*" match
2024-06-28Merge branch 'jc/rev-parse-fatal-doc' into maint-2.45Junio C Hamano
Doc update. * jc/rev-parse-fatal-doc: rev-parse: document how --is-* options work outside a repository
2024-06-28Merge branch 'jc/doc-diff-name-only' into maint-2.45Junio C Hamano
The documentation for "git diff --name-only" has been clarified that it is about showing the names in the post-image tree. * jc/doc-diff-name-only: diff: document what --name-only shows
2024-06-28Merge branch 'dm/update-index-doc-fix' into maint-2.45Junio C Hamano
Doc fix. * dm/update-index-doc-fix: documentation: git-update-index: add --show-index-version to synopsis
2024-06-28Merge branch 'vd/doc-merge-tree-x-option' into maint-2.45Junio C Hamano
Doc update. * vd/doc-merge-tree-x-option: Documentation/git-merge-tree.txt: document -X
2024-06-28Merge branch 'js/for-each-repo-keep-going' into maint-2.45Junio C Hamano
A scheduled "git maintenance" job is expected to work on all repositories it knows about, but it stopped at the first one that errored out. Now it keeps going. * js/for-each-repo-keep-going: maintenance: running maintenance should not stop on errors for-each-repo: optionally keep going on an error
2024-06-27The seventeenth batchJunio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>