Durham Goode <durham@fb.com> [Wed, 17 Aug 2016 13:25:13 -0700] rev 29827
manifest: change changectx to access manifest via manifestlog
This is the first place where we'll start using manifestctx instances instead of
manifestdict. This will facilitate using different manifestctx implementations
in the future.
Durham Goode <durham@fb.com> [Wed, 17 Aug 2016 13:25:13 -0700] rev 29826
manifest: use property instead of field for manifest revlog storage
The file caches we're using to avoid reloading the manifest from disk everytime
has an annoying bug that causes the in memory structure to not be reloaded if
the mtime and the size haven't changed. This causes a breakage in the tests
because the manifestlog is not being reloaded after a commit+strip operation in
mq (the mtime is the same because it all happens in the same second, and the
resulting size is the same because we add 1 and remove 1). The only reason this
doesn't affect the manifest itself is because we touch it so often that we
had already reloaded it after the commit, but before the strip.
Once the entire manifest has migrated to manifestlog, we can get rid of these
properties, since then the manifestlog will be touched after the commit, but
before the strip, as well.
Durham Goode <durham@fb.com> [Wed, 17 Aug 2016 13:25:13 -0700] rev 29825
manifest: introduce manifestlog and manifestctx classes
This is the start of a large refactoring of the manifest class. It introduces
the new manifestlog and manifestctx classes which will represent the collection
of all manifests and individual instances, respectively.
Future patches will begin to convert usages of repo.manifest to
repo.manifestlog, adding the necessary functionality to manifestlog and instance
as they are needed.
Durham Goode <durham@fb.com> [Wed, 17 Aug 2016 13:25:13 -0700] rev 29824
manifest: make manifest derive from manifestrevlog
As part of our refactoring to split the manifest concept from its storage, we
need to start moving the revlog specific parts of the manifest implementation to
a new class. This patch creates manifestrevlog and moves the fulltextcache onto
the base class.
Durham Goode <durham@fb.com> [Wed, 17 Aug 2016 13:25:13 -0700] rev 29823
manifest: break mancache into two caches
The old manifest cache cached both the inmemory representation and the raw text.
As part of the manifest refactor we want to separate the storage format from the
in memory representation, so let's split this cache into two caches.
This will let other manifest implementations participate in the in memory cache,
while allowing the revlog based implementations to still depend on the full text
caching where necessary.
Augie Fackler <augie@google.com> [Thu, 18 Aug 2016 11:32:02 -0400] rev 29822
dispatch: explicitly pass fancyopts optional arg as a keyword
I've been baffled by this a couple of times (mainly wondering if any
callers of fancyopts.fancyopts that don't use gnu=True exist), so
let's just specify this as a keyword argument to preserve sanity.
Maciej Fijalkowski <fijall@gmail.com> [Sat, 20 Aug 2016 23:05:18 +0200] rev 29821
osutil: fix the bug on OS X when we return more in listdir
The pointer arithmetic somehow got ommitted during the recent change to use
a struct.
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com> [Sun, 21 Aug 2016 08:03:22 +0000] rev 29820
histedit: use samefile function from cmdutil
Replace usage of inefficient samefile function in collapse with a call to
cmdutil.samefile().
Hannes Oldenburg <hannes.christian.oldenburg@gmail.com> [Sun, 21 Aug 2016 08:00:18 +0000] rev 29819
cmdutil: extract samefile function from amend()
Yuya Nishihara <yuya@tcha.org> [Fri, 22 Apr 2016 21:32:30 +0900] rev 29818
templater: rename "right" argument of pad() function
Before, right=True meant right justify, which I think is left padding.
Yuya Nishihara <yuya@tcha.org> [Fri, 22 Apr 2016 21:29:13 +0900] rev 29817
templater: make pad() evaluate boolean argument (BC)
Otherwise it would crash if template expression was passed.
This patch unifies the way how boolean expression is evaluated, which involves
BC. Before "if(true)" and "pad(..., 'false')" were False, which are now True
since they are boolean literal and non-empty string respectively.
"func is runsymbol" is the same hack as evalstringliteral(), which is needed
for label() to take color literals.
Yuya Nishihara <yuya@tcha.org> [Thu, 18 Aug 2016 16:29:22 +0900] rev 29816
templater: fix if() to not evaluate False as bool('False')
Before, False was True. This patch fixes the issue by processing True/False
transparently. The other values (including integer 0) are tested as strings
for backward compatibility, which means "if(latesttagdistance)" never be False.
Should we change the behavior of "if(0)" as well?
Yuya Nishihara <yuya@tcha.org> [Thu, 18 Aug 2016 15:55:07 +0900] rev 29815
templater: make it clearer that _flatten() omits None
Gábor Stefanik <gabor.stefanik@nng.com> [Thu, 18 Aug 2016 17:25:10 +0200] rev 29814
revset: support "follow(renamed.py,
e22f4f3f06c3)" (
issue5334)
v2: fixes from review