Fri, 14 Jul 2017 19:59:10 +0200 bookmark: deprecate direct update of a bookmark value
Boris Feld <boris.feld@octobus.net> [Fri, 14 Jul 2017 19:59:10 +0200] rev 35679
bookmark: deprecate direct update of a bookmark value This changeset was part of an older series preventing direct update of the bookmarks store without the change being tracked by a transaction. For some unclear reason, this was not sent to the list. So we are sending it now. Initial series: 3325c7dcabaa+08bf0ebc6c8e+712a85b3677f. We want to channel all bookmarks update through 'applychanges' so let's remove more way to work around this function.
Mon, 16 Oct 2017 14:32:06 +0200 debugdeltachain: display how many chunks would be read in sparse-read mode
Paul Morelle <paul.morelle@octobus.net> [Mon, 16 Oct 2017 14:32:06 +0200] rev 35678
debugdeltachain: display how many chunks would be read in sparse-read mode
Wed, 17 Jan 2018 21:36:18 +0000 bdiff: handle the possibility of an integer overflow when allocating
Alex Gaynor <agaynor@mozilla.com> [Wed, 17 Jan 2018 21:36:18 +0000] rev 35677
bdiff: handle the possibility of an integer overflow when allocating Differential Revision: https://phab.mercurial-scm.org/D1877
Tue, 16 Jan 2018 08:40:14 -0500 svnsubrepo: check if subrepo is missing when checking dirty state (issue5657)
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Tue, 16 Jan 2018 08:40:14 -0500] rev 35676
svnsubrepo: check if subrepo is missing when checking dirty state (issue5657) During an hg convert command, subrepos are not checked out. However, a manifestmerge may occur during an hg convert if there is a merge commit, which in particular will check the dirty state of subrepos. Before this change, the lack of a checked out subrepo would error out. This check for svn subrepos is modelled after 2fdea636f254 for git subrepos.
Wed, 17 Jan 2018 13:02:42 +0100 win32text: use 'tiprev' when appropriate
Boris Feld <boris.feld@octobus.net> [Wed, 17 Jan 2018 13:02:42 +0100] rev 35675
win32text: use 'tiprev' when appropriate This is cleaner than the current 'len(repo) - 1' form.
Wed, 17 Jan 2018 13:01:38 +0100 patchbomb: use 'tiprev' when appropriate
Boris Feld <boris.feld@octobus.net> [Wed, 17 Jan 2018 13:01:38 +0100] rev 35674
patchbomb: use 'tiprev' when appropriate This is cleaner than the current 'len(repo) - 1' form.
Thu, 04 May 2017 02:28:19 +0200 revset: use 'tiprev' when appropriate
Boris Feld <boris.feld@octobus.net> [Thu, 04 May 2017 02:28:19 +0200] rev 35673
revset: use 'tiprev' when appropriate This is cleaner than the current 'len(repo) - 1' forms
Thu, 04 May 2017 02:24:04 +0200 changelog: use 'tiprev()' in 'tip()'
Boris Feld <boris.feld@octobus.net> [Thu, 04 May 2017 02:24:04 +0200] rev 35672
changelog: use 'tiprev()' in 'tip()' Since 'tip()' is just a node version of 'tiprev()' we should reuse the code.
Thu, 04 May 2017 02:23:21 +0200 changelog: introduce a 'tiprev' method
Boris Feld <boris.feld@octobus.net> [Thu, 04 May 2017 02:23:21 +0200] rev 35671
changelog: introduce a 'tiprev' method Accessing tiprev is a common need through the code base. It is usually done using "len(changelog) -1". That form is tedious and error-prone. For example, it will give wrong results on filtered changelog (if the unfiltered tip is filtered). As a result, we introduce a simple 'tiprev()' method to provide this exact information in a nice way.
Wed, 17 Jan 2018 15:47:38 -0500 contrib: add some basic scaffolding for some fuzz test targets
Augie Fackler <augie@google.com> [Wed, 17 Jan 2018 15:47:38 -0500] rev 35670
contrib: add some basic scaffolding for some fuzz test targets I'd like to get the majority of our C code covered by automated fuzz testing. I've started with bdiff because it was already decoupled from libpython and therefore was fairly quick to produce a working fuzzer. The code here is a little odd because I've been having trouble convincing libfuzzer to define a main and I threw in the towel. This code will also work with github.com/google/oss-fuzz, and once it lands in our main repo I intend to enable automated fuzzing in oss-fuzz with reports going to our security alias. Differential Revision: https://phab.mercurial-scm.org/D1875
Wed, 17 Jan 2018 15:56:12 -0500 formatting: enforce clang-format on all .cc files as well as .c files
Augie Fackler <augie@google.com> [Wed, 17 Jan 2018 15:56:12 -0500] rev 35669
formatting: enforce clang-format on all .cc files as well as .c files As part of my upcoming fuzzer patch we're going to grow some .cc files. They're not part of the release build (they're only used for fuzzing, which requires clang 6 which in turn implies a working C++ compiler), so I'm not terribly worried about growing some C++ files. Differential Revision: https://phab.mercurial-scm.org/D1874
Wed, 17 Jan 2018 15:28:38 -0500 hghave: add test for clang 6 and later
Augie Fackler <augie@google.com> [Wed, 17 Jan 2018 15:28:38 -0500] rev 35668
hghave: add test for clang 6 and later clang 6 includes integrated libfuzzer support, which makes fuzzer stuff a little easier to work with. Differential Revision: https://phab.mercurial-scm.org/D1873
Sun, 14 Jan 2018 12:06:27 -0800 py3: cast error message to localstr in blackbox.py
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 14 Jan 2018 12:06:27 -0800] rev 35667
py3: cast error message to localstr in blackbox.py According to the exceptions reporting mechanism, this is the #1 crasher in the test harness for Python 3. Since this exception is in an except block, we'll likely get a new #1 crasher after this change. But at least we won't die during error handling! Differential Revision: https://phab.mercurial-scm.org/D1478
Wed, 10 Jan 2018 21:27:05 -0800 lfs: remove internal url in test
Jun Wu <quark@fb.com> [Wed, 10 Jan 2018 21:27:05 -0800] rev 35666
lfs: remove internal url in test `test-lfs-test-server.t` refers to a FB internal domain and requires certain implementation (ex. set error code to 404) at that endpoint. Without any workaround, It should in theory error out like "Domain cannot be resolved". I don't know how Matt Harbison ran the test. This patch changes the test to only depend on `lfs-test-server`. Unfortunately the logic has to be changed since `lfs-test-server` does not set error code to 404 but just removes "download" from "actions". Differential Revision: https://phab.mercurial-scm.org/D1849
Sun, 14 Jan 2018 18:12:51 -0500 lfs: control tracked file selection via a tracked file
Matt Harbison <matt_harbison@yahoo.com> [Sun, 14 Jan 2018 18:12:51 -0500] rev 35665
lfs: control tracked file selection via a tracked file Since the lfs tracking policy can dramatically affect the repository, it makes more sense to have the policy file checked in, than to rely on all developers configuring their .hgrc properly. The inspiration for this is the .hgeol file. The configuration lives under '[track]', so that other things can be added in the future. Eventually, the config option should be limited to `convert` only. If the file can't be parsed for any reason (including unrecognized elements of the minifileset language), the commit will abort until the problem is corrected. This seems more useful than the warning that hgeol emits, and has no effect on reading the data, so there's no compatibility concerns. My initial thought was to read the file and change each "key = value" line into "((key) & (value))", so that each line could be ORed together, and make a single pass at compiling. Unfortunately, that prevents exclusions if there's a catchall rule. Consider what happens to a large *.c file here: [track] **.c = none() ** = size('>1MB') # ((**.c) & (none())) | ((**) & (size('>1MB'))) => anything > 1MB I also thought about having separate [include] and [exclude] sections. But that just seems to open things up to user mistakes. Consider: [include] **.zip = all() **.php = size('>10MB') [exclude] **.zip = all() # Who wins? **.php = none() # Effectively 'all()' (i.e. nothing excluded), or >10MB ? Therefore, it just compiles each key and value separately, and walks until the key matches something. I'm not sure how to enforce just file patterns on LHS without leaking knowledge about the minifileset here. That means this will allow odd looking lines like this: [track] **.c | **.txt = none() But that's also fewer lines to compile, so slightly more efficient? Some things like 'none()' won't work as expected on LHS though, because that won't match, so that line is skipped. For now, these quirks are not mentioned in the documentation. Jun previously expressed concern about efficiency when scaling to large repos, so I tried avoiding 'repo[None]'. (localrepo.commit() gets repo[None] already, but doesn't tie it to the workingcommitctx used here.) Therefore, I looked at the passed context for 'AMR' status. But that doesn't help with the normal case where the policy file is tracked, but clean. That requires looking up p1() to read the file. I don't see any way to get the content of one file without first creating the full parent context.
(0) -30000 -10000 -3000 -1000 -300 -100 -15 +15 +100 +300 +1000 +3000 +10000 tip