diff mbox series

[01/11,v2] gitignore: Move ignores from global to subdirectories

Message ID 202009092152.089LqrKZ039176@m5p.com (mailing list archive)
State Superseded
Headers show
Series [01/11,v2] gitignore: Move ignores from global to subdirectories | expand

Commit Message

Elliott Mitchell Aug. 27, 2020, 7:09 p.m. UTC
Subdirectories which have .gitignore files should not be referenced in
the global .gitignore files.  Move several lines to appropriate subdirs.

When moved to the subdirectories the slash after the directory name is
left on as otherwise the names potentially become unanchored (without a
leading slash, "foo" also matches "bar/foo").

As a final step these were either sorted or formatted to match existing
file format.

Signed-off-by: Elliott Mitchell <ehem+xen@m5p.com>

---
Changes in v2:
- More information in commit message
- Rebased onto correct branch before submission
---
 .gitignore                   | 31 -------------------------------
 tools/misc/.gitignore        | 23 ++++++++++++++++++++++-
 xen/tools/kconfig/.gitignore |  6 ++++++
 xen/xsm/flask/.gitignore     |  9 ++++++++-
 4 files changed, 36 insertions(+), 33 deletions(-)

Comments

Jan Beulich Sept. 10, 2020, 9:13 a.m. UTC | #1
On 27.08.2020 21:09, Elliott Mitchell wrote:
> --- a/tools/misc/.gitignore
> +++ b/tools/misc/.gitignore
> @@ -1 +1,22 @@
> -xen-ucode
> +/cpuperf/cpuperf-perfcntr
> +/cpuperf/cpuperf-xen
> +/lowmemd
> +/xc_shadow
> +/xen-cpuid
> +/xen-detect
> +/xen-diag
> +/xen-hptool
> +/xen-hvmcrash
> +/xen-hvmctx
> +/xen-livepatch
> +/xen-lowmemd
> +/xen-mfndump
> +/xen-tmem-list-parse
> +/xen-ucode
> +/xen_cpuperf
> +/xencov
> +/xenhypfs
> +/xenlockprof
> +/xenperf
> +/xenpm
> +/xenwatchdogd

The earlier discussion had left me with the impression that the ./
form would be slightly better to use to avoid puzzling the
occasional reader. Did I overlook or mis-interpret anything? Did you
come to the conclusion that / is better, but forgot to mention the
"why" in at least the cover letter?

Jan
Elliott Mitchell Sept. 10, 2020, 6:22 p.m. UTC | #2
On Thu, Sep 10, 2020 at 11:13:26AM +0200, Jan Beulich wrote:
> On 27.08.2020 21:09, Elliott Mitchell wrote:
> > --- a/tools/misc/.gitignore
> > +++ b/tools/misc/.gitignore
> > @@ -1 +1,22 @@
> > -xen-ucode
> > +/cpuperf/cpuperf-perfcntr
> > +/cpuperf/cpuperf-xen
> > +/lowmemd
> > +/xc_shadow
> > +/xen-cpuid
> > +/xen-detect
> > +/xen-diag
> > +/xen-hptool
> > +/xen-hvmcrash
> > +/xen-hvmctx
> > +/xen-livepatch
> > +/xen-lowmemd
> > +/xen-mfndump
> > +/xen-tmem-list-parse
> > +/xen-ucode
> > +/xen_cpuperf
> > +/xencov
> > +/xenhypfs
> > +/xenlockprof
> > +/xenperf
> > +/xenpm
> > +/xenwatchdogd
> 
> The earlier discussion had left me with the impression that the ./
> form would be slightly better to use to avoid puzzling the
> occasional reader. Did I overlook or mis-interpret anything? Did you
> come to the conclusion that / is better, but forgot to mention the
> "why" in at least the cover letter?

Some of Xen's documentation isn't that great, even though most of `git`'s
documentation is quite good a few pieces aren't so great.  The
information on how .gitignore files are treated is less than wonderful.

I had *thought* "./" would restrict to capturing files in the current
directory, but after some testing and then some reading of the
documentation (oh, `git check-ignore` is a thing).  Then reading the
documentation again.  Then reading the documentation *again*.  I found an
initial "/" restricts a pattern to the current directory, but `git`
doesn't handle "./".

Apparently a pattern with a slash *anywhere* besides the *end* (which
includes the very start) will be treated as a full path relative to the
current directory.  As such "foo/bar" and "/foo/bar" are equivalent.  Yet
"foo" and "/foo" are *not* equivalent.

Meanwhile a slash at the end tells `git` to *only* match a directory.

Then you have "**" which will match zero or more directories.
Jan Beulich Sept. 11, 2020, 6:29 a.m. UTC | #3
On 10.09.2020 20:22, Elliott Mitchell wrote:
> On Thu, Sep 10, 2020 at 11:13:26AM +0200, Jan Beulich wrote:
>> On 27.08.2020 21:09, Elliott Mitchell wrote:
>>> --- a/tools/misc/.gitignore
>>> +++ b/tools/misc/.gitignore
>>> @@ -1 +1,22 @@
>>> -xen-ucode
>>> +/cpuperf/cpuperf-perfcntr
>>> +/cpuperf/cpuperf-xen
>>> +/lowmemd
>>> +/xc_shadow
>>> +/xen-cpuid
>>> +/xen-detect
>>> +/xen-diag
>>> +/xen-hptool
>>> +/xen-hvmcrash
>>> +/xen-hvmctx
>>> +/xen-livepatch
>>> +/xen-lowmemd
>>> +/xen-mfndump
>>> +/xen-tmem-list-parse
>>> +/xen-ucode
>>> +/xen_cpuperf
>>> +/xencov
>>> +/xenhypfs
>>> +/xenlockprof
>>> +/xenperf
>>> +/xenpm
>>> +/xenwatchdogd
>>
>> The earlier discussion had left me with the impression that the ./
>> form would be slightly better to use to avoid puzzling the
>> occasional reader. Did I overlook or mis-interpret anything? Did you
>> come to the conclusion that / is better, but forgot to mention the
>> "why" in at least the cover letter?
> 
> Some of Xen's documentation isn't that great, even though most of `git`'s
> documentation is quite good a few pieces aren't so great.  The
> information on how .gitignore files are treated is less than wonderful.
> 
> I had *thought* "./" would restrict to capturing files in the current
> directory, but after some testing and then some reading of the
> documentation (oh, `git check-ignore` is a thing).  Then reading the
> documentation again.  Then reading the documentation *again*.  I found an
> initial "/" restricts a pattern to the current directory, but `git`
> doesn't handle "./".
> 
> Apparently a pattern with a slash *anywhere* besides the *end* (which
> includes the very start) will be treated as a full path relative to the
> current directory.  As such "foo/bar" and "/foo/bar" are equivalent.  Yet
> "foo" and "/foo" are *not* equivalent.

But then ./foo and /foo ought to be equivalent, too. Unless of
course the . gets in the way of matching names in the first
place ...

Jan
Elliott Mitchell Sept. 11, 2020, 5:41 p.m. UTC | #4
On Fri, Sep 11, 2020 at 08:29:51AM +0200, Jan Beulich wrote:
> On 10.09.2020 20:22, Elliott Mitchell wrote:
> > I had *thought* "./" would restrict to capturing files in the current
> > directory, but after some testing and then some reading of the
> > documentation (oh, `git check-ignore` is a thing).  Then reading the
> > documentation again.  Then reading the documentation *again*.  I found an
> > initial "/" restricts a pattern to the current directory, but `git`
> > doesn't handle "./".
> > 
> > Apparently a pattern with a slash *anywhere* besides the *end* (which
> > includes the very start) will be treated as a full path relative to the
> > current directory.  As such "foo/bar" and "/foo/bar" are equivalent.  Yet
> > "foo" and "/foo" are *not* equivalent.
> 
> But then ./foo and /foo ought to be equivalent, too. Unless of
> course the . gets in the way of matching names in the first
> place ...

Could be something along those lines.  Note gitignore is a function of
*git* *simulating* the actions involved in accessing files, not something
pretending to be all that close to an actual kernel implementation.

The result is testing with `git check-ignore` indicated "./" did not
work, so I had to use "/" which looks odd in a suspicions way.  I rather
liked "./", but with reality intruding.
diff mbox series

Patch

diff --git a/.gitignore b/.gitignore
index 36ce2ea104..429a484ecc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -204,21 +204,6 @@  tools/libxl/ssdt*
 tools/libxl/testenum
 tools/libxl/testenum.c
 tools/libxl/tmp.*
-tools/misc/cpuperf/cpuperf-perfcntr
-tools/misc/cpuperf/cpuperf-xen
-tools/misc/xc_shadow
-tools/misc/xen_cpuperf
-tools/misc/xen-cpuid
-tools/misc/xen-detect
-tools/misc/xen-diag
-tools/misc/xen-tmem-list-parse
-tools/misc/xen-livepatch
-tools/misc/xenperf
-tools/misc/xenpm
-tools/misc/xen-hvmctx
-tools/misc/xenlockprof
-tools/misc/lowmemd
-tools/misc/xencov
 tools/pkg-config/*
 tools/qemu-xen-build
 tools/xentrace/xenalyze
@@ -315,17 +300,7 @@  xen/include/xen/lib/x86/cpuid-autogen.h
 xen/test/livepatch/config.h
 xen/test/livepatch/expect_config.h
 xen/test/livepatch/*.livepatch
-xen/tools/kconfig/.tmp_gtkcheck
-xen/tools/kconfig/.tmp_qtcheck
 xen/tools/symbols
-xen/xsm/flask/flask-policy.S
-xen/xsm/flask/include/av_perm_to_string.h
-xen/xsm/flask/include/av_permissions.h
-xen/xsm/flask/include/class_to_string.h
-xen/xsm/flask/include/flask.h
-xen/xsm/flask/include/initial_sid_to_string.h
-xen/xsm/flask/policy.*
-xen/xsm/flask/xenpolicy-*
 tools/flask/policy/policy.conf
 tools/flask/policy/xenpolicy-*
 xen/xen
@@ -357,8 +332,6 @@  tools/include/xen-foreign/arm32.h
 tools/include/xen-foreign/arm64.h
 
 .git
-tools/misc/xen-hptool
-tools/misc/xen-mfndump
 tools/libs/toolcore/include/_*.h
 tools/libxc/_*.[ch]
 tools/libxl/_*.[ch]
@@ -370,10 +343,6 @@  tools/libxl/test_timedereg
 tools/libxl/test_fdderegrace
 tools/firmware/etherboot/eb-roms.h
 tools/firmware/etherboot/gpxe-git-snapshot.tar.gz
-tools/misc/xenhypfs
-tools/misc/xenwatchdogd
-tools/misc/xen-hvmcrash
-tools/misc/xen-lowmemd
 tools/libvchan/vchan-node[12]
 tools/libvchan/vchan-socket-proxy
 tools/ocaml/*/.ocamldep.make
diff --git a/tools/misc/.gitignore b/tools/misc/.gitignore
index c5fe2cfccd..f909ceccb1 100644
--- a/tools/misc/.gitignore
+++ b/tools/misc/.gitignore
@@ -1 +1,22 @@ 
-xen-ucode
+/cpuperf/cpuperf-perfcntr
+/cpuperf/cpuperf-xen
+/lowmemd
+/xc_shadow
+/xen-cpuid
+/xen-detect
+/xen-diag
+/xen-hptool
+/xen-hvmcrash
+/xen-hvmctx
+/xen-livepatch
+/xen-lowmemd
+/xen-mfndump
+/xen-tmem-list-parse
+/xen-ucode
+/xen_cpuperf
+/xencov
+/xenhypfs
+/xenlockprof
+/xenperf
+/xenpm
+/xenwatchdogd
diff --git a/xen/tools/kconfig/.gitignore b/xen/tools/kconfig/.gitignore
index 9638790613..e289215d27 100644
--- a/xen/tools/kconfig/.gitignore
+++ b/xen/tools/kconfig/.gitignore
@@ -15,3 +15,9 @@  mconf
 nconf
 qconf
 gconf
+
+#
+# temporary build tool checking files
+#
+/.tmp_gtkcheck
+/.tmp_qtcheck
diff --git a/xen/xsm/flask/.gitignore b/xen/xsm/flask/.gitignore
index 024edbe0ba..f186747c51 100644
--- a/xen/xsm/flask/.gitignore
+++ b/xen/xsm/flask/.gitignore
@@ -1 +1,8 @@ 
-/policy.c
+/flask-policy.S
+/include/av_perm_to_string.h
+/include/av_permissions.h
+/include/class_to_string.h
+/include/flask.h
+/include/initial_sid_to_string.h
+/policy.*
+/xenpolicy-*