Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:28 -0700] rev 31546
debug: use tryunlink
Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:28 -0700] rev 31545
chgserver: use tryunlink
Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:28 -0700] rev 31544
bookmarks: use tryunlink
Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:28 -0700] rev 31543
shelve: use tryunlink
Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:28 -0700] rev 31542
vfs: add tryunlink method
Thoughout hg code, we see a pattern of attempting to remove a file and then
catching and ignoring any errors due to a missing file in the calling code.
Let's unify this pattern in a single implementation in the vfs layer.
Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:28 -0700] rev 31541
util: use tryunlink in unlinkpath
We just introduced a func to attempt a file removal. Start using it.
Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:28 -0700] rev 31540
util: add tryunlink function
Throughout mercurial cdoe, there is a common pattern of attempting to remove
a file and ignoring ENOENT errors. Let's move this into a common function to
allow for cleaner code.
Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:28 -0700] rev 31539
util: unify unlinkpath
Previously, there were two slightly different versions of unlinkpath between
windows and posix, but these differences were eliminated in previous patches.
Now we can unify these two code paths inside of the util module.
Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:28 -0700] rev 31538
posix: use local reference to removedirs
We have a local reference to os.removedirs in module scope, but we still used
os.removedirs inside functions. This changes util to use the local reference,
which will pave the way for combining duplicated code in future patches.
Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:28 -0700] rev 31537
posix: use local reference to unlink
We have a local reference to os.unlink in module scope, but we still used
os.unlink inside functions. This changes util to use the local reference,
which will pave the way for combining duplicated code in future patches.
Ryan McElroy <rmcelroy@fb.com> [Tue, 21 Mar 2017 06:50:42 -0700] rev 31536
localrepo: improve vfs documentation
At the beginning of March, I promised Yuya that I would follow up a comment I
made on a patch with improved documention for these vfs objects. Also hat tip
to Pierre-Yves for adding the documentation here in the first place.
Simon Farnsworth <simonfar@fb.com> [Mon, 20 Mar 2017 05:08:21 -0700] rev 31535
ui: restrict length of autogenerated blocked tags
Long autogenerated blocked tags tend to be because the command has an absolute
path; at Facebook, we've had a few where the tag is thousands of characters
long (in association with the mergedriver).
Change the default to use a suffix of a command as the default tag, limiting us
to 85 characters (for a 100 character tag). This is long enough to overflow a
standard terminal (thus be obviously autogenerated), but short enough to be
readable.
Augie Fackler <augie@google.com> [Sun, 19 Mar 2017 01:20:08 -0400] rev 31534
commit: keep opts as byteskwargs as much as possible
This fixes many flag-handling bugs on 'hg commit' in Python 3.
Augie Fackler <augie@google.com> [Sun, 19 Mar 2017 01:19:27 -0400] rev 31533
util: reference __main__ in sys.modules as a sysstr
Augie Fackler <augie@google.com> [Sun, 19 Mar 2017 01:38:10 -0400] rev 31532
ui: convert to/from Unicode on Python 3 in ui.editor()
I considered making this I/O be done in terms of bytes, but that would
cause an observable regression for Windows users, as non-binary-mode
open does EOL conversion there. There are probably new encoding
dragons lurking here, so we may want to switch to using binary mode
and doing EOL conversion ourselves.
Augie Fackler <augie@google.com> [Sun, 19 Mar 2017 01:12:03 -0400] rev 31531
manifest: refer to bytestrings as bytes, not str
Required on Python 3.
Augie Fackler <augie@google.com> [Sun, 19 Mar 2017 01:11:37 -0400] rev 31530
manifest: use node.hex instead of .encode('hex')
The latter doesn't work on Python 3.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 20 Mar 2017 21:40:28 -0700] rev 31529
pure: use int instead of long
Similar to the recent
73aa13bc8dac (revlog: use int instead of long,
2017-03-19).
Jun Wu <quark@fb.com> [Mon, 13 Mar 2017 22:30:07 -0700] rev 31528
histedit: inline cleanupnode
Move "cleanupnode" (unsafe strip) into "safecleanupnode" so it's impossible
to call the unsafe function directly.
This helps reduce future programming errors.
Jun Wu <quark@fb.com> [Mon, 13 Mar 2017 22:22:18 -0700] rev 31527
histedit: use safecleanupnode in _aborthistedit (
issue5500)
Now nobody in histedit calls the unsafe cleanupnode directly.
Jun Wu <quark@fb.com> [Mon, 13 Mar 2017 22:19:06 -0700] rev 31526
histedit: use safecleanupnode in _finishhistedit
This simplifies code a lot.
Jun Wu <quark@fb.com> [Mon, 13 Mar 2017 21:10:45 -0700] rev 31525
histedit: add a method to cleanup nodes safely
The new method will decide between:
- cleanupnode, which calls the unsafe repair.strip
- create obsmarkers
Ideally, nobody calls "cleanupnode" directly except for "safecleanupnode".
Rishabh Madan <rishabhmadan96@gmail.com> [Tue, 21 Mar 2017 07:22:13 +0530] rev 31524
py3: prove hg status works
Augie Fackler <augie@google.com> [Mon, 20 Mar 2017 22:06:57 -0400] rev 31523
localrepo: use node.hex instead of awkward .encode('latin1')
Spotted as an option by Yuya. Thanks!