<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Documentation/gitfaq.txt, branch v2.46.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.46.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.46.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2024-07-10T04:24:42Z</updated>
<entry>
<title>gitfaq: add entry about syncing working trees</title>
<updated>2024-07-10T04:24:42Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2024-07-09T23:37:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=804ecbcfd1057794f7881fdea071a2069a005a64'/>
<id>urn:sha1:804ecbcfd1057794f7881fdea071a2069a005a64</id>
<content type='text'>
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 &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>gitfaq: give advice on using eol attribute in gitattributes</title>
<updated>2024-07-10T04:24:42Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2024-07-09T23:37:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=c98f78b806c93560c2a6c7eadda5449ac2a5432b'/>
<id>urn:sha1:c98f78b806c93560c2a6c7eadda5449ac2a5432b</id>
<content type='text'>
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 &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>gitfaq: add documentation on proxies</title>
<updated>2024-07-10T04:24:42Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2024-07-09T23:37:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=2101341484b093a7324ef8cd408af52c73cc5bea'/>
<id>urn:sha1:2101341484b093a7324ef8cd408af52c73cc5bea</id>
<content type='text'>
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 &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Update docs for change of default merge backend</title>
<updated>2021-08-05T22:35:02Z</updated>
<author>
<name>Elijah Newren</name>
<email>newren@gmail.com</email>
</author>
<published>2021-08-04T05:38:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f5a3c5e6377b806c320e4220ba26e467b4c4e992'/>
<id>urn:sha1:f5a3c5e6377b806c320e4220ba26e467b4c4e992</id>
<content type='text'>
Make it clear that `ort` is the default merge strategy now rather than
`recursive`, including moving `ort` to the front of the list of merge
strategies.

Signed-off-by: Elijah Newren &lt;newren@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>docs: explain how to deal with files that are always modified</title>
<updated>2020-09-21T04:29:02Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2020-09-20T23:22:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=087c61677c358091692ac6ce1de00bbfc9affdb1'/>
<id>urn:sha1:087c61677c358091692ac6ce1de00bbfc9affdb1</id>
<content type='text'>
Users frequently have problems where two filenames differ only in case,
causing one of those files to show up consistently as being modified.
Let's add a FAQ entry that explains how to deal with that.

In addition, let's explain another common case where files are
consistently modified, which is when files using a smudge or clean
filter have not been run through that filter.  Explain the way to fix
this as well.

Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>docs: explain why reverts are not always applied on merge</title>
<updated>2020-09-21T04:29:02Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2020-09-20T23:22:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=409f066716598d5050c34b7bb0e6859940428dcf'/>
<id>urn:sha1:409f066716598d5050c34b7bb0e6859940428dcf</id>
<content type='text'>
A common scenario is for a user to apply a change to one branch and
cherry-pick it into another, then later revert it in the first branch.
This results in the change being present when the two branches are
merged, which is confusing to many users.

We already have documentation for how this works in `git merge`, but it
is clear from the frequency with which this is asked that it's hard to
grasp.  We also don't explain to users that they are better off doing a
rebase in this case, which will do what they intended.  Let's add an
entry to the FAQ telling users what's happening and advising them to use
rebase here.

Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>docs: explain why squash merges are broken with long-running branches</title>
<updated>2020-09-21T04:29:02Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2020-09-20T23:22:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5065ce412ef083a02288c1972ea3d07423cace0e'/>
<id>urn:sha1:5065ce412ef083a02288c1972ea3d07423cace0e</id>
<content type='text'>
In many projects, squash merges are commonly used, primarily to keep a
tidy history in the face of developers who do not use logically
independent, bisectable commits.  As common as this is, this tends to
cause significant problems when squash merges are used to merge
long-running branches due to the lack of any new merge bases.  Even very
experienced developers may make this mistake, so let's add a FAQ entry
explaining why this is problematic and explaining that regular merge
commits should be used to merge two long-running branches.

Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ss/faq-ignore'</title>
<updated>2020-05-26T16:32:08Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-05-26T16:32:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=21a15f43c9ea179d8d236e0c8b33ca0ea67b39ef'/>
<id>urn:sha1:21a15f43c9ea179d8d236e0c8b33ca0ea67b39ef</id>
<content type='text'>
Doc markup fix.

* ss/faq-ignore:
  gitfaq: avoid validation error with older asciidoc
</content>
</entry>
<entry>
<title>gitfaq: avoid validation error with older asciidoc</title>
<updated>2020-05-25T18:59:26Z</updated>
<author>
<name>Todd Zullinger</name>
<email>tmz@pobox.com</email>
</author>
<published>2020-05-19T04:53:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5c752fff3967958e84ee804439d5c35d0be99471'/>
<id>urn:sha1:5c752fff3967958e84ee804439d5c35d0be99471</id>
<content type='text'>
When building with asciidoc-8.4.5 (as found on CentOS/Red Hat 6), the
period in the "[[files-in-.gitignore-are-tracked]]" anchor is not
properly parsed as a section:

  WARNING: gitfaq.txt: line 245: missing [[files-in-.gitignore-are-tracked]] section

The resulting XML file fails to validate with xmlto:

    xmlto: /git/Documentation/gitfaq.xml does not validate (status 3)
    xmlto: Fix document syntax or use --skip-validation option
     /git/Documentation/gitfaq.xml:3: element refentry: validity error :
     Element refentry content does not follow the DTD, expecting
     (beginpage? , indexterm* , refentryinfo? , refmeta? , (remark | link
     | olink | ulink)* , refnamediv+ , refsynopsisdiv? , (refsect1+ |
     refsection+)), got (refmeta refnamediv refsynopsisdiv refsect1
     refsect1 refsect1 refsect1 variablelist refsect1 refsect1 )
    Document /git/Documentation/gitfaq.xml does not validate

Let's avoid breaking users of platforms which ship an old version of
asciidoc, since the cost to do so is quite low.

Reported-by: Son Luong Ngoc &lt;sluongng@gmail.com&gt;
Signed-off-by: Todd Zullinger &lt;tmz@pobox.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ss/faq-fetch-pull'</title>
<updated>2020-05-13T19:19:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-05-13T19:19:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=94afbbb8de3d6a80602e7e27d559d2bdeffb0be4'/>
<id>urn:sha1:94afbbb8de3d6a80602e7e27d559d2bdeffb0be4</id>
<content type='text'>
Random bits of FAQ.

* ss/faq-fetch-pull:
  gitfaq: fetching and pulling a repository
</content>
</entry>
</feed>
