mirror of
https://github.com/facebook/sapling.git
synced 2025-01-08 14:46:47 +03:00
1d4d162882
When a dirstate backup is restored, it is possible that no actual changes to the dirstate have been made. In this case, the backup is still a hardlink to the original dirstate. Unfortunately, `os.rename` silently fails (nothing happens, and no error occurs) when `src` and `dst` are hardlinks to the same file. As a result, the backup is left lying around. Over time, these files accumulate. When restoring dirstate backups, check if the backup and the dirstate are the same file, and if so, just delete the backup. Differential Revision: https://phab.mercurial-scm.org/D1201
19 lines
259 B
Perl
19 lines
259 B
Perl
Set up
|
|
|
|
$ hg init repo
|
|
$ cd repo
|
|
|
|
Try to import an empty patch
|
|
|
|
$ hg import --no-commit - <<EOF
|
|
> EOF
|
|
applying patch from stdin
|
|
abort: stdin: no diffs found
|
|
[255]
|
|
|
|
No dirstate backups are left behind
|
|
|
|
$ ls .hg/dirstate* | sort
|
|
.hg/dirstate
|
|
|