Thu, 06 Jul 2017 14:52:34 +0200 effectflag: detect when description changed
Boris Feld <boris.feld@octobus.net> [Thu, 06 Jul 2017 14:52:34 +0200] rev 34415
effectflag: detect when description changed Store in effect flag when the description changed between the predecessor and its successors. It can happens with "hg commit --amend -e", "hg amend -e" or "histedit". Differential Revision: https://phab.mercurial-scm.org/D535
Thu, 06 Jul 2017 14:51:08 +0200 tests: add tests for effect flags
Boris Feld <boris.feld@octobus.net> [Thu, 06 Jul 2017 14:51:08 +0200] rev 34414
tests: add tests for effect flags Add all the tests in this patch, it makes the patch quite big but will clarify the following patches impact on tests. Differential Revision: https://phab.mercurial-scm.org/D534
Thu, 06 Jul 2017 14:50:17 +0200 effectflag: store an empty effect flag for the moment
Boris Feld <boris.feld@octobus.net> [Thu, 06 Jul 2017 14:50:17 +0200] rev 34413
effectflag: store an empty effect flag for the moment The idea behind effect flag is to store additional information in obs-markers about what changed between a changeset and its successor(s). It's a low-level information that comes without guarantees. This information can be computed a posteriori, but only if we have all changesets locally. This is not the case with distributed workflows where you work with several people or on several computers (eg: laptop + build server). Storing the effect-flag as a bitfield has several advantages: - It's compact, we are using one byte per obs-marker at most for the effect- flag. - It's compoundable, the obsfate log approach needs to display evolve history that could spans several obs-markers. Computing the effect-flag between a changeset and its grand-grand-grand-successor is simple thanks to the bitfield. The effect-flag design has also some limitations: - Evolving a changeset and reverting these changes just after would lead to two obs-markers with the same effect-flag without information that the first and third changesets are the same. The effect-flag current design is a trade-off between compactness and usefulness. Storing this information helps commands to display a more complete and understandable evolve history. For example, obslog (an Evolve command) use it to improve its output: x 62206adfd571 (34302) obscache: skip updating outdated obscache... | rewritten(parent) by Matthieu Laneuville <matthieu.laneuville@octobus... | rewritten(content) by Boris Feld <boris.feld@octobus.net> The effect flag is stored in obs-markers metadata while we iterate on the information we want to store. We plan to extend the existing obsmarkers bit-field when the effect flag design will be stabilized. It's different from the CommitCustody concept, effect-flag are not signed and can be forged. It's also different from the operation metadata as the command name (for example: amend) could alter a changeset in different ways (changing the content with hg amend, changing the description with hg amend -e, changing the user with hg amend -U). Also it's compatible with every custom command that writes obs-markers without needing to be updated. The effect-flag is placed behind an experimental flag set to off by default. Hook the saving of effect flag in create markers, but store only an empty one for the moment, I will refine the values in effect flag in following patches. For more information, see: https://www.mercurial-scm.org/wiki/ChangesetEvolutionDevel#Record_types_of_operation Differential Revision: https://phab.mercurial-scm.org/D533
Fri, 30 Jun 2017 03:44:00 +0200 configitems: register the 'profiling.type' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:44:00 +0200] rev 34412
configitems: register the 'profiling.type' config
Fri, 30 Jun 2017 03:43:57 +0200 configitems: register the 'profiling.showmin' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:57 +0200] rev 34411
configitems: register the 'profiling.showmin' config
Fri, 30 Jun 2017 03:43:56 +0200 configitems: register the 'profiling.showmax' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:56 +0200] rev 34410
configitems: register the 'profiling.showmax' config
Fri, 30 Jun 2017 03:43:55 +0200 configitems: register the 'profiling.output' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:55 +0200] rev 34409
configitems: register the 'profiling.output' config
Sun, 01 Oct 2017 16:46:02 +0100 dirstate: implement __len__ on dirstatemap (issue5695)
Simon Whitaker <swhitaker@fb.com> [Sun, 01 Oct 2017 16:46:02 +0100] rev 34408
dirstate: implement __len__ on dirstatemap (issue5695) Differential Revision: https://phab.mercurial-scm.org/D884
Sun, 01 Oct 2017 12:54:35 +0100 obsmarker: crash more helpfully when metadata fields are >255bytes (issue5681)
Simon Whitaker <swhitaker@fb.com> [Sun, 01 Oct 2017 12:54:35 +0100] rev 34407
obsmarker: crash more helpfully when metadata fields are >255bytes (issue5681) Various mutators fail when attempting to write obsmarkers with metadata fields longer than 255 bytes, since the length of mwetadata fields is stored in u8s. This change raises a more helpful error in such circumstances. Differential Revision: https://phab.mercurial-scm.org/D865
Sun, 01 Oct 2017 03:31:32 -0700 deb: build and install chg
Kyle Lippincott <spectral@google.com> [Sun, 01 Oct 2017 03:31:32 -0700] rev 34406
deb: build and install chg Differential Revision: https://phab.mercurial-scm.org/D883
Sun, 01 Oct 2017 02:53:10 -0700 deb: install zsh completions to /usr/share/zsh/vendor-completions
Kyle Lippincott <spectral@google.com> [Sun, 01 Oct 2017 02:53:10 -0700] rev 34405
deb: install zsh completions to /usr/share/zsh/vendor-completions This location is used by debian (and ubuntu) to store completions provided by other deb packages. The default fpath appears to have this before any of the zsh-provided instances of the completions, so this should take precedence. Differential Revision: https://phab.mercurial-scm.org/D882
Sun, 01 Oct 2017 14:37:50 +0100 releasenotes: display release notes when no filename is specified
Rishabh Madan <rishabhmadan96@gmail.com> [Sun, 01 Oct 2017 14:37:50 +0100] rev 34404
releasenotes: display release notes when no filename is specified If the filename is not specified while using --rev, the notes for the specified revs will just be displayed on screen. Differential Revision: https://phab.mercurial-scm.org/D877
Sun, 01 Oct 2017 12:29:33 +0100 hgweb: use parsebool for parsing diff query string options
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 01 Oct 2017 12:29:33 +0100] rev 34403
hgweb: use parsebool for parsing diff query string options Differential Revision: https://phab.mercurial-scm.org/D875
Sun, 01 Oct 2017 14:02:47 +0100 hgweb: remove extra </div>
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 01 Oct 2017 14:02:47 +0100] rev 34402
hgweb: remove extra </div> This was accidentally added in 6797f1fbc642. Differential Revision: https://phab.mercurial-scm.org/D880
Sun, 01 Oct 2017 05:21:32 -0700 tests: add "have" check for dpkg builddeps
Kyle Lippincott <spectral@google.com> [Sun, 01 Oct 2017 05:21:32 -0700] rev 34401
tests: add "have" check for dpkg builddeps Differential Revision: https://phab.mercurial-scm.org/D879
Sun, 01 Oct 2017 04:37:56 -0700 tests: expect parsers.so in cext, parsers.py in pure (test-debian-packages)
Kyle Lippincott <spectral@google.com> [Sun, 01 Oct 2017 04:37:56 -0700] rev 34400
tests: expect parsers.so in cext, parsers.py in pure (test-debian-packages) Differential Revision: https://phab.mercurial-scm.org/D878
Sun, 01 Oct 2017 04:10:01 -0700 hghave: check for debuild being installed as well
Kyle Lippincott <spectral@google.com> [Sun, 01 Oct 2017 04:10:01 -0700] rev 34399
hghave: check for debuild being installed as well Differential Revision: https://phab.mercurial-scm.org/D874
Sun, 01 Oct 2017 03:24:20 -0700 changelog: use attrs instead of namedtuple
Siddharth Agarwal <sid0@fb.com> [Sun, 01 Oct 2017 03:24:20 -0700] rev 34398
changelog: use attrs instead of namedtuple See http://www.attrs.org/en/stable/why.html#namedtuples for why attrs are better than namedtuples. Differential Revision: https://phab.mercurial-scm.org/D868
Sun, 01 Oct 2017 04:14:16 -0700 thirdparty: vendor attrs
Siddharth Agarwal <sid0@fb.com> [Sun, 01 Oct 2017 04:14:16 -0700] rev 34397
thirdparty: vendor attrs The attrs package allows defining namedtuple-like classes with no weird behavior and no runtime performance cost. This patch vendors in attrs 17.2.0. # no-check-commit Differential Revision: https://phab.mercurial-scm.org/D867
Sun, 01 Oct 2017 04:04:18 -0700 python3: don't byte mangle third-party packages
Siddharth Agarwal <sid0@fb.com> [Sun, 01 Oct 2017 04:04:18 -0700] rev 34396
python3: don't byte mangle third-party packages Third-party packages are already expected to be dual-version clean. Differential Revision: https://phab.mercurial-scm.org/D871
Sun, 01 Oct 2017 03:24:19 -0700 tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com> [Sun, 01 Oct 2017 03:24:19 -0700] rev 34395
tests: disable lints on mercurial/thirdparty In the next patch, this directory will be used to vendor in some third-party code. Differential Revision: https://phab.mercurial-scm.org/D866
Sun, 01 Oct 2017 03:48:28 -0700 hghave: fix dpkg --version check to work on recent dpkg versions
Kyle Lippincott <spectral@google.com> [Sun, 01 Oct 2017 03:48:28 -0700] rev 34394
hghave: fix dpkg --version check to work on recent dpkg versions Differential Revision: https://phab.mercurial-scm.org/D869
Sun, 01 Oct 2017 11:29:20 +0100 commands: rename clone --uncompressed to --stream and document
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 01 Oct 2017 11:29:20 +0100] rev 34393
commands: rename clone --uncompressed to --stream and document --uncompressed isn't a very good name and its description in the help documentation isn't very useful. We refer to this concept as "stream clones" in a number of places. I think it makes sense to change the user-facing argument to use the mode --stream. So this commit does that. We keep --uncompressed around for backwards compatibility. While we're here, we overhaul the help docs for streaming clones to be somewhat useful. All tests have been updated to reflect the new preferred --stream argument. A test for backwards compatibility of --uncompressed has been added. .. bc:: `hg clone --stream` should now be used instead of --uncompressed. --uncompressed is marked as deprecated and is an alias for --stream. There is no schedule for elimination of --uncompressed. Differential Revision: https://phab.mercurial-scm.org/D864
Sun, 01 Oct 2017 10:17:11 +0100 commands: remove suggestion to clone via `cp -al`
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 01 Oct 2017 10:17:11 +0100] rev 34392
commands: remove suggestion to clone via `cp -al` This was added in 2df98f616645 in 2006. This may be possible but it seems like a bad idea to even suggest it. Differential Revision: https://phab.mercurial-scm.org/D863
Sat, 30 Sep 2017 09:01:36 +0100 hgweb: add HTML elements to control whitespace settings for annotate
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 30 Sep 2017 09:01:36 +0100] rev 34391
hgweb: add HTML elements to control whitespace settings for annotate Building on top of the new URL query string arguments to control whitespace settings for annotate, this commit adds HTML checkboxes reflecting the values of these arguments to the paper and gitweb themes. The actual diff settings are now exported to the templating layer. The HTML templates add these as data-* attributes so they are accessible to the DOM. A new <form> with various <input> elements is added. The <form> is initially hidden via CSS. A shared JavaScript function (which runs after the <form> has been rendered but before the annotate HTML (because annotate HTML could take a while to load and we want the form to render quickly) takes care of setting the checked state of each box from the data-* attributes. It also registers an event handler to modify the URL and refresh the page whenever the checkbox state is changed. I'm using the URLSearchParams interface to perform URL manipulation. https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams tells me this may not be supported on older web browsers. Yes, apparently the web API didn't have a standard API to parse and format query strings until recently. Hence the check for the presence of this feature in the JavaScript. If the browser doesn't support the feature, the <form> will remain hidden and behavior will like it currently is. We could polyfill this feature or implement our own query string parsing. But I'm lazy and this could be done as a follow-up if people miss it. We could certainly expand this feature to support more diff options (such as lines of context). That's why the potentially reusable code is stored in a reusable place. It is also certainly possible to add diff controls to other pages that display diffs. But since Mozillians are making noise about controlling which revisions annotate shows, I figured I'd start there. .. feature:: Control whitespace settings for annotation on hgweb /annotate URLs on hgweb now accept query string arguments to influence how whitespace changes impact results. The arguments "ignorews," "ignorewsamount," "ignorewseol," and "ignoreblanklines" now have the same meaning as their [annotate] config section counterparts. Any provided setting overrides the server default. HTML checkboxes have been added to the paper and gitweb themes to expose current whitespace settings and to easily modify the current view. Differential Revision: https://phab.mercurial-scm.org/D850
Sat, 30 Sep 2017 09:08:01 +0100 hgweb: query string arguments to control whitespace for annotate
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 30 Sep 2017 09:08:01 +0100] rev 34390
hgweb: query string arguments to control whitespace for annotate This feature should hopefully be pretty straightforward. We simply examine some query string arguments to feed into the diff options. The function to obtain the diff options has been factored into its own generic function to facilitate an upcoming change to the HTML interface and to enable diff settings to be controlled via the same query string arguments on other web commands. The test output for "ignoreblanklines" didn't change. I'm not sure why. Our test coverage for --ignore-blank-lines isn't great and I can't figure out how to make this diff setting do anything meaningful. On a very brief examination of the code, it is possible the setting doesn't work because it is operating at the line level and blank lines detection needs to examine multiple lines. But I'm not an expert in this code, so I'm not sure. Differential Revision: https://phab.mercurial-scm.org/D849
Sat, 30 Sep 2017 09:07:00 +0100 tests: add tests for hgweb annotate output
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 30 Sep 2017 09:07:00 +0100] rev 34389
tests: add tests for hgweb annotate output In preparation for adding features to modify whitespace settings. Differential Revision: https://phab.mercurial-scm.org/D848
Thu, 06 Jul 2017 14:46:07 +0200 obsolete: clean createmarkers part about operation
Boris Feld <boris.feld@octobus.net> [Thu, 06 Jul 2017 14:46:07 +0200] rev 34388
obsolete: clean createmarkers part about operation I will add another experiment in createmarkers, add a comment and some blank lines for aesthetic sake. Differential Revision: https://phab.mercurial-scm.org/D532
Sat, 30 Sep 2017 12:58:06 -0400 treediscovery: update test expectation
Augie Fackler <augie@google.com> [Sat, 30 Sep 2017 12:58:06 -0400] rev 34387
treediscovery: update test expectation I'm not sure why this needs an update, but the test passes for me both pure and non-pure. Differential Revision: https://phab.mercurial-scm.org/D860
Sat, 30 Sep 2017 12:57:00 -0400 tests: update some clonebundles expectations to pass on both pure and non-pure
Augie Fackler <augie@google.com> [Sat, 30 Sep 2017 12:57:00 -0400] rev 34386
tests: update some clonebundles expectations to pass on both pure and non-pure Specifically, zstd isn't available in --pure mode, and we need to glob off the leading comma as well as the absent compression engine. Differential Revision: https://phab.mercurial-scm.org/D859
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip