Gregory Szorc <gregory.szorc@gmail.com> [Tue, 18 Sep 2018 15:15:24 -0700] rev 39763
localrepo: pass root manifest into manifestlog.__init__
Today, localrepository has a method that can be overloaded which
returns an instance of the root manifest storage object. When a
manifestlog is created, it calls this private method and stores
the root manifest object on it.
This "hook" on localrepository isn't part of the documented interface.
It isn't compatible with our desire to make repo storage determined
before the repo object is constructed.
This commit changes manifestlog.__init__ to accept the root
storage object instead of calling into the repo to construct it.
By doing things this way, the repo instance is responsible for
constructing the manifest storage object directly.
This does mean that other derived repo types need to overload
manifestlog(). But they should have been doing this already,
as manifestlog() is typically decorated in a storage-specific way.
e.g. localrepository.manifestlog() is decorated as
@storecache('00manifest.i'). And this assumes that a 00manifest.i
file exists in the store vfs. This condition may not hold for
repository types using non-revlog storage. So it is important
for special repo types to override manifestlog() to remove this
file association.
The code changed in perf is wrong because it isn't compatible with
older Mercurial versions. But I'm pretty sure the code was broken
on older versions before this commit. It only affects `hg perftags`.
I don't care enough to fix that at this time.
.. api::
``manifest.manifestlog.__init__()`` now receives the root manifest
storage instance instead of calling into a private method on
the repo object to obtain it.
Differential Revision: https://phab.mercurial-scm.org/D4641
Matt Harbison <matt_harbison@yahoo.com> [Fri, 21 Sep 2018 21:44:27 -0400] rev 39762
py3: create built in exceptions with str type messages in win32.py
I hit an IOError in unlink() in test-pathconflicts-basic.t, that then crashed as
it was handled:
File "mercurial\dispatch.py", line 359, in _runcatch
return _callcatch(ui, _runcatchfunc)
File "mercurial\dispatch.py", line 367, in _callcatch
return scmutil.callcatch(ui, func)
File "mercurial\scmutil.py", line 252, in callcatch
ui.error(_("abort: %s\n") % encoding.strtolocal(inst.strerror))
File "mercurial\encoding.py", line 205, in unitolocal
return tolocal(u.encode('utf-8'))
AttributeError: 'bytes' object has no attribute 'encode'
Matt Harbison <matt_harbison@yahoo.com> [Sat, 22 Sep 2018 12:11:48 -0400] rev 39761
tests: stabilize test-shelve.t#phasebased for #no-symlink and #no-execbit
The rev number ended up being 11 instead of 13 on Windows. If I ever get back
to issue2020, this will go away.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Sep 2018 21:35:01 -0700] rev 39760
debugdirstate: deprecate --nodates in favor of --no-dates
We have supported 'no-' prefixes for boolean flag for a few years now,
so I was expecting it to be --no-dates.
I noticed that we have --nodates options for a few more commands
(e.g. `hg diff`), but I'll leave that for another day.
Differential Revision: https://phab.mercurial-scm.org/D4693
Matt Harbison <matt_harbison@yahoo.com> [Fri, 21 Sep 2018 00:37:03 -0400] rev 39759
py3: fix a type error in hghave.has_hardlink
test-hghave.t was failing with:
feature hardlink failed: argument 1: <class 'TypeError'>: wrong type
Martin von Zweigbergk <martinvonz@google.com> [Fri, 21 Sep 2018 09:34:41 -0700] rev 39758
narrow: remove hack to read narowspec from shared .hg directory
This was another leftover from 576eef1ab43d (narrow: move
.hg/narrowspec to .hg/store/narrowspec (BC), 2018-08-02), in addition
to 623081f2abc2 (narrow: remove hack to write narrowspec to shared .hg
directory, 2018-09-12).
Differential Revision: https://phab.mercurial-scm.org/D4692
Augie Fackler <augie@google.com> [Fri, 21 Sep 2018 11:43:46 -0400] rev 39757
streamclone: reimplement nested context manager
It's gone in Python 3, and you can't *ctxs into a with statement. Sigh.
Differential Revision: https://phab.mercurial-scm.org/D4690
Augie Fackler <augie@google.com> [Fri, 21 Sep 2018 11:44:08 -0400] rev 39756
bundle2: grab kwarg using sysstr
# skip-blame just an r prefix on a string
Differential Revision: https://phab.mercurial-scm.org/D4691
Augie Fackler <augie@google.com> [Fri, 21 Sep 2018 11:15:55 -0400] rev 39755
py3: mark another passing test
Differential Revision: https://phab.mercurial-scm.org/D4689
Yuya Nishihara <yuya@tcha.org> [Sat, 15 Sep 2018 12:47:49 +0900] rev 39754
bookmarks: remove --active in favor of --list
It's weird that we have both --active and --inactive options meaning
completely different things. Instead of adding a one-off option, let's
document the way to display the active bookmark by using -l/--list.
No deprecated option is added since --active isn't released yet.