Fri, 06 Mar 2015 21:12:30 -0800 patch: rename pathstrip to pathtransform
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 21:12:30 -0800] rev 24242
patch: rename pathstrip to pathtransform In upcoming patches we'll not just strip path components but also add new ones.
Wed, 18 Feb 2015 23:17:52 +0900 templatekw: forward _hybrid.get to raw values so that get(extras, key) works
Yuya Nishihara <yuya@tcha.org> [Wed, 18 Feb 2015 23:17:52 +0900] rev 24241
templatekw: forward _hybrid.get to raw values so that get(extras, key) works ef78450c8df6 implies that the primary goal is to allow "{get(extras, key)}", but it didn't work. I'm not sure if _hybrid should forward all unknown attributes to values, so only "get" is forwarded for now.
Wed, 18 Feb 2015 23:01:33 +0900 templater: implement _hybrid.__contains__ so that ifcontains can accept dict
Yuya Nishihara <yuya@tcha.org> [Wed, 18 Feb 2015 23:01:33 +0900] rev 24240
templater: implement _hybrid.__contains__ so that ifcontains can accept dict d8fb835376d1 is fine for "{revset()}", but "i.values()[0]" does not work if each item has more than one values such as "{bookmarks}". This fixes the problem by using list.__contains__ or dict.__contains__ appropriately.
Sun, 08 Mar 2015 14:46:42 +0900 templatekw: keep raw list or dict in _hybrid object
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Mar 2015 14:46:42 +0900] rev 24239
templatekw: keep raw list or dict in _hybrid object This will allow us to handle bookmarks, extras and copies properly in "ifcontains()" and "get()".
Sun, 08 Mar 2015 14:38:50 +0900 templatekw: give name to lambda that constructs variables map of templater
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Mar 2015 14:38:50 +0900] rev 24238
templatekw: give name to lambda that constructs variables map of templater The constructed list is useless for "ifcontains()" and "get()". Instead, makemap() and raw dict will be passed to _hybrid object.
Sun, 08 Mar 2015 14:17:35 +0900 templatekw: convert list of key/value pairs to sortdict
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Mar 2015 14:17:35 +0900] rev 24237
templatekw: convert list of key/value pairs to sortdict These sortdict objects will be passed to _hybrid later, which will allow us to handle them by "ifcontains()" and "get()" as expected.
Wed, 18 Feb 2015 22:53:53 +0900 sortdict: have update() accept either dict or iterable of key/value pairs
Yuya Nishihara <yuya@tcha.org> [Wed, 18 Feb 2015 22:53:53 +0900] rev 24236
sortdict: have update() accept either dict or iterable of key/value pairs Future patches will make the templater store a sorted dict in the _hybrid object. sortdict should be constructed from a sorted list.
Fri, 06 Mar 2015 15:57:43 -0800 record: allow editing new files (issue4304)
Laurent Charignon <lcharignon@fb.com> [Fri, 06 Mar 2015 15:57:43 -0800] rev 24235
record: allow editing new files (issue4304) While using the record extension to select changes, the user couldn't see the content of newly added files and had to select/reject them based on filename. The test is changed accordingly in two places.
Thu, 05 Mar 2015 14:42:25 -0800 localrepo: back out changeset b08af8f0ac01
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 05 Mar 2015 14:42:25 -0800] rev 24234
localrepo: back out changeset b08af8f0ac01 Running the tags function filtered will lead to different results with different filter levels. This seems too dangerous to be done blindly as b08af8f0ac01 did.
Mon, 09 Mar 2015 12:32:29 -0400 test-shelve: be more lenient about whitespace (issue4124)
Tristan Seligmann <mithrandi@debian.org> [Mon, 09 Mar 2015 12:32:29 -0400] rev 24233
test-shelve: be more lenient about whitespace (issue4124) When running on a slower systems (eg. MIPS buildd), the age of the shelf can be 10 seconds or more, resulting in the output alignment changing and thus a test failure. This patch makes the spacing be matched more leniently.
Mon, 09 Mar 2015 14:32:17 +0800 histedit: use better meta-variable names than VALUE in help text
Anton Shestakov <engored@ya.ru> [Mon, 09 Mar 2015 14:32:17 +0800] rev 24232
histedit: use better meta-variable names than VALUE in help text Before this change hg help histedit would use the default variable label: --commands VALUE ... -r --rev VALUE [+] With this change the text will be in the usual help text style and a bit more explanatory: --commands FILE ... -r --rev REV [+]
Mon, 09 Mar 2015 14:10:42 +0800 histedit: tweak --commands help text
Anton Shestakov <engored@ya.ru> [Mon, 09 Mar 2015 14:10:42 +0800] rev 24231
histedit: tweak --commands help text The rest of help messages for command arguments are simple phrases without any ending punctuation, so having this text be a complete sentence didn't really fit.
Sun, 25 Jan 2015 02:45:49 -0500 largefiles: report the source of copied/moved largefiles in status -C
Matt Harbison <matt_harbison@yahoo.com> [Sun, 25 Jan 2015 02:45:49 -0500] rev 24230
largefiles: report the source of copied/moved largefiles in status -C Previously, the source was silently skipped because the largefile was in the list of changed files, but the standin was in the copies dictionary. The source is only displayed if the changed file is a key in the copies dictionary.
Sun, 08 Mar 2015 00:04:03 -0500 test-commit-amend: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Sun, 08 Mar 2015 00:04:03 -0500] rev 24229
test-commit-amend: add globs for Windows
Fri, 30 Jan 2015 21:30:40 -0800 lazymanifest: use a binary search to do an insertion
Augie Fackler <augie@google.com> [Fri, 30 Jan 2015 21:30:40 -0800] rev 24228
lazymanifest: use a binary search to do an insertion This makes insertions log(n) plus some memmove() overhead, rather than doing an append followed by an n*log(n) sort. There's probably a lot of performance to be gained by adding a batch-add method, which could be smarter about the memmove()s performed. Includes a couple of extra tests that should help prevent bugs. Thanks to Martin for some significant pre-mail cleanup of this change.
Mon, 17 Nov 2014 00:00:25 -0500 context: don't sort manifest entries
Augie Fackler <augie@google.com> [Mon, 17 Nov 2014 00:00:25 -0500] rev 24227
context: don't sort manifest entries The manifest iterator is now pre-sorted, so we can skip this check.
Fri, 06 Mar 2015 21:29:47 -0500 manifest: use custom C implementation of lazymanifest
Augie Fackler <augie@google.com> [Fri, 06 Mar 2015 21:29:47 -0500] rev 24226
manifest: use custom C implementation of lazymanifest This version is actually lazy, unlike the pure-python version. The latter could stand to be optimized if anyone actually wants to use it seriously. I put no work into it. Before any of my related changes on mozilla-central: perfmanifest tip ! wall 0.268805 comb 0.260000 user 0.260000 sys 0.000000 (best of 37) perftags ! result: 162 ! wall 0.007099 comb 0.000000 user 0.000000 sys 0.000000 (best of 401) perfstatus ! wall 0.415680 comb 0.420000 user 0.260000 sys 0.160000 (best of 24) hgperf export tip ! wall 0.142118 comb 0.140000 user 0.140000 sys 0.000000 (best of 67) after all of my changes on mozilla-central: ./hg: perfmanifest tip ! wall 0.232640 comb 0.230000 user 0.220000 sys 0.010000 (best of 43) perftags ! result: 162 ! wall 0.007057 comb 0.010000 user 0.000000 sys 0.010000 (best of 395) perfstatus ! wall 0.415503 comb 0.420000 user 0.280000 sys 0.140000 (best of 24) hgperf export tip ! wall 0.025096 comb 0.030000 user 0.030000 sys 0.000000 (best of 102) so it's no real change in performance on perf{manifest,tags,status}, but is a huge win on 'hgperf export tip'. There's a little performance work that could still be done here: fastdelta() could be done significantly more intelligently by using the internal state of the lazymanifest type in C, but that seems like good future work.
Sat, 07 Mar 2015 12:04:39 -0500 manifest: split manifestdict into high-level and low-level logic
Augie Fackler <augie@google.com> [Sat, 07 Mar 2015 12:04:39 -0500] rev 24225
manifest: split manifestdict into high-level and low-level logic The low-level logic type (_lazymanifest) matches the behavior of the C implementation introduced in a5f1bccd. A future patch will use that when available.
Sat, 07 Mar 2015 11:43:12 -0500 manifest: do parsing inside manifestdict contstructor
Augie Fackler <augie@google.com> [Sat, 07 Mar 2015 11:43:12 -0500] rev 24224
manifest: do parsing inside manifestdict contstructor This shape to the code will make using a C implementation of the manifest storage easier.
Sat, 07 Mar 2015 11:42:05 -0500 manifest: move parsing functions up in file
Augie Fackler <augie@google.com> [Sat, 07 Mar 2015 11:42:05 -0500] rev 24223
manifest: move parsing functions up in file These functions are about to change signature and be hidden inside the manifestdict constructor. Doing the code motion now as an isolated change to make things easier to review.
Tue, 10 Feb 2015 15:59:12 -0500 dispatch: offer suggestions of similar-named commands
Augie Fackler <augie@google.com> [Tue, 10 Feb 2015 15:59:12 -0500] rev 24222
dispatch: offer suggestions of similar-named commands When suggestions are available, we show those suggestions instead of showing some help output.
Mon, 26 Jan 2015 15:43:13 -0500 dispatch: offer near-edit-distance suggestions for {file,rev}set functions
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 15:43:13 -0500] rev 24221
dispatch: offer near-edit-distance suggestions for {file,rev}set functions Before this patch, when I have a brain fart and type `hg log -r 'add(foo)'`, hg exits and just says add isn't a function, leading me to the help page for revset to figure out how to spell the function. With this patch, it suggests 'adds' as a function I might have meant.
Mon, 26 Jan 2015 15:52:46 -0500 test-revset: add tests for missing function output
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 15:52:46 -0500] rev 24220
test-revset: add tests for missing function output An upcoming change will slightly alter behavior here. Adding the test now so the output change stands out in the later changeset.
Mon, 26 Jan 2015 14:32:30 -0500 revset: use UnknownIdentifier where appropriate
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 14:32:30 -0500] rev 24219
revset: use UnknownIdentifier where appropriate
Mon, 26 Jan 2015 14:31:48 -0500 fileset: use UnknownIdentifier where appropriate
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 14:31:48 -0500] rev 24218
fileset: use UnknownIdentifier where appropriate
Mon, 26 Jan 2015 14:31:01 -0500 error: add a new UnknownIdentifier error type
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 14:31:01 -0500] rev 24217
error: add a new UnknownIdentifier error type This will be used by the revset and fileset code to communicate more specific errors to higher levels so that we might be able to offer suggestions about what function might have been similar.
Mon, 24 Nov 2014 16:42:49 -0500 log: display closing-branch nodes as "_" (BC)
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 24 Nov 2014 16:42:49 -0500] rev 24216
log: display closing-branch nodes as "_" (BC) In plain `hg log` there is no indication that a commit closes a branch. You can use hg log --debug, but this is too verbose. A simple idea copied from thg and other graphical viewers is to display the node for a closing-branch commit as a horizontal line. I think this technically is a BC if we consider the graphlog to be part of the stdout API, but I really can't imagine who the hell is parsing the graphlog to determine information about commits.
Fri, 06 Mar 2015 17:00:42 -0600 manifest: move pure parsing code out of pure
Matt Mackall <mpm@selenic.com> [Fri, 06 Mar 2015 17:00:42 -0600] rev 24215
manifest: move pure parsing code out of pure This lets us transition more smoothly.
Tue, 13 Jan 2015 14:31:38 -0800 manifest.c: new extension code to lazily parse manifests
Augie Fackler <augie@google.com> [Tue, 13 Jan 2015 14:31:38 -0800] rev 24214
manifest.c: new extension code to lazily parse manifests This lets us iterate manifests in order, but do a _lot_ less work in the common case when we only care about a few manifest entries. Many thanks to Mike Edgar for reviewing this in advance of it going out to the list, which caught many things I missed. This version of the patch includes C89 fixes from Sean Farley and many correctness/efficiency cleanups from Martin von Zweigbergk. Thanks to both!
Thu, 05 Mar 2015 22:16:28 -0800 workingctx: use normal dirs() instead of dirstate.dirs()
Durham Goode <durham@fb.com> [Thu, 05 Mar 2015 22:16:28 -0800] rev 24213
workingctx: use normal dirs() instead of dirstate.dirs() The workingctx class was using dirstate.dirs() as it's implementation. The sparse extension maintains a pruned down version of the dirstate, so this resulted in the workingctx reporting an incorrect listing of directories during merge calculations (it was detecting directory renames when it shouldn't have). The fix is to use the default implementation, which uses workingctx._manifest, which unions the manifest with the dirstate to produce the correct overall picture. This also produces more accurate output since it will no longer return directories that have been entirely deleted in the dirstate. Tests will be added to the sparse extension to detect regressions for this.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip