Sun, 07 Feb 2016 09:36:09 +0100 test-patchbomb: ensure hg email write to stdout
Sébastien Brissaud <sebastien@brissaud.name> [Sun, 07 Feb 2016 09:36:09 +0100] rev 28051
test-patchbomb: ensure hg email write to stdout With -n/--test and if the PAGER environment variable is set, 'hg email' send its output to the user defined pager. If the pager capture the output, the test is unable verify it. Unsetting the PAGER environment variable force 'hg email' to write to stdout.
Wed, 10 Feb 2016 22:44:29 +0900 check-code: examine magic pattern matching against contents of a file
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Feb 2016 22:44:29 +0900] rev 28050
check-code: examine magic pattern matching against contents of a file Before this patch, check-code examines "magic" pattern (e.g. '^#!.*python') matching against not contents of a file, but name of it. This unintentionally omits code checking against Python source file, of which filename doesn't end with "*.py" or "*.cgi", even though contents of it starts with "#!/bin/python" or so. In this change, 'pre' refers contents of file 'f'.
Wed, 10 Feb 2016 22:44:29 +0900 docchecker: use indentation of 4 spaces
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Feb 2016 22:44:29 +0900] rev 28049
docchecker: use indentation of 4 spaces This is fixing for 'must indent 4 spaces' check-code rule. check-code has overlooked this, because a file isn't recognized as one to be checked (this problem is fixed by subsequent patch).
Wed, 10 Feb 2016 22:44:29 +0900 docchecker: remove naked except clause
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Feb 2016 22:44:29 +0900] rev 28048
docchecker: remove naked except clause This is fixing for 'naked except clause' check-code rule. check-code has overlooked this, because a file isn't recognized as one to be checked (this problem is fixed by subsequent patch).
Wed, 10 Feb 2016 22:44:29 +0900 misc: use modern exception syntax
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Feb 2016 22:44:29 +0900] rev 28047
misc: use modern exception syntax This is fixing for 'legacy exception syntax; use "as" instead of ","' check-code rule. check-code has overlooked these, because files aren't recognized as one to be checked (this problem is fixed by subsequent patch).
Wed, 10 Feb 2016 22:44:28 +0900 f: use modern octal number formatting
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Feb 2016 22:44:28 +0900] rev 28046
f: use modern octal number formatting This is fixing for 'legacy octal syntax; use "0o" prefix instead of "0"' check-code rule. check-code has overlooked this, because a file isn't recognized as one to be checked (this problem is fixed by subsequent patch).
Wed, 10 Feb 2016 22:44:28 +0900 hg-ssh: parenthesize non-translated message
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Feb 2016 22:44:28 +0900] rev 28045
hg-ssh: parenthesize non-translated message This is fixing for 'missing _() in ui message (use () to hide false-positives)' check-code rule. check-code has overlooked this, because a file isn't recognized as one to be checked (this problem is fixed by subsequent patch).
Wed, 10 Feb 2016 22:44:28 +0900 f: add whitespace around operator
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Feb 2016 22:44:28 +0900] rev 28044
f: add whitespace around operator This is fixing for 'missing whitespace in expression' check-code rule. check-code has overlooked this, because a file isn't recognized as one to be checked (this problem is fixed by subsequent patch).
Wed, 10 Feb 2016 22:44:28 +0900 check-commit: omit whitespace
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Feb 2016 22:44:28 +0900] rev 28043
check-commit: omit whitespace This is fixing for 'no whitespace around = for named parameters' check-code rule. check-code has overlooked this, because a file isn't recognized as one to be checked (this problem is fixed by subsequent patch).
Wed, 10 Feb 2016 22:44:28 +0900 check-commit: wrap too long line
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Feb 2016 22:44:28 +0900] rev 28042
check-commit: wrap too long line This is fixing for 'line too long' check-code rule. check-code has overlooked this, because a file isn't recognized as one to be checked (this problem is fixed by subsequent patch).
Mon, 08 Feb 2016 21:12:13 +0900 setup: avoid procedure related to hg.exe at setup.py --pure stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 08 Feb 2016 21:12:13 +0900] rev 28041
setup: avoid procedure related to hg.exe at setup.py --pure Before this patch, "setup.py --pure" fails on Windows, because hgbuildscripts.run() tries to copy "hg.exe", which doesn't generated at "setup.py --pure". At that time, run_command('build_hgexe') invoked in hgbuildscripts.run() does nothing and returns successfully. Therefore, subsequent procedure assuming existence of "hg.exe" fails. This patch avoids procedure related to "hg.exe" (= all of hgbuildscripts.run() except for build_scripts.run() invocation) at "setup.py --pure".
Fri, 05 Feb 2016 23:17:07 +0900 help: update template examples to use reST literal syntax stable
Yuya Nishihara <yuya@tcha.org> [Fri, 05 Feb 2016 23:17:07 +0900] rev 28040
help: update template examples to use reST literal syntax This should prevent processing backslashes as reST syntax elements. Before this patch, '\' was lost in HTML and man pages.
Sat, 06 Feb 2016 20:43:20 +0900 ui: fix crash by non-interactive prompt echo for user name stable
Yuya Nishihara <yuya@tcha.org> [Sat, 06 Feb 2016 20:43:20 +0900] rev 28039
ui: fix crash by non-interactive prompt echo for user name Since we've dropped a str cast at write() by f04bd381e8c0, ui.prompt() should convert default to '' if it is None. Otherwise, write() would fail with "TypeError: object of type 'NoneType' has no len()". This patch includes the tests for both interactive and non-interactive cases because "ui.askusername" was never tested.
Wed, 10 Feb 2016 22:53:17 +0900 zeroconf: forward all arguments passed to ui.configitems() wrapper stable
Yuya Nishihara <yuya@tcha.org> [Wed, 10 Feb 2016 22:53:17 +0900] rev 28038
zeroconf: forward all arguments passed to ui.configitems() wrapper f43988e5954c added 'ignoresub' argument to ui.configitems(), but zeroconf wrapper wasn't updated. It caused the following crash: Traceback (most recent call last): File "bin/hg", line 43, in <module> mercurial.dispatch.run() File "lib/python/mercurial/dispatch.py", line 54, in run sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255) File "lib/python/mercurial/dispatch.py", line 120, in dispatch ret = _runcatch(req) File "lib/python/mercurial/dispatch.py", line 191, in _runcatch return _dispatch(req) File "lib/python/mercurial/dispatch.py", line 924, in _dispatch cmdpats, cmdoptions) File "lib/python/mercurial/dispatch.py", line 681, in runcommand ret = _runcommand(ui, options, cmd, d) File "lib/python/mercurial/extensions.py", line 195, in closure return func(*(args + a), **kw) File "lib/python/hgext/zeroconf/__init__.py", line 180, in cleanupafterdispatch return orig(ui, options, cmd, cmdfunc) File "lib/python/mercurial/dispatch.py", line 1055, in _runcommand return checkargs() File "lib/python/mercurial/dispatch.py", line 1015, in checkargs return cmdfunc() File "lib/python/mercurial/dispatch.py", line 921, in <lambda> d = lambda: util.checksignature(func)(ui, *args, **cmdoptions) File "lib/python/mercurial/util.py", line 991, in check return func(*args, **kwargs) File "lib/python/mercurial/commands.py", line 5405, in paths pathitems = sorted(ui.paths.iteritems()) File "lib/python/mercurial/util.py", line 723, in __get__ result = self.func(obj) File "lib/python/mercurial/ui.py", line 619, in paths return paths(self) File "lib/python/mercurial/ui.py", line 1099, in __init__ for name, loc in ui.configitems('paths', ignoresub=True): File "lib/python/mercurial/extensions.py", line 195, in closure return func(*(args + a), **kw) TypeError: configitems() got an unexpected keyword argument 'ignoresub' We have no test coverage for zeroconf, so I've added a minimal test that could reproduce this problem.
Mon, 08 Feb 2016 22:50:19 +0000 run-tests: warn about symlinks to non hg scripts
timeless <timeless@mozdev.org> [Mon, 08 Feb 2016 22:50:19 +0000] rev 28037
run-tests: warn about symlinks to non hg scripts If you symlink /usr/bin/true to /something/hg and try to run --with-hg=/something/hg, run-tests will end up running /usr/bin/hg, not /usr/bin/true.
Mon, 08 Feb 2016 18:29:17 +0900 tests: make chunk header of external diff glob-ed for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 08 Feb 2016 18:29:17 +0900] rev 28036
tests: make chunk header of external diff glob-ed for portability Before this patch, some tests using external "diff" command via extdiff extension fail on Solaris, because system standard "diff" (= /usr/bin/diff) on Solaris always generates chunk headers below: - "@@ -1,0 +1,nnnn @@" for added file - "@@ -1,nnnn +1,0 @@" for removed file even though "diff" on Linux generates: - "@@ -0,0 +1,nnnn @@" for added file - "@@ -1,nnnn +0,0 @@" for removed file This patch makes chunk header of external diff glob-ed for portability of tests. "hg diff" output follows Linux style, and there are many such diff output lines in existing tests. This is reason why this patch doesn't add check-code.py any rule to detect such diff output in tests. This patch is a part of making tests using external "diff" portable, and test-subrepo-deep-nested-change.t isn't yet portable even after this patch.
Mon, 08 Feb 2016 18:29:17 +0900 tests: make chunk header of external diff glob-ed for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 08 Feb 2016 18:29:17 +0900] rev 28035
tests: make chunk header of external diff glob-ed for portability Before this patch, some tests using external "diff" command via extdiff extension fail on Solaris, because system standard "diff" (= /usr/bin/diff) on Solaris always formats chunk header in the style below: @@ -X.x +Y.y @@ even though "diff" on Linux sometimes omits ".x" and/or ".y" in it. This patch makes chunk header of external diff glob-ed for portability of tests, and adds check-code.py rules to detect such diff output in tests. This patch also changes "hg diff" output in test-subrepo-git to simplify detection rules, even though it is certainly portable because these lines are generated by "git" command. This patch is a part of making tests using external "diff" portable, and tests below aren't yet portable even after this patch. test-largefiles-update.t test-subrepo-deep-nested-change.t
Mon, 08 Feb 2016 18:29:17 +0900 tests: make timezone in diff output glob-ed for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 08 Feb 2016 18:29:17 +0900] rev 28034
tests: make timezone in diff output glob-ed for portability Before this patch, some tests using external "diff" command via extdiff extension fail on Solaris, because system standard "diff" (= /usr/bin/diff) on Solaris doesn't display timezone for timestamp of each files in diff output. This patch makes timezone in external diff output glob-ed for portability of tests, and adds check-code.py a rule to detect such
Mon, 08 Feb 2016 18:29:17 +0900 tests: omit -p for external diff via extdiff extension for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 08 Feb 2016 18:29:17 +0900] rev 28033
tests: omit -p for external diff via extdiff extension for portability Before this patch, some tests using external "diff" command via extdiff extension fail on Solaris, because "-p" (show which C function each change is in) option isn't supported by system standard "diff" on Solaris, even though extdiff passes it to external "diff" by default. Fortunately, this non-portable option isn't important for (current, at least) tests using external "diff" command via extdiff extension. This patch omits "-p" for external "diff" command via extdiff extension for portability of tests, and adds check-code.py a rule to detect invocation of "diff" with "-p". Newly added check-code.py rule examines only lines generated by external "diff" with "-r", because strict examination might misidentify "hg diff -p" or other complicated lines consisting of "diff" string as wrong one. This patch is a part of making tests using external "diff" portable, and tests below aren't yet portable even after this patch. test-graft.t test-largefiles-update.t test-subrepo-deep-nested-change.t
Sun, 07 Feb 2016 22:18:24 -0800 update: check command line before modifying repo
Martin von Zweigbergk <martinvonz@google.com> [Sun, 07 Feb 2016 22:18:24 -0800] rev 28032
update: check command line before modifying repo A failed command should not have any effect on the repo.
Sun, 07 Feb 2016 21:44:38 -0800 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com> [Sun, 07 Feb 2016 21:44:38 -0800] rev 28031
treemanifest: fix debugrebuildfncache When I taught debugrebuildfncache about dirlogs in fb92927f9775 (treemanifests: fix streaming clone, 2016-02-04), I added a last-minute "if 'treemanifest' in repo" guard. That should have been checking for "... in repo.requirements". Fix that and add tests for it.
Wed, 03 Feb 2016 15:12:01 +0000 update: warn about other topological head in pull and unbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 03 Feb 2016 15:12:01 +0000] rev 28030
update: warn about other topological head in pull and unbundle Other commands have a '--update' triggering a bare update. We now issue the message introduced into the previous changeset for these too.
Tue, 02 Feb 2016 14:49:02 +0000 update: warn about other topological heads on bare update
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 02 Feb 2016 14:49:02 +0000] rev 28029
update: warn about other topological heads on bare update A concern around the user experience of Mercurial is user getting stuck on there own topological branch forever. For example, someone pulling another topological branch, missing that message in pull asking them to merge and getting stuck on there own local branch. The current way to "address" this concern was for bare 'hg update' to target the tipmost (also latest pulled) changesets and complain when the update was not linear. That way, failure to merge newly pulled changesets would result in some kind of failure. Yet the failure was quite obscure, not working in all cases (eg: commit right after pull) and the behavior was very impractical in the common case (eg: issue4673). To be able to change that behavior, we need to provide other ways to alert a user stucks on one of many topological head. We do so with an extra message after bare update: 1 other heads for branch "default" Bookmark get its own special version: 1 other divergent bookmarks for "foobar" There is significant room to improve the message itself, and we should augment it with hint about how to see theses other heads or handle the situation (see in-line comment). But having "a" message is already a significant improvement compared to the existing situation. Once we have it we can iterate on a better version of it. As having such message is an important step toward changing the default destination for update and other nicety, I would like to move forward quickly on getting such message. This was discussed during London - October 2015 Sprint.
Wed, 03 Feb 2016 04:37:04 +0000 tests: mock getpid to reduce glob usage
timeless <timeless@mozdev.org> [Wed, 03 Feb 2016 04:37:04 +0000] rev 28028
tests: mock getpid to reduce glob usage With util.getpid, it is now possible to define fixed pids. Future iterations can define a map of pids on a locked first come first serve basis to create a more realistic harness, but for now this is good enough. This applies to blackbox, but could apply to other tests as well.
Wed, 03 Feb 2016 09:11:22 +0000 util: enable getpid to be replaced
timeless <timeless@mozdev.org> [Wed, 03 Feb 2016 09:11:22 +0000] rev 28027
util: enable getpid to be replaced This will enable tests to write stable process ids.
Mon, 08 Feb 2016 00:47:36 +0000 blackbox: refactor use of vfs as _bbvfs
timeless <timeless@mozdev.org> [Mon, 08 Feb 2016 00:47:36 +0000] rev 28026
blackbox: refactor use of vfs as _bbvfs
Wed, 03 Feb 2016 15:18:29 +0000 blackbox: flush output file descriptor
timeless <timeless@mozdev.org> [Wed, 03 Feb 2016 15:18:29 +0000] rev 28025
blackbox: flush output file descriptor Without this, when there are multiple ui views, each blackbox will have its own file handle, and the logging will be in a really bad order. Also, because of the way blackbox works, it never closes its file handles, which means the last output before exit is often lost.
Wed, 03 Feb 2016 18:15:18 +0000 tests: change blackbox test to work cross platform
timeless <timeless@mozdev.org> [Wed, 03 Feb 2016 18:15:18 +0000] rev 28024
tests: change blackbox test to work cross platform While it is not easy to make a file 000 on Windows, you can emulate most of the behaviors by replacing the file with a directory. Also corrects test description to properly indicate that failing to read from the log is fatal.
Mon, 01 Feb 2016 20:28:32 -0800 merge: document checkignored and checkunknown configs again
Siddharth Agarwal <sid0@fb.com> [Mon, 01 Feb 2016 20:28:32 -0800] rev 28023
merge: document checkignored and checkunknown configs again These options were undocumented for 3.7 because of an issue found during the freeze (see rev 7cb7264cfd52). This issue has now been fixed, so we can document these options again.
Wed, 03 Feb 2016 13:12:06 -0800 rebase: respect checkunknown and checkignored in more cases
Siddharth Agarwal <sid0@fb.com> [Wed, 03 Feb 2016 13:12:06 -0800] rev 28022
rebase: respect checkunknown and checkignored in more cases checkunknown and checkignored are currently respected for updates and regular merges, but not for certain kinds of rebases. To be precise, they aren't respected for rebases when: (1) we're rebasing while currently on the destination commit, and (2) an untracked or ignored file F is currently in the working copy, and (3) the same file F is in a source commit, and (4) F has different contents in the source commit. This happens because rebases set force to True when calling merge.update. Setting force to True makes a lot of sense in general, but it turns out the force option is overloaded: there's a deprecated '--force' option in merge that allows you to merge in outstanding changes, including changes in untracked files. We use the 'mergeforce' parameter to tell those two cases apart. I think the behavior during rebases when checkunknown is 'abort' (the default) is wrong -- we should abort on or overwrite differing untracked files, not try to merge them in. However that currently breaks rebases by aborting in the middle -- we need better handling for that case before we can change the default.
Wed, 03 Feb 2016 13:11:34 -0800 test-merge-force: add tests for merge.checkunknown=warn
Siddharth Agarwal <sid0@fb.com> [Wed, 03 Feb 2016 13:11:34 -0800] rev 28021
test-merge-force: add tests for merge.checkunknown=warn In an upcoming patch we're going to change the behavior of some merges with merge.checkunknown=warn or ignore -- ensure that the behavior of the deprecated 'merge --force' remains the same.
Mon, 01 Feb 2016 20:28:32 -0800 merge: tell _checkunknownfiles about whether this was merge --force
Siddharth Agarwal <sid0@fb.com> [Mon, 01 Feb 2016 20:28:32 -0800] rev 28020
merge: tell _checkunknownfiles about whether this was merge --force In an upcoming patch we'll have different behavior here for when 'merge --force' is used as opposed to when other kinds of force operations are performed, like rebases.
Mon, 01 Feb 2016 20:28:32 -0800 merge: add missing doc for 'labels' parameter
Siddharth Agarwal <sid0@fb.com> [Mon, 01 Feb 2016 20:28:32 -0800] rev 28019
merge: add missing doc for 'labels' parameter
Mon, 01 Feb 2016 20:28:32 -0800 merge: move abort/warn checks up to the top level of _checkunknownfiles
Siddharth Agarwal <sid0@fb.com> [Mon, 01 Feb 2016 20:28:32 -0800] rev 28018
merge: move abort/warn checks up to the top level of _checkunknownfiles In upcoming patches, we're also going to do these checks when force is True.
Fri, 05 Feb 2016 21:09:32 -0800 match: rename "narrowmatcher" to "subdirmatcher" (API)
Martin von Zweigbergk <martinvonz@google.com> [Fri, 05 Feb 2016 21:09:32 -0800] rev 28017
match: rename "narrowmatcher" to "subdirmatcher" (API) I keep mistaking "narrowmatcher" for narrowhg's narrowmatcher. "subdirmatcher" seems more to the point anyway.
Wed, 03 Feb 2016 18:59:35 +0000 tests: relax test-devel-warnings to reduce false positives
timeless <timeless@mozdev.org> [Wed, 03 Feb 2016 18:59:35 +0000] rev 28016
tests: relax test-devel-warnings to reduce false positives This test is interested in warning output, so glob away line numbers and hashes as they aren't relevant to its core.
Sun, 07 Feb 2016 00:49:31 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 07 Feb 2016 00:49:31 -0600] rev 28015
merge with stable
Tue, 19 Jan 2016 18:20:13 +0000 chgserver: create new process group after fork (issue5051)
Jun Wu <quark@fb.com> [Tue, 19 Jan 2016 18:20:13 +0000] rev 28014
chgserver: create new process group after fork (issue5051) This is to make SIGTSTP work. Before the patch, the server process group is considered "orphaned" and will ignore SIGTSTP, SIGTTIN, SIGTTOU, according to POSIX. See the comment above `will_become_orphaned_pgrp` in `kernel/exit.c` from Linux 4.3 for details. SIGTSTP is important if chgserver runs some ncurses commend like `commit -i`. Ncurses has its own SIGTSTP handler which will do the following: 1. Clean the screen 2. Stop itself by resending SIGTSTP to itself 3. Restore the screen If SIGTSTP is ignored, step 2 will be a noop, which means the process cannot be suspended properly. In order to make things work, chg client needs to forward SIGTSTP and SIGCONT to server as well.
Fri, 05 Feb 2016 16:54:01 -0600 check-commit: check for double-addition of blank lines
Matt Mackall <mpm@selenic.com> [Fri, 05 Feb 2016 16:54:01 -0600] rev 28013
check-commit: check for double-addition of blank lines Previously, we were only checking for a blank line being added next to an existing one. Now we also check for two being added at the same time.
Fri, 05 Feb 2016 16:52:02 -0600 check-commit: scan for multiple instances of error patterns
Matt Mackall <mpm@selenic.com> [Fri, 05 Feb 2016 16:52:02 -0600] rev 28012
check-commit: scan for multiple instances of error patterns
Fri, 05 Feb 2016 10:22:14 -0800 merge: add file ancestor linknode to mergestate
Durham Goode <durham@fb.com> [Fri, 05 Feb 2016 10:22:14 -0800] rev 28011
merge: add file ancestor linknode to mergestate During a merge, each file has a current commitnode+filenode, an other commitnode+filenode, and an ancestor commitnode+filenode. The ancestor commitnode is not stored though, and we rely on the ability for the filectx() to look up the commitnode by using the filenode's linkrev. In alternative backends (like remotefilelog), linkrevs may have restriction that prevent arbitrary linkrev look up given a filenode. This patch accounts for that by storing the ancestor commitnode in the merge state so that it is available later at resolve time. This results in some test changes because the ancestor commitnode we're using at resolve time changes slightly. Before, we used the linkrev commit, which is the earliest commit that introduced that particular filenode (which may not be the latest common ancestor of the commits being merged). Now we use the latest common ancestor of the merged commits as the commitnode. This is fine though, because that commit contains the same filenode as the linkrev'd commit.
Fri, 05 Feb 2016 10:15:28 -0800 merge: add debugmergestate support for _stateextras
Durham Goode <durham@fb.com> [Fri, 05 Feb 2016 10:15:28 -0800] rev 28010
merge: add debugmergestate support for _stateextras Now that we can store extras for each file, we need to have support for showing it in debugmergestate (the tests depend on this).
Fri, 05 Feb 2016 10:15:28 -0800 merge: add state extras merge state data
Durham Goode <durham@fb.com> [Fri, 05 Feb 2016 10:15:28 -0800] rev 28009
merge: add state extras merge state data In future commits we will want to store more data related to each file in the merge state. This patch adds an optional record for storing a dictionary of extras for each file.
Fri, 05 Feb 2016 13:30:25 -0800 revset: use manifest.matches in _follow revset
Durham Goode <durham@fb.com> [Fri, 05 Feb 2016 13:30:25 -0800] rev 28008
revset: use manifest.matches in _follow revset The old _follow revset iterated over every file in the commit and checked if it matched. For repos with large manifests, this could take 500ms. By switching to use manifest.matches() we can take advantage of the fastpaths built in to manifest.py that allows iterating over only the files in the matcher when it's a simple matcher. This brings the time spent down from 500ms to 0ms during simple operations like 'hg log -f file.txt'.
Thu, 04 Feb 2016 08:34:07 -0800 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com> [Thu, 04 Feb 2016 08:34:07 -0800] rev 28007
treemanifests: fix streaming clone Similar to the previous patch, the .hg/store/meta/ directory does not get copied when when using "hg clone --uncompressed". Fix by including "meta/" in store.datafiles(). This seems safe to do, as there are only a few users of this method. "hg manifest" already filters the paths by "data/" prefix. The calls from largefiles also seem safe. The use in verify needs updating to prevent it from mistaking dirlogs for orphaned filelogs. That change is included in this patch. Since the dirlogs will now be in the fncache when using fncachestore, let's also update debugrebuildfncache(). That will also allow any existing treemanifest repos to get their dirlogs into the fncache. Also update test-treemanifest.t to use an a directory name that requires dot-encoding and uppercase-encoding so we test that the path encoding works.
Tue, 02 Feb 2016 17:31:17 -0800 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com> [Tue, 02 Feb 2016 17:31:17 -0800] rev 28006
treemanifests: fix local clone When doing a local clone with treemanifests, the .hg/store/meta/ directory currently does not get copied. To fix it, all we need to do is to add it to the list of directories to copy.
Wed, 03 Feb 2016 15:35:23 -0800 tests: simplify treemanifest test by backing up entire .hg/store
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Feb 2016 15:35:23 -0800] rev 28005
tests: simplify treemanifest test by backing up entire .hg/store
Wed, 03 Feb 2016 13:52:04 +0000 histedit: limit updated and merging output to important updates
timeless <timeless@mozdev.org> [Wed, 03 Feb 2016 13:52:04 +0000] rev 28004
histedit: limit updated and merging output to important updates Output is retained when: * There's a conflict * User asked to edit * User aborts otherwise, output is suppressed
Thu, 04 Feb 2016 23:30:49 +0000 tests: fix rebase-abort directory nesting
timeless <timeless@mozdev.org> [Thu, 04 Feb 2016 23:30:49 +0000] rev 28003
tests: fix rebase-abort directory nesting Without this change, some test repositories were nesting needlessly
Thu, 04 Feb 2016 23:29:32 +0000 rebase: document that tool does not apply to deleted files
timeless <timeless@mozdev.org> [Thu, 04 Feb 2016 23:29:32 +0000] rev 28002
rebase: document that tool does not apply to deleted files
Thu, 04 Feb 2016 22:14:53 +0000 rebase: mention help merge-tools in help
timeless <timeless@mozdev.org> [Thu, 04 Feb 2016 22:14:53 +0000] rev 28001
rebase: mention help merge-tools in help
Fri, 05 Feb 2016 13:23:24 -0800 copies: optimize forward copy detection logic for rebases
Durham Goode <durham@fb.com> [Fri, 05 Feb 2016 13:23:24 -0800] rev 28000
copies: optimize forward copy detection logic for rebases Forward copy detection (i.e. detecting what files have been moved/copied in commit X since ancestor Y) previously required diff'ing the manifests of both X and Y. This was expensive since it required reading both entire manifests and doing a set difference (they weren't already in a set because of the lazymanifest work). This cost almost 1 second on very large repositories, and happens N times for a rebase of N commits. This patch optimizes it for the case of rebase. In a rebase, we are comparing a commit against it's immediate parent, and therefore we can know what files changed by looking at ctx.files(). This lets us drastically decrease the size of the set comparison, and makes it O(# of changes) instead of O(size of manifest). This makes it take 1ms instead of 1000ms.
Tue, 26 Jan 2016 23:05:19 +0900 tests: pass settings of hypothesis by with statement
Yuya Nishihara <yuya@tcha.org> [Tue, 26 Jan 2016 23:05:19 +0900] rev 27999
tests: pass settings of hypothesis by with statement given(..., settings=) is no longer available in Hypothesis 2.0.0. https://github.com/DRMacIver/hypothesis/commit/7712c01
Tue, 26 Jan 2016 22:44:29 +0900 tests: adjust for code move in Hypothesis 2.0.0
Yuya Nishihara <yuya@tcha.org> [Tue, 26 Jan 2016 22:44:29 +0900] rev 27998
tests: adjust for code move in Hypothesis 2.0.0 It appears that the Settings class was renamed to settings, and because of this, the settings module was renamed to configuration. https://github.com/DRMacIver/hypothesis/commit/a0e663b
Tue, 26 Jan 2016 23:33:53 +0900 test-highlight: add normalization rule for Pygments 2.1
Yuya Nishihara <yuya@tcha.org> [Tue, 26 Jan 2016 23:33:53 +0900] rev 27997
test-highlight: add normalization rule for Pygments 2.1 It appears that several classes have 'h', '1', '2' suffixes on Pygments 2.1, which is the current version on Debian sid.
Tue, 26 Jan 2016 23:27:12 +0900 test-highlight: factor out function that normalizes pygments output
Yuya Nishihara <yuya@tcha.org> [Tue, 26 Jan 2016 23:27:12 +0900] rev 27996
test-highlight: factor out function that normalizes pygments output
Tue, 26 Jan 2016 23:26:05 +0900 test-highlight: unify normalization rule of pygments output
Yuya Nishihara <yuya@tcha.org> [Tue, 26 Jan 2016 23:26:05 +0900] rev 27995
test-highlight: unify normalization rule of pygments output We had two variants for unknown reason, s/mf/mi/g and s/mi/mf/g. This patch unifies them to s/mf/mi/g so that we can introduce a utility function.
Fri, 05 Feb 2016 22:32:05 +0900 tests: remove protected file forcibly for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 05 Feb 2016 22:32:05 +0900] rev 27994
tests: remove protected file forcibly for portability Before this patch, test-command-template.t is timed out on Solaris, because "rm" on permission denied file implies prompting "override protection 0 (yes/no)?" and blocks execution of test script.
Fri, 05 Feb 2016 22:32:05 +0900 tests: dump journal file by python script instead of sed for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 05 Feb 2016 22:32:05 +0900] rev 27993
tests: dump journal file by python script instead of sed for portability Before this patch, test-repair-strip.t fails on Solaris, because of "sed" on it doesn't work as expected if input contains null ('\0') character.
Fri, 05 Feb 2016 22:32:05 +0900 tests: execute check-config.py without xargs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 05 Feb 2016 22:32:05 +0900] rev 27992
tests: execute check-config.py without xargs Before this patch, test-check-config.t fails on Solaris, because "xargs" doesn't invoke check-config.py with all filenames at once. "xargs" may invoke specified command multiple times with part of arguments given from stdin: according to "xargs(1)" man page, this dividing arguments is system-dependent. For portability of test-check-config.t, this patch adds "xargs" like mode to check-config.py and executes it in test-check-config.t without "xargs".
(0) -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 tip