Subject: bug#37215: [PATCH] vc-cvs-ignore writes absolute filenames and duplicate strings

From: Eli Zaretskii <[email-masked]>
Date: Fri, 14 Feb 2020 10:33:48 +0200

> Cc: [email-masked], [email-masked]
> From: Wolfgang Scherer <[email-masked]>
> Date: Fri, 14 Feb 2020 02:24:12 +0100
> 
> >> Your assumption, that `file` is always a simple basename is wrong.
> > Yes, but when does it make sense to have FILE not absolute and not
> > just a basename (i.e. with leading directories)?  Do we have such use
> > cases?
> vc-dir-ignore with patch from #37240

OK, but then please document this use case and how DIRECTORY is used
in this function.  The various -ignore functions in vc.el and in
backends assign different semantics to their DIRECTORY argument, and I
think these (largely undocumented) differences are a source of some
confusion and bugs in this area.

> >   Because if that happens, the file's name will be added to
> > .cvsignore not in DIRECTORY but in one of its subdirectories.  Would
> > that be surprising?
> Not for anybody familiar with CVS.

This should be documented, IMO.  The existing documentation of
.cvsignore is minimal, and doesn't mention several important aspects.
For example, the fact that only basenames are allowed is only hinted
upon, and there's no information whatsoever AFAICT whether characters
special to wildcards can be escaped.  So I think we should provide
this minimal information either in doc strings or at least in comments
in the code.

Thanks.