Skip to content

Conversation

@TV4Fun
Copy link

@TV4Fun TV4Fun commented Nov 17, 2021

While trying to add my own customization to the .gitignore, I had an
issue where the pre-commit hook was seeing a reference to an issue in
another project inside a comment as a directory and producing an error.
This fixes my issue by ignore lines that begin with # when parsing the
.gitignore. Note that this will still pick up inline comments, so there
should probably be a better fix than this.

Also ignore the UserSettings directory that was added in Unity 2020 and contains user-specific configs that shouldn't be added to version control.

While trying to add my own customization to the .gitignore, I had an
issue where the pre-commit hook was seeing a reference to an issue in
another project inside a comment as a directory and producing an error.
This fixes my issue by ignore lines that begin with # when parsing the
.gitignore. Note that this will still pick up inline comments, so there
should probably be a better fix than this.
This changes the regex that `pre-commit` uses to validate .gitignore in
a couple ways:
* Only match whole line instead of single-word changes
	* This may cause us to miss some changes, but the trimming below expects
	it, so we kinda have to.
* Ignore files with leading .s
	* Unity will not create meta files for these, so we don't need to check.
* Ignore files that end in *s.
	* This will also include the .meta files, so don't need a separate line
	for them.

Also add a comment saying WTF this code is actually doing and fix a
spelling error.
* Replace hacky string manipulation with `basename`
	* The existing approavh is very brittle and leads to a lot of false
	negatives, so just use the shell builtin `basename` instead.
* Prevent file glob expansion when echoing dir name
	* Some shells (including POSIX-standard sh) expand file globs in `echo`.
	This was causing some very confusing output. Fix that.
* Display full file name in listing
	* A lot of gitignore entries were showing only blank lines. This
	makes it clearer what is actually being processed.
* Disable regex expansion when searching output metas
	* `grep` by default treats search patterns as regexes, which was causing
	a lot of false negatives in entries with asterisks. Disable regex
	expansion to catch more things.
* Also search for full path in metas.
	* Searching only for the base path caused some false positives where
	the full .meta path was included. This fixes that.
	* Also adds other possibility to error message.
Includes a lot of extra .meta files that probably should also be excluded
if we're excluding their associated assets.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant