From: Wolfgang Scherer <Wolfgang.Scherer@gmx.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 37189@debbugs.gnu.org
Subject: bug#37189: 25.4.1: vc-hg-ignore implementation is missing
Date: Thu, 29 Aug 2019 03:23:09 +0200 [thread overview]
Message-ID: <338bfe07-2d7b-1014-dfcd-e358e6844833@gmx.de> (raw)
In-Reply-To: <83sgplddbv.fsf@gnu.org>
Am 28.08.19 um 08:16 schrieb Eli Zaretskii:
>> Cc: 37189@debbugs.gnu.org
>> From: Wolfgang Scherer <Wolfgang.Scherer@gmx.de>
>> Date: Wed, 28 Aug 2019 03:46:53 +0200
>>
>>>> +(defun vc-hg-ignore (file &optional directory remove)
>>>> + "Ignore FILE of DIRECTORY (default is `default-directory').
>>>> +
>>>> +FILE is a file wildcard, relative to the root directory of DIRECTORY.
>>> I think instead of "root directory of DIRECTORY" this should say "the
>>> top-level directory of DIRECTORY's repository".
>> I disagree. This comment is a modified version of the comment for
>> `vc-default-ignore'. And the exact same phrase also pops up for
>> `vc-svn-ignore':
> But do you agree that the alternative text I proposed is more accurate
> and more clear? If so, we might wish to change all those places to
> use the better wording. It could be a separate commit, of course.
I agree, that the text should be corrected (and I already did so
for `vc-hg-ignore'). I do not agree to introducing the term
`top-level directory' as replacement for `project root'.
However, the problem here is not the wording, but the
incorrect/incomplete implementation of various
commands/functions. (Actually, not a single handler
implementation is correct. Not even CVS.)
1. `vc-ignore' provides the API specification for the
backend-specific implementations:
"Ignore FILE under the VCS of DIRECTORY.
Normally, FILE is a wildcard specification that matches the files
to be ignored. When REMOVE is non-nil, remove FILE from the list
of ignored files."
Based on this API, mentioning the project root at all does not
make any sense.
If the wildcard specification is relative, it is relative to
DIRECTORY (or default-directory). It is definitely not
relative to the project root.
2. `vc-cvs-ignore' implements only the appending part, but does
not implement the `remove' option.
When appending, the correct .cvsignore file is identified,
but when called with an absolute filename (which is the
default case), it writes the entire path into the .cvsignore
file.
`vc-cvs-ignore' also writes duplicate strings into .cvsignore.
I submitted a patch for these errors as bug#37215.
(And yes, I still have a bunch of old unconverted CVS repositories ;-)).
3. When `vc-svn-ignore' starts a new `svn:ignore' property, The
function `vc-svn-ignore-completion-table' parses an error
message as ignore patterns. The split also matches any
whitespace instead of lines only. I have submitted a patch for
these errors as bug##37214.
`vc-svn-ignore' states:
"Ignore FILE under Subversion.
FILE is a file wildcard, relative to the root directory of DIRECTORY."
This is just not true. The correct description is:
"Ignore FILE under Subversion.
FILE is a wildcard specification, either relative to
DIRECTORY or absolute."
`vc-svn-ignore' gets the relative filename right (in a manner
suitable for Git), but then fails to add the ignore spec to
the correct subdirectory, if the relative path has at least
one level of directories. A patch is supplied as bug#37216.
4. This leaves `vc-default-ignore'.
Both the description and implementation are wrong.
Only the basename of FILE is written to the ignore file. This is
wrong for all filenames relative to project root with one or
more parent directories.
The remove option is also implemented incorrectly.
A patch is supplied as bug#37217.
The mentioned commits replace all occurences of the incorrect description.
next prev parent reply other threads:[~2019-08-29 1:23 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-26 0:21 bug#37189: 25.4.1: vc-hg-ignore implementation is missing Wolfgang Scherer
[not found] ` <handler.37189.B.15667808855126.ack@debbugs.gnu.org>
2019-08-26 23:25 ` bug#37189: Acknowledgement (25.4.1: vc-hg-ignore implementation is missing) Wolfgang Scherer
2019-08-27 7:45 ` Eli Zaretskii
2019-08-28 1:46 ` bug#37189: *** GMX Spamverdacht *** " Wolfgang Scherer
2019-08-28 6:16 ` Eli Zaretskii
2019-08-29 1:23 ` Wolfgang Scherer [this message]
2019-08-29 0:38 ` bug#37189: 25.4.1: vc-hg-ignore implementation is missing Wolfgang Scherer
2019-08-29 15:52 ` Wolfgang Scherer
2019-12-25 0:16 ` Dmitry Gutov
2020-01-05 3:46 ` Wolfgang Scherer
2020-01-05 8:58 ` Andreas Schwab
2020-01-05 17:25 ` Wolfgang Scherer
2020-01-14 1:14 ` Dmitry Gutov
2020-02-01 1:20 ` Wolfgang Scherer
2020-02-01 8:27 ` Eli Zaretskii
2020-02-03 1:16 ` Wolfgang Scherer
2020-02-04 18:55 ` Eli Zaretskii
2020-02-05 5:18 ` Wolfgang Scherer
2020-02-05 19:06 ` Wolfgang Scherer
2020-02-07 9:57 ` Eli Zaretskii
2020-02-08 9:57 ` Dmitry Gutov
2020-02-08 19:45 ` Wolfgang Scherer
2020-02-08 20:05 ` Eli Zaretskii
2020-02-08 23:12 ` Wolfgang Scherer
2020-02-09 13:57 ` Wolfgang Scherer
2020-02-09 14:07 ` Wolfgang Scherer
2020-02-09 13:57 ` Wolfgang Scherer
2020-02-09 13:57 ` Wolfgang Scherer
2020-02-10 16:02 ` Eli Zaretskii
2020-02-11 1:45 ` Wolfgang Scherer
2020-02-11 17:32 ` Eli Zaretskii
2020-02-11 22:28 ` Wolfgang Scherer
2020-02-12 18:34 ` Eli Zaretskii
[not found] ` <6f3ba261-e1f9-cf19-cc22-ec8c24cf3298@gmx.de>
2020-02-12 23:20 ` Wolfgang Scherer
2020-02-13 1:18 ` Wolfgang Scherer
2020-02-13 15:09 ` Eli Zaretskii
2020-02-13 16:30 ` Wolfgang Scherer
2020-02-13 23:43 ` Richard Stallman
2020-02-14 1:49 ` Wolfgang Scherer
2020-02-16 2:29 ` Richard Stallman
2020-02-13 15:21 ` Eli Zaretskii
2020-02-13 23:40 ` Dmitry Gutov
2020-02-14 9:23 ` Eli Zaretskii
2020-02-21 0:05 ` Dmitry Gutov
2020-02-21 8:10 ` Eli Zaretskii
2020-02-21 22:22 ` Wolfgang Scherer
2020-02-22 7:44 ` Eli Zaretskii
2020-02-22 13:46 ` Wolfgang Scherer
2020-02-22 14:30 ` Eli Zaretskii
2020-02-22 19:14 ` Dmitry Gutov
2020-02-22 22:04 ` Wolfgang Scherer
2020-02-22 23:32 ` Wolfgang Scherer
2020-02-23 15:20 ` Eli Zaretskii
2020-02-23 19:16 ` Wolfgang Scherer
2020-02-22 19:30 ` Dmitry Gutov
2020-02-22 22:00 ` Wolfgang Scherer
2020-02-22 23:58 ` Dmitry Gutov
2020-02-23 0:29 ` Wolfgang Scherer
2020-02-24 23:07 ` Dmitry Gutov
2020-02-25 2:22 ` Wolfgang Scherer
2020-03-19 23:42 ` Dmitry Gutov
2020-07-03 20:53 ` Wolfgang Scherer
2020-07-03 21:49 ` Dmitry Gutov
2020-02-12 17:23 ` Wolfgang Scherer
2020-02-08 23:59 ` Wolfgang Scherer
2020-02-09 21:06 ` Wolfgang Scherer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=338bfe07-2d7b-1014-dfcd-e358e6844833@gmx.de \
--to=wolfgang.scherer@gmx.de \
--cc=37189@debbugs.gnu.org \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).