transaction: support multiple, separate transactions
Solves that committed (closed) transactions may linger and be returned
on subsequent transaction calls, even though a new transaction should
be made, rather than a new nested transaction.
This also fixes a race condition with the use of weakref.
transaction: only delete journal on successful abort/commit
This solves that the journal file was always deleted when the transaction
was deleted, no matter whether the abort (rollback) succeeded or not.
Thus, never supporting a hg recover. The journal file is now only deleted
on close (commit) or a successful abort.
inotify: Do not raise TypeError when client.query returns None
When something went wrong in client.query, it returns None.
If inotify.debug=True, we will attempt in this case a zip(A, None, B), which
would raise a TypeError.
inotify: Simplifying init code
simplifying
retry = False
try:
try:
doA()
retry = True
except X:
doB()
retry = True
except:
doC()
pass
if retry:
doD()
-- into --
try:
try:
doA()
except X:
doB()
except:
doC()
pass
else:
doD()
inotify: files is always a list: 'files or []' is redundant
files comes from match.files() : it always returns a list.
extdiff: preserve execute-bit across copies (
issue1562)
Bug report and test by Mads Kiilerich <mads@kiilerich.com>
convert/p4: win32 fixes
* cmd.exe does not know single quotes
* win32 does not like trailing whitespace very much. Trade test coverage for
maintenance time and drop the trailing whitespaces tests.