On 11/02/22 11:38, Drew Gallatin wrote:
On Fri, Feb 11, 2022 at 4:38 AM Kristof Provost <k...@freebsd.org
<mailto:k...@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 <melif...@freebsd.org>
AuthorDate: 2022-01-08 16:14:47 +0000
Commit: Alexander V. Chernikov <melif...@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