purge: abort with missing files avoiding problems with name-mangling fs
In a name mangling filesystem (e.g. a case insensitive one)
dirstate.walk() can yield filenames different from the ones
stored in the dirstate. This already confuses the status and
add commands, but with purge this may cause data loss.
To prevent this purge refuses to work if there are missing
files and has a 'force' option if the user knows it is safe.
Even with the force option purge checks if any of the missing
files is still available in the working dir: if so there
may be some problem with the underlying filesystem, so it
unconditionally aborts.
unknown
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
0acdaf898367 tip
tip 0:0acdaf898367
This is a local tag with a really long name! 0:0acdaf898367
0acdaf8983679e0aac16e811534eb49d7ee1f2b4 first
tip 1:8a3ca90d111d
first 0:0acdaf898367
8a3ca90d111d tip
M a
8a3ca90d111d+ tip
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
0acdaf898367+ first
0acdaf898367+ first
M a
8216907a933d tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
8216907a933d+8a3ca90d111d+ tip
M .hgtags
tip 6:e2174d339386
first 0:0acdaf898367
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
.hgtags@c071f74ab5eb, line 2: cannot parse entry
.hgtags@c071f74ab5eb, line 4: node 'foo' is not well formed
.hgtags@4ca6f1b1a68c, line 2: node 'x' is not well formed
localtags, line 1: tag 'invalid' refers to unknown node
tip 8:4ca6f1b1a68c
first 0:0acdaf898367
changeset: 8:4ca6f1b1a68c
.hgtags@c071f74ab5eb, line 2: cannot parse entry
.hgtags@c071f74ab5eb, line 4: node 'foo' is not well formed
.hgtags@4ca6f1b1a68c, line 2: node 'x' is not well formed
localtags, line 1: tag 'invalid' refers to unknown node
tag: tip
parent: 3:b2ef3841386b
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: head
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
tip 4:36195b728445
bar 1:b204a97e6e8d
changeset: 5:57e1983b4a60
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: Removed tag bar
tip 5:57e1983b4a60
tip 5:d8bb4d1eff25
bar 0:b409d9da318e
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
tip 6:b5ff9d142648
bar 0:b409d9da318e
abort: a tag named bar already exists (use -f to force)
tip 6:b5ff9d142648
bar 0:b409d9da318e