Sat, 11 Jul 2015 23:26:33 -0400 largefiles: allow the archiving of largefiles to be disabled
Matt Harbison <matt_harbison@yahoo.com> [Sat, 11 Jul 2015 23:26:33 -0400] rev 25811
largefiles: allow the archiving of largefiles to be disabled There are currently no users of this, but it is a necessary step before converting extdiff to use archive. It may be useful to add an argument to extdiff in the future and allow largefiles to be diffed, but archiving largefiles can have significant overhead and may not be very diffable, so archiving them by default seems wrong. It is a mystery to me why the lfstatus attribute needs to be set on the unfiltered repo. However if it is set on the filtered repo instead (and the filtered repo is passed to the original command), the lfstatus attribute is False in the overrides for archival.archive() and hgsubrepo.archive() when invoking the archive command. This smells like the buggy status behavior (see 67d63ec85eb7, which was reverted in df463ca0adef). Neither the status nor summary commands have this weird behavior in their respective overrides.
Thu, 16 Jul 2015 23:36:08 +0900 parsers: fix buffer overflow by invalid parent revision read from revlog
Yuya Nishihara <yuya@tcha.org> [Thu, 16 Jul 2015 23:36:08 +0900] rev 25810
parsers: fix buffer overflow by invalid parent revision read from revlog If revlog file is corrupted, it can have parent pointing to invalid revision. So we should validate it before updating nothead[], phases[], seen[], etc. Otherwise it would cause segfault at best. We could use "rev" instead of "maxrev" as upper bound, but I think the explicit "maxrev" can clarify that we just want to avoid possible buffer overflow vulnerability.
Thu, 16 Jul 2015 11:12:15 -0700 histedit: mark temporary commits as obsolete when allowed to
Laurent Charignon <lcharignon@fb.com> [Thu, 16 Jul 2015 11:12:15 -0700] rev 25809
histedit: mark temporary commits as obsolete when allowed to Before this patch, we were stripping temporary commits at the end of a histedit whether it was successful or not. If we can create obs markers, we should create them instead of stripping because it is faster and safer.
Thu, 16 Jul 2015 11:17:37 -0700 histedit: minor refactoring of createmarkers check
Laurent Charignon <lcharignon@fb.com> [Thu, 16 Jul 2015 11:17:37 -0700] rev 25808
histedit: minor refactoring of createmarkers check We use a variable to store whether or not we can create obsolescence markers. It makes the patch series more readable as we are going to reuse this values in other places in the function.
Wed, 15 Jul 2015 20:39:23 -0700 crecord: fix issue when backgrounding editor would leave artefact
Laurent Charignon <l.charignon@gmail.com> [Wed, 15 Jul 2015 20:39:23 -0700] rev 25807
crecord: fix issue when backgrounding editor would leave artefact Before this patch: - if a user was entering a commit message after having ran the curses interface - and then uses ctrl-z, followed by fg to put the editor in the background/foreground - then the curses interface would leave artefact on the screen of the editor, making entering the commit message a difficult task This happened because ncurses registers a signal handler for SIGTSTP and does not restore the original signal handler after running. More info at: http://stackoverflow.com/questions/31440392/ curses-wrapper-messing-up-terminal-after-background-foreground-sequence/ 31441709#31441709 This patch restores the original value of the signal handler after running the curses interface and therefore fixes this issue. It don't know how to add a test for this issue, I tested the scenario above manually and it works correctly with the patch.
Fri, 17 Jul 2015 00:22:16 +0900 censor: make various path forms available like other Mercurial commands
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 17 Jul 2015 00:22:16 +0900] rev 25806
censor: make various path forms available like other Mercurial commands Before this patch, censored file should be exactly "a path relative to repository root" regardless of current working directory, because "hg censor" passes "path" to "repo.file()" directly without any preparations. To make various path forms available like other Mercurial commands, this patch gets a target file path in the way of "hg parents FILE". Getting "wctx" is relocated to reuse "wctx" for efficiency.
Tue, 14 Jul 2015 14:40:56 +0100 convert: use 'default' for specifying branch name in branchmap (issue4753)
Eugene Baranov <eug.baranov@gmail.com> [Tue, 14 Jul 2015 14:40:56 +0100] rev 25805
convert: use 'default' for specifying branch name in branchmap (issue4753) A fix for issue2653 with 1d155582a8ea introduced a discrepancy how default branch should be denoted when converting with branchmap from different SCM. E.g. for Git and Mercurial you need to use 'default' whilst for Perforce and SVN you had to use 'None'. This changeset unifies 'default' for such purposes whilst falling back to 'None' when no 'default' mapping specified.
Sun, 05 Jul 2015 11:54:14 +0900 parser: extract function that tests if next token may start new term
Yuya Nishihara <yuya@tcha.org> [Sun, 05 Jul 2015 11:54:14 +0900] rev 25804
parser: extract function that tests if next token may start new term Future patches will separate primary expression and prefix operator actions. This function will be used to resolve ambiguity of them. This is a step to remove the old-style revexpr parser. We need both ":" and ":y" operators for backward compatibility.
Sun, 05 Jul 2015 18:09:15 +0900 parser: factor out function that parses right-hand side of prefix/infix ops
Yuya Nishihara <yuya@tcha.org> [Sun, 05 Jul 2015 18:09:15 +0900] rev 25803
parser: factor out function that parses right-hand side of prefix/infix ops These two had common pattern. The significant difference was just a result expression: prefix: (op-name, rhs) infix: (op-name, lhs, rhs)
Sun, 05 Jul 2015 17:50:35 +0900 parser: remove unused parameter 'pos' from _match()
Yuya Nishihara <yuya@tcha.org> [Sun, 05 Jul 2015 17:50:35 +0900] rev 25802
parser: remove unused parameter 'pos' from _match() This backs out 9d1cf337a78d. The issue spotted by that changeset was addressed earlier by d4cafcb63f77.
Sun, 05 Jul 2015 11:17:22 +0900 parser: fill invalid infix and suffix actions by None
Yuya Nishihara <yuya@tcha.org> [Sun, 05 Jul 2015 11:17:22 +0900] rev 25801
parser: fill invalid infix and suffix actions by None This can simplify the expansion of (prefix, infix, suffix) actions.
Sun, 05 Jul 2015 11:06:58 +0900 parser: add comment about structure of elements to each table
Yuya Nishihara <yuya@tcha.org> [Sun, 05 Jul 2015 11:06:58 +0900] rev 25800
parser: add comment about structure of elements to each table
Wed, 15 Jul 2015 04:45:58 +0900 shelve: omit incorrect 'commit' suggestion at 'hg shelve -i'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 15 Jul 2015 04:45:58 +0900] rev 25799
shelve: omit incorrect 'commit' suggestion at 'hg shelve -i' Before this patch, 'hg shelve -i' under non-interactive mode suggests 'use commit instead', and it obviously incorrect, because what user wants to do isn't 'commit' but 'shelve'. To omit incorrect 'commit' suggestion at 'hg shelve -i', this patch specifies 'None' for 'cmdsuggest' argument of 'cmdutil.dorecord()'.
Wed, 15 Jul 2015 04:45:58 +0900 record: omit meaningless 'qrefresh' suggestion at 'hg qrefresh -i'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 15 Jul 2015 04:45:58 +0900] rev 25798
record: omit meaningless 'qrefresh' suggestion at 'hg qrefresh -i' Before this patch, 'hg qrefresh -i' under non-interactive mode suggests 'use qrefresh instead', and it obviously meaningless. To omit meaningless 'qrefresh' suggestion at 'hg qrefresh -i', this patch specifies 'None' for 'cmdsuggest' argument of 'cmdutil.dorecord()'.
Wed, 15 Jul 2015 04:45:58 +0900 record: omit meaningless 'qnew' suggestion at 'hg qnew -i'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 15 Jul 2015 04:45:58 +0900] rev 25797
record: omit meaningless 'qnew' suggestion at 'hg qnew -i' Before this patch, 'hg qnew -i' under non-interactive mode suggests 'use qnew instead', and it obviously meaningless. To omit meaningless 'qnew' suggestion at 'hg qnew -i', this patch adds internal function '_qrecord()' and specifies 'cmdsuggest' for each of 'qrecord' and 'qnew' separately.
Wed, 15 Jul 2015 04:45:58 +0900 record: omit meaningless 'commit' suggestion at 'hg commit -i'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 15 Jul 2015 04:45:58 +0900] rev 25796
record: omit meaningless 'commit' suggestion at 'hg commit -i' Before this patch, 'hg commit -i' under non-interactive mode suggests 'use commit instead', and it obviously meaningless. This patch makes 'record.record'()' examine 'ui.interactive()' and show suggestion by itself before calling 'commands.commit()'. This allows 'commands.commit()' to specify 'None' for 'cmdsuggest' argument of 'cmdutil.dorecord()' to omit meaningless 'commit' suggestion at 'hg commit -i'.
Wed, 15 Jul 2015 03:43:16 +0900 cmdutil: allow callers of cmdutil.dorecord to omit suggestion
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 15 Jul 2015 03:43:16 +0900] rev 25795
cmdutil: allow callers of cmdutil.dorecord to omit suggestion Interactive committing under non-interactive mode shows command suggestion, but sometimes it is meaningless. command suggestion usability ------------ ---------- ----------- record commit commit -i commit meaningless qrecord qnew qnew -i qnew meaningless qrefersh -i qrefresh meaningless shelve -i commit incorrect ------------ ---------- ----------- This patch allows callers of 'cmdutil.dorecord()' to omit meaningless suggestion by passing None or so for 'cmdsuggest' argument of it. This is a preparation for subsequent patches, which fix each suggestion issues above.
Sun, 12 Jul 2015 01:51:01 +0800 spartan: don't drop current revision in log/graph links
Anton Shestakov <av6@dwimlabs.net> [Sun, 12 Jul 2015 01:51:01 +0800] rev 25794
spartan: don't drop current revision in log/graph links Just to be consistent with log and shortlog links, graph links should have a revision context too. And the same goes for the graph page, where it's log and shortlog links that should have context.
Thu, 25 Jun 2015 17:37:14 -0500 hgk: tweak doc format for path option
Matt Mackall <mpm@selenic.com> [Thu, 25 Jun 2015 17:37:14 -0500] rev 25793
hgk: tweak doc format for path option This lets the config checker see it.
Thu, 25 Jun 2015 17:36:46 -0500 acl: mark deprecated config option
Matt Mackall <mpm@selenic.com> [Thu, 25 Jun 2015 17:36:46 -0500] rev 25792
acl: mark deprecated config option This option has been undocumented since day 0.
Thu, 25 Jun 2015 17:35:57 -0500 gpg: mention undocumented options
Matt Mackall <mpm@selenic.com> [Thu, 25 Jun 2015 17:35:57 -0500] rev 25791
gpg: mention undocumented options
Thu, 25 Jun 2015 17:34:53 -0500 check-config: add config option checker
Matt Mackall <mpm@selenic.com> [Thu, 25 Jun 2015 17:34:53 -0500] rev 25790
check-config: add config option checker This script scans files for lines that look like either ui.config usage or config variable documentation. It then ensures: - ui.config calls for each option agree on types and defaults - every option appears to be mentioned in documentation It doesn't complain about devel/experimental options and allows marking options that are not intended to be public. Since we haven't been able to come up with a good scheme for documenting config options at point of use, this will help close the loop of making sure all options that should be documented are.
Tue, 14 Jul 2015 18:50:20 -0500 bookmarks: clear active bookmark on non-linear update
Matt Mackall <mpm@selenic.com> [Tue, 14 Jul 2015 18:50:20 -0500] rev 25789
bookmarks: clear active bookmark on non-linear update
Tue, 14 Jul 2015 16:23:57 +0100 convert: unescape Perforce-escaped special characters in filenames
Eugene Baranov <eug.baranov@gmail.com> [Tue, 14 Jul 2015 16:23:57 +0100] rev 25788
convert: unescape Perforce-escaped special characters in filenames
Mon, 13 Jul 2015 21:37:46 -0700 convert: allow customizing git remote prefix
Durham Goode <durham@fb.com> [Mon, 13 Jul 2015 21:37:46 -0700] rev 25787
convert: allow customizing git remote prefix Previously all git remotes were created as "remote/foo". This patch adds a configuration option for deciding what the prefix should be. This is useful if you want the bookmarks to be "origin/foo" like they are in git, or if you're integrating with the remotenames extension and don't want the local remote/foo bookmarks to overlap with the remote foo bookmarks.
Sun, 12 Jul 2015 17:59:25 +0900 help: rewrite template examples to not use shell escaping
Yuya Nishihara <yuya@tcha.org> [Sun, 12 Jul 2015 17:59:25 +0900] rev 25786
help: rewrite template examples to not use shell escaping Though they work fine even on cmd.exe, these examples could lead to misguided understanding about the template syntax.
Sat, 20 Jun 2015 18:24:11 +0900 templater: unify "string" and "rawstring"
Yuya Nishihara <yuya@tcha.org> [Sat, 20 Jun 2015 18:24:11 +0900] rev 25785
templater: unify "string" and "rawstring" "rawstring" was introduced by 5ab28a2e9962, but it's no longer necessary because c1975809a6b5 and fd5bc660c9f0 changed the way of processing string literals. This patch moves string decoding to the parsing phase as it was before: ('rawstring', s) -> ('string', s) ('string', s) -> ('string', s.decode('string-escape'))
Sun, 21 Jun 2015 13:28:21 +0900 templater: remove processing of "string" literals from tokenizer
Yuya Nishihara <yuya@tcha.org> [Sun, 21 Jun 2015 13:28:21 +0900] rev 25784
templater: remove processing of "string" literals from tokenizer They are processed as "template" strings now.
Mon, 15 Jun 2015 23:11:35 +0900 templater: introduce one-pass parsing of nested template strings
Yuya Nishihara <yuya@tcha.org> [Mon, 15 Jun 2015 23:11:35 +0900] rev 25783
templater: introduce one-pass parsing of nested template strings Instead of re-parsing quoted strings as templates, the tokenizer can delegate the parsing of nested template strings to the parser. It has two benefits: 1. syntax errors can be reported with absolute positions 2. nested template can use quotes just like shell: "{"{rev}"}" It doesn't sound nice that the tokenizer recurses into the parser. We could instead make the tokenize itself recursive, but it would be much more complicated because we would have to adjust binding strengths carefully and put dummy infix operators to concatenate template fragments. Now "string" token without r"" never appears. It will be removed by the next patch.
Mon, 15 Jun 2015 23:03:30 +0900 templater: check existence of closing brace of template string
Yuya Nishihara <yuya@tcha.org> [Mon, 15 Jun 2015 23:03:30 +0900] rev 25782
templater: check existence of closing brace of template string
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip