Date: Fri, 11 Feb 2022 11:58:31 -0300 From: Renato Botelho <garga@FreeBSD.org> To: Drew Gallatin <gallatin@netflix.com>, Kristof Provost <kp@freebsd.org> 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: <4f4f6a83-3def-4938-6e40-5460486cc415@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
On 11/02/22 11:38, Drew Gallatin wrote: > > > On Fri, Feb 11, 2022 at 4:38 AM Kristof Provost <kp@freebsd.org > <mailto:kp@freebsd.org>> wrote: > > __ > > On 11 Feb 2022, at 2:25, Andrew Gallatin wrote: > > On 1/17/22 04:35, Alexander V. Chernikov wrote: > > The branch main has been updated by melifaro: > > URL: > https://urldefense.com/v3/__https://cgit.FreeBSD.org/src/commit/?id=b1f7154cb12517162a51d19ae19ec3f2dee88e11__;!!OToaGQ!4Lozvj8S2Opxre6qHuywX_aNhwm1heXl1CyQyb0N5f_fiBJEkTQGhLzE7KlqqP9C7A$ > <https://urldefense.com/v3/__https://cgit.FreeBSD.org/src/commit/?id=b1f7154cb12517162a51d19ae19ec3f2dee88e11__;!!OToaGQ!4Lozvj8S2Opxre6qHuywX_aNhwm1heXl1CyQyb0N5f_fiBJEkTQGhLzE7KlqqP9C7A$> > > commit b1f7154cb12517162a51d19ae19ec3f2dee88e11 > Author: Alexander V. Chernikov <melifaro@FreeBSD.org> > AuthorDate: 2022-01-08 16:14:47 +0000 > Commit: Alexander V. Chernikov <melifaro@FreeBSD.org> > CommitDate: 2022-01-17 09:35:15 +0000 > > gitignore: ignore vim swap files & .rej/.orig > Reviewed by: cem, avg > MFC after: 2 weeks > > Hi, > > I was wondering if you might consider reverting this change? > Alternatively, can you teach me how to override this file > locally without carrying a diff? > > I'm asking because this makes life painful for my workflow. > > Having git clean be able to handle .orig and .rej is incredibly > handy when applying large patch sets. It makes finding a rejected > patch as simple as 'git clean -n | grep rej'. > > > Would ‘git clean -n -x’ work for you? > > |-x Don’t use the standard ignore rules (see gitignore(5)), but > still use the ignore rules given with -e options from the command > line. This allows removing all untracked files, including build > products. This can be used (possibly in conjunction with git restore > or git reset) to create a pristine working directory to test a clean > build. | > > > Yes, except it would delete our .obj directories, which I don't want. > The -x is how I figured out the .gitignore had been changed. > > Alternatively, the gitignore(5) man page also mentions that patterns > can be listed in > > |• Patterns read from $GIT_DIR/info/exclude. • Patterns read from > the file specified by the configuration variable core.excludesFile. | > > So I’d think you can overrule things you don’t like from the repo > gitignore file in $GIT_DIR/info/exclude or in your global git > configuration, especially combined with this: > > |• An optional prefix "!" which negates the pattern; any matching > file excluded by a previous pattern will become included again. It > is not possible to re-include a file if a parent directory of that > file is excluded. Git doesn’t list excluded directories for > performance reasons, so any patterns on contained files have no > effect, no matter where they are defined. Put a backslash ("\") in > front of the first "!" for patterns that begin with a literal "!", > for example, "\!important!.txt". | > > Kristof > > > 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: > > <9:32am>beast/gallatin:work1>kdump | grep NAMI | egrep > exclude\|gitignore | head > 42947 git NAMI "/home/gallatin/.gitignore" > 42947 git NAMI "/home/gallatin/.gitignore" > 42947 git NAMI "/data/ocafirmware/.git/info/exclude" > 42947 git NAMI "/data/ocafirmware/.git/info/exclude" > 42947 git NAMI ".gitignore" > 42947 git NAMI "FreeBSD/.gitignore" > > 9:34am>beast/gallatin:work1>cat ~/.gitignore > !*.orig > !*.rej > > <9:35am>beast/gallatin:work1>git clean -n | grep rej > <9:35am>beast/gallatin:work1>git clean -xn | grep rej > Would remove FreeBSD/sys/dev/mlx5/mlx5_en/en_hw_tls.h.rej > > 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. What about -e parameter? Something like: git clean -x -e '*.obj' -- Renato Botelho
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4f4f6a83-3def-4938-6e40-5460486cc415>