mbox series

[0/1] Adding git-ignore command, tests, and documentation.

Message ID pull.264.git.gitgitgadget@gmail.com (mailing list archive)
Headers show
Series Adding git-ignore command, tests, and documentation. | expand

Message

Johannes Schindelin via GitGitGadget July 17, 2019, 2:49 a.m. UTC
git-ignore will allow users to quickly add entries to the gitignore files in
the repositories.

Many times, I'll have a config file or log file buried in a series of
sub-directories and find it frustrating to edit the right git ignore with
the right relative path to the file that i want to add. This script makes
adding items to a gitignore file easier.

Instead of managing paths and relative paths such as echo
"path/to/the/file.txt" >../../../../../../.gitignore git ignore
path/to/the/file.txt No matter what directory that is in, the correct
relative path will be added to the gitignore.

This script will also give the ability to add directories, extention globs,
and files to any gitignore in parent directories. Furthermore, it allows you
to easily open the gitignore file in your favorite editor from anywhere
using: git ignore --edit

I have been using this script for years and it has made things much easier
for me, so I figured I'd contribute.

Thurston Stone (1):
  Adding git ignore command

 .gitignore                   |   1 +
 Documentation/git-ignore.txt | 116 ++++++++++++++++++
 Makefile                     |   1 +
 git-ignore.sh                | 222 +++++++++++++++++++++++++++++++++++
 t/t7070-ignore.sh            | 180 ++++++++++++++++++++++++++++
 5 files changed, 520 insertions(+)
 create mode 100644 Documentation/git-ignore.txt
 create mode 100755 git-ignore.sh
 create mode 100755 t/t7070-ignore.sh


base-commit: 8dca754b1e874719a732bc9ab7b0e14b21b1bc10
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-264%2Ftstone2077%2Fmaster-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-264/tstone2077/master-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/264

Comments

Junio C Hamano July 17, 2019, 4:35 p.m. UTC | #1
"Thurston via GitGitGadget" <gitgitgadget@gmail.com> writes:

> Instead of managing paths and relative paths such as echo
> "path/to/the/file.txt" >../../../../../../.gitignore git ignore
> path/to/the/file.txt No matter what directory that is in, the correct
> relative path will be added to the gitignore.

Hmph, do you mean you type something like this?

	$ cd path/to/the
	... work in that deep directory ...
	... realize that file.txt in that directory needs ignoring ...
	$ echo path/to/the/file.txt >../../../../../../.gitignore

Wouldn't this simpler to type and less error prone, as you do not
have to count ../?

	$ cd path/to/the
	... work in that deep directory ...
	... realize that file.txt in that directory needs ignoring ...
	$ echo file.txt >.gitignore
Jeff King July 18, 2019, 8:21 p.m. UTC | #2
On Wed, Jul 17, 2019 at 09:35:34AM -0700, Junio C Hamano wrote:

> "Thurston via GitGitGadget" <gitgitgadget@gmail.com> writes:
> 
> > Instead of managing paths and relative paths such as echo
> > "path/to/the/file.txt" >../../../../../../.gitignore git ignore
> > path/to/the/file.txt No matter what directory that is in, the correct
> > relative path will be added to the gitignore.
> 
> Hmph, do you mean you type something like this?
> 
> 	$ cd path/to/the
> 	... work in that deep directory ...
> 	... realize that file.txt in that directory needs ignoring ...
> 	$ echo path/to/the/file.txt >../../../../../../.gitignore
> 
> Wouldn't this simpler to type and less error prone, as you do not
> have to count ../?
> 
> 	$ cd path/to/the
> 	... work in that deep directory ...
> 	... realize that file.txt in that directory needs ignoring ...
> 	$ echo file.txt >.gitignore

It's also much more efficient, at least with our current implementation,
as we do not have to worry about matching this entry when we are dealing
with /some/other/path. See [1] for a pathological case.

I see "with our current implementation" because I could imagine a world
in which we have a more trie-like structure for non-wildcard patterns.
But I don't think anybody is working on such a thing.

-Peff

[1] https://public-inbox.org/git/20120329211136.GA1112@sigill.intra.peff.net/