Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Feb 2022 15:50:39 +0100
From:      Kristof Provost <kp@FreeBSD.org>
To:        Drew Gallatin <gallatin@netflix.com>
Cc:        Andrew Gallatin <gallatin@cs.duke.edu>, "Alexander V. Chernikov" <melifaro@freebsd.org>, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org, Conrad Meyer <cem@freebsd.org>, Andriy Gapon <avg@freebsd.org>
Subject:   Re: git: b1f7154cb125 - main - gitignore: ignore vim swap files & .rej/.orig
Message-ID:  <6CFFB341-C17E-427D-99B8-E640505B83CB@FreeBSD.org>
In-Reply-To: <CADLQ3sKdAvci47RxK=Vqg4JA0Wff2z9dcuDrByWNdendQu=M%2Bw@mail.gmail.com>
References:  <202201170935.20H9ZM3T069547@gitrepo.freebsd.org> <72061959-88f8-d2ee-b4e9-f09ca084411e@cs.duke.edu> <4FC1EDC4-9F20-4271-B468-715A1727AC8A@FreeBSD.org> <CADLQ3sKdAvci47RxK=Vqg4JA0Wff2z9dcuDrByWNdendQu=M%2Bw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--=_MailMate_DE4680ED-4562-4D6E-882A-8C0E25C4755B_=
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 11 Feb 2022, at 15:38, Drew Gallatin wrote:
> The problem seems to be that all of these solutions are processed 
> *FIRST*,
> before a .gitignore in the repo, so they cannot be used to negate a
> gitignore rule in the repo.  Eg:
>
The man page claims this:

     When deciding whether
     to ignore a path, Git normally checks gitignore patterns from 
multiple
     sources, with the following order of precedence, from highest to 
lowest
     (within one level of precedence, the last matching pattern decides 
the
     outcome):

And then lists command line, .gitignore file in the same directory as 
the path, or in any parent directory, GIT_DIR/info/exclude and 
core.excludesFile.

So it’s does check them in the order you’d expect, but apparently 
does not let GIT_DIR/info/exclude overrule .gitignore. That’s a bit 
unfortunate. I’d really have expected a ‘!*.orig’ in 
GIT_DIR/info/exclude to overrule the .gitignore, but I’ve also tested 
it and it doesn’t.

> This makes a stronger case that those who want to ignore .orig and 
> .rej
> files can add them to *their* local .gitignore, and we should back 
> them out
> of the .gitignore for the project.
>
I don’t really like it (for the usual reasons: .orig & friends should 
pretty much never get checked in, so .gitignore is appropriate. Your 
workflow is a bit unusual, so ideally you’d do the special thing.), 
but yeah, it looks like we should indeed remove them from .gitignore in 
the repo.

Kristof

--=_MailMate_DE4680ED-4562-4D6E-882A-8C0E25C4755B_=
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/xhtml; charset=3Dutf-8"=
>
</head>
<body><div style=3D"font-family: sans-serif;"><div class=3D"markdown" sty=
le=3D"white-space: normal;">
<p dir=3D"auto">On 11 Feb 2022, at 15:38, Drew Gallatin wrote:</p>
</div><div class=3D"plaintext" style=3D"white-space: normal;"><blockquote=
 style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #136=
BCE; color: #136BCE;"><p dir=3D"auto">The problem seems to be that all of=
 these solutions are processed *FIRST*,
<br>
before a .gitignore in the repo, so they cannot be used to negate a
<br>
gitignore rule in the repo.  Eg:</p>
<br></blockquote></div>
<div class=3D"markdown" style=3D"white-space: normal;">
<p dir=3D"auto">The man page claims this:</p>
<pre style=3D"margin-left: 15px; margin-right: 15px; padding: 5px; border=
: thin solid gray; overflow-x: auto; max-width: 90vw; background-color: #=
E4E4E4;"><code>When deciding whether
to ignore a path, Git normally checks gitignore patterns from multiple
sources, with the following order of precedence, from highest to lowest
(within one level of precedence, the last matching pattern decides the
outcome):
</code></pre>
<p dir=3D"auto">And then lists command line, .gitignore file in the same =
directory as the path, or in any parent directory, GIT_DIR/info/exclude a=
nd core.excludesFile.</p>
<p dir=3D"auto">So it=E2=80=99s does check them in the order you=E2=80=99=
d expect, but apparently does not let GIT_DIR/info/exclude overrule .giti=
gnore. That=E2=80=99s a bit unfortunate. I=E2=80=99d really have expected=
 a =E2=80=98!*.orig=E2=80=99 in GIT_DIR/info/exclude to overrule the .git=
ignore, but I=E2=80=99ve also tested it and it doesn=E2=80=99t.</p>
</div><div class=3D"plaintext" style=3D"white-space: normal;"><blockquote=
 style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #136=
BCE; color: #136BCE;"><p dir=3D"auto">This makes a stronger case that tho=
se who want to ignore .orig and .rej
<br>
files can add them to *their* local .gitignore, and we should back them o=
ut
<br>
of the .gitignore for the project.</p>
<br></blockquote></div>
<div class=3D"markdown" style=3D"white-space: normal;">
<p dir=3D"auto">I don=E2=80=99t really like it (for the usual reasons: .o=
rig &amp; friends should pretty much never get checked in, so .gitignore =
is appropriate. Your workflow is a bit unusual, so ideally you=E2=80=99d =
do the special thing.), but yeah, it looks like we should indeed remove t=
hem from .gitignore in the repo.</p>
<p dir=3D"auto">Kristof</p>

</div></div></body>

</html>

--=_MailMate_DE4680ED-4562-4D6E-882A-8C0E25C4755B_=--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6CFFB341-C17E-427D-99B8-E640505B83CB>