Ignore EPIPE in pipefilter
This hides the following traceback (there's a race condition involved,
so you may have to try a few times to hit it):
$ hg sign --key key-that-does-not-exist
Signing 2062:4bad92f4ea65
gpg: skipped "key-that-does-not-exist": secret key not available
gpg: signing failed: secret key not available
Exception in thread Thread-1:
Traceback (most recent call last):
File "threading.py", line 442, in __bootstrap
self.run()
File "threading.py", line 422, in run
self.__target(*self.__args, **self.__kwargs)
File "mercurial/util.py", line 24, in writer
pin.close()
IOError: [Errno 32] Broken pipe
abort: Error while signing
hg status in repo root:
? a/1/in_a_1
? a/in_a
? b/1/in_b_1
? b/2/in_b_2
? b/in_b
? in_root
hg status . in repo root:
? a/1/in_a_1
? a/in_a
? b/1/in_b_1
? b/2/in_b_2
? b/in_b
? in_root
hg status in a:
? a/1/in_a_1
? a/in_a
? b/1/in_b_1
? b/2/in_b_2
? b/in_b
? in_root
hg status . in a:
? 1/in_a_1
? in_a
hg status .. in a:
? 1/in_a_1
? in_a
? ../b/1/in_b_1
? ../b/2/in_b_2
? ../b/in_b
? ../in_root
hg status in b:
? a/1/in_a_1
? a/in_a
? b/1/in_b_1
? b/2/in_b_2
? b/in_b
? in_root
hg status . in b:
? 1/in_b_1
? 2/in_b_2
? in_b
hg status .. in b:
? ../a/1/in_a_1
? ../a/in_a
? 1/in_b_1
? 2/in_b_2
? in_b
? ../in_root
hg status in a/1:
? a/1/in_a_1
? a/in_a
? b/1/in_b_1
? b/2/in_b_2
? b/in_b
? in_root
hg status . in a/1:
? in_a_1
hg status .. in a/1:
? in_a_1
? ../in_a
hg status in b/1:
? a/1/in_a_1
? a/in_a
? b/1/in_b_1
? b/2/in_b_2
? b/in_b
? in_root
hg status . in b/1:
? in_b_1
hg status .. in b/1:
? in_b_1
? ../2/in_b_2
? ../in_b
hg status in b/2:
? a/1/in_a_1
? a/in_a
? b/1/in_b_1
? b/2/in_b_2
? b/in_b
? in_root
hg status . in b/2:
? in_b_2
hg status .. in b/2:
? ../1/in_b_1
? in_b_2
? ../in_b
adding .hgignore
adding deleted
adding modified
adding removed
hg status:
A added
R removed
! deleted
? unknown
hg status modified added removed deleted unknown never-existed ignored:
never-existed: No such file or directory
A added
R removed
! deleted
? ignored
? unknown