Skip to content
Snippets Groups Projects
Commit c780a63f authored by Matt Harbison's avatar Matt Harbison
Browse files

forget: cleanup the output for an inexact case match on icasefs

Previously, specifying a file name but not matching the dirstate case yielded
the following, even though the file was actually removed:

  $ hg forget capsdir1/capsdir/abc.txt
  not removing capsdir\a.txt: file is already untracked
  removing CapsDir\A.txt
  [1]

This change doesn't appear to cause any extra filesystem accesses, even if a
nonexistant file is specified.

If a directory is specified without a case match, it is (and was previously)
still silently ignored.
parent 2bb13f2b
No related branches found
No related tags found
No related merge requests found
......@@ -2044,6 +2044,12 @@
if f not in repo.dirstate and not repo.wvfs.isdir(f):
if f not in forgot:
if repo.wvfs.exists(f):
# Don't complain if the exact case match wasn't given.
# But don't do this until after checking 'forgot', so
# that subrepo files aren't normalized, and this op is
# purely from data cached by the status walk above.
if repo.dirstate.normalize(f) in repo.dirstate:
continue
ui.warn(_('not removing %s: '
'file is already untracked\n')
% match.rel(f))
......
......@@ -179,6 +179,9 @@
$ hg add -v capsdir1/capsdir
adding CapsDir1/CapsDir/AbC.txt (glob)
adding CapsDir1/CapsDir/SubDir/Def.txt (glob)
$ hg forget capsdir1/capsdir/abc.txt
removing CapsDir1/CapsDir/AbC.txt (glob)
#endif
$ cd ..
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment