Mon, 20 Nov 2017 21:47:11 +0800 hgweb: check changeset's original branch in graphdata()
Anton Shestakov <av6@dwimlabs.net> [Mon, 20 Nov 2017 21:47:11 +0800] rev 35095
hgweb: check changeset's original branch in graphdata() This piece of code checks if a changeset is the tip of its branch, but as can be seen above in the context, "branch" was prepared for being displayed in hgweb by making it unicode and passing it through url.escape. It's better to use the original ctx.branch().
Sun, 19 Nov 2017 14:02:50 +0800 hgweb: show instabilities of a commit
Anton Shestakov <av6@dwimlabs.net> [Sun, 19 Nov 2017 14:02:50 +0800] rev 35094
hgweb: show instabilities of a commit In paper, coal, gitweb and monoblue a new "tag" (or multiple, if there are many instabilities) is added to the same line that has phase, branch, etc of a changeset; in gitweb and monoblue this element has a light red background, in paper and coal the element is black and underlined. In spartan theme instabilities are shown on a separate line. While test-obsolete.t uses first(phasedivergent()) revset to pick a changeset to test, that particular changeset is also an orphan, so two different instability tags are displayed.
Sun, 19 Nov 2017 13:18:54 +0800 context: add instabilities() method to basefilectx
Anton Shestakov <av6@dwimlabs.net> [Sun, 19 Nov 2017 13:18:54 +0800] rev 35093
context: add instabilities() method to basefilectx This method is now used in webutils.commonentry(), which adds common data items (commit hash, author, date, etc) for rendering changesets in hgweb. Usually, commonentry() is given a changectx as ctx; but in views related to files (e.g. file view, diff, annotate) it's replaced by a filectx, so the latter also needs to have instabilities() method.
Sun, 19 Nov 2017 04:11:21 +0100 run-test: drop 'execfile' usage for 'common-pattern.py' file
Boris Feld <boris.feld@octobus.net> [Sun, 19 Nov 2017 04:11:21 +0100] rev 35092
run-test: drop 'execfile' usage for 'common-pattern.py' file This is required for Python 3.
Sun, 19 Nov 2017 04:10:55 +0100 run-test: use byte for 'common-pattern.py' path
Boris Feld <boris.feld@octobus.net> [Sun, 19 Nov 2017 04:10:55 +0100] rev 35091
run-test: use byte for 'common-pattern.py' path This is required for Python 3.
Mon, 20 Nov 2017 14:30:54 -0500 templates: reword 'back to filelog' link anchor text
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 20 Nov 2017 14:30:54 -0500] rev 35090
templates: reword 'back to filelog' link anchor text This anchor text is problematic in two ways: first, the "back to" part assumes that you got to the page showing it via the filelog. This is not necessarily true, as there are other ways to get to that view besides the filelog view, such as for example following the history of lines from a file. Second, it uses "filelog" jargon, which refers to how each file has its own revlog. This is internal jargon that has no business being exposed to the end user. I just reworded this template to improve understanding.
Sat, 18 Nov 2017 12:04:08 +0800 hgweb: show obsolescence status of a commit
Anton Shestakov <av6@dwimlabs.net> [Sat, 18 Nov 2017 12:04:08 +0800] rev 35089
hgweb: show obsolescence status of a commit As with phases, spartan theme shows a simple "obsolete: yes" on its own line (this allows replacing "yes" with something more useful in future, like output of obsfate* template functions). Everywhere else a new "tag" is added to the same line that has phase, branch, etc of a changeset; in gitweb and monoblue the element has gray background, in paper and coal the element is gray with a dashed underline.
Sat, 18 Nov 2017 11:58:57 +0800 context: add obsolete() method to basefilectx
Anton Shestakov <av6@dwimlabs.net> [Sat, 18 Nov 2017 11:58:57 +0800] rev 35088
context: add obsolete() method to basefilectx This method is now used in webutils.commonentry(), which adds common data items (commit hash, author, date, etc) for rendering changesets in hgweb. Usually, commonentry() is given a changectx as ctx; but in views related to files (e.g. file view, diff, annotate) it's replaced by a filectx, so the latter also needs to have obsolete() method.
Sat, 18 Nov 2017 13:00:47 +0800 check-code: grep's context flags don't need an extra space before number
Anton Shestakov <av6@dwimlabs.net> [Sat, 18 Nov 2017 13:00:47 +0800] rev 35087
check-code: grep's context flags don't need an extra space before number A bit of useless trivia found while researching this: OpenBSD's grep's -C has a default value (of 2) and disallows space before the argument (while -A and -B allow).
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: make map implementation overridable
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35086
dirstate: make map implementation overridable Other implementations of dirstate will want to replace the class used for the dirstate map. Allow this to happen by making the class an attribute of the dirstate. Differential Revision: https://phab.mercurial-scm.org/D1347
Wed, 15 Nov 2017 01:07:42 -0800 fsmonitor: only access inner dirstate map if it is available
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35085
fsmonitor: only access inner dirstate map if it is available As part of the dirstate refactor, fsmonitor was updated to directly access the inner map of the dirstatemap object. Dirstatemap reimplementations may not use a map like this, so only access it if it is there. Differential Revision: https://phab.mercurial-scm.org/D1346
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: add explicit methods for querying directories (API)
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35084
dirstate: add explicit methods for querying directories (API) The set-like object returned by dirstate.dirs may be difficult for other implementations of the dirstate to provide, and is unnecessary as it is only ever used for __contains__. Instead, provide an explicit method for testing for a directory. .. api:: dirstate no longer provides a `dirs()` method. To test for the existence of a directory in the dirstate, use `dirstate.hasdir(dirname)`. Differential Revision: https://phab.mercurial-scm.org/D1345
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: remove _droppath method
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35083
dirstate: remove _droppath method This method now doesn't do very much interesting and can be removed. The updated files set can be updated where _droppath was originally called. Differential Revision: https://phab.mercurial-scm.org/D1344
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: move dropping of folded filenames into the dirstate map
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35082
dirstate: move dropping of folded filenames into the dirstate map When dropping files from the dirstate, the corresponding entry in the filefoldmap is also dropped. Move this into the dirstate map object. A future implementation of the dirstate will maintain the filefoldmap differently. Differential Revision: https://phab.mercurial-scm.org/D1343
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: move management of the dirstate dirs into the dirstatemap
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35081
dirstate: move management of the dirstate dirs into the dirstatemap The dirstate dirs object is owned by the map, so move management of that object there. A future implementation of the dirstate will manage the dirs object differently. Differential Revision: https://phab.mercurial-scm.org/D1342
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: move management of nonnormal sets into dirstate map
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35080
dirstate: move management of nonnormal sets into dirstate map The dirstate map owns the nonnormal sets, and so should be the class to update them. A future implementation of the dirstate will manage these maps differently. The action of clearing ambiguous times is now entirely controlled by the dirstate map, so it moves there too. Differential Revision: https://phab.mercurial-scm.org/D1341
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: add explicit methods for modifying dirstate
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35079
dirstate: add explicit methods for modifying dirstate Instead of assigning dirstatetuple objects to entries in the dirstate, move responsibility for creating tuples into the dirstatemap. Differential Revision: https://phab.mercurial-scm.org/D1340
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: document dirstatemap interface
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35078
dirstate: document dirstatemap interface Differential Revision: https://phab.mercurial-scm.org/D1380
Mon, 13 Nov 2017 19:12:56 -0800 bundlerepo: rename "bundlefilespos" variable and attribute
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 13 Nov 2017 19:12:56 -0800] rev 35077
bundlerepo: rename "bundlefilespos" variable and attribute Strictly speaking, this variable tracks offsets within the changegroup, not the bundle. While we're here, mark a class attribute as private because it is. .. api:: Rename bundlerepo.bundlerepository.bundlefilespos to _cgfilespos. Differential Revision: https://phab.mercurial-scm.org/D1384
Mon, 13 Nov 2017 19:12:17 -0800 bundlerepo: rename "bundle" arguments to "cgunpacker"
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 13 Nov 2017 19:12:17 -0800] rev 35076
bundlerepo: rename "bundle" arguments to "cgunpacker" "bundle" was appropriate for the bundle1 days where a bundle was a changegroup. In a bundle2 world, changegroup readers are referred to as "changegroup unpackers." Differential Revision: https://phab.mercurial-scm.org/D1383
Sat, 11 Nov 2017 18:55:04 -0800 bundlerepo: use early return
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 18:55:04 -0800] rev 35075
bundlerepo: use early return I like avoiding patterns that lead to the pyramid of doom. Differential Revision: https://phab.mercurial-scm.org/D1382
Sun, 05 Nov 2017 08:23:12 +0100 test-pattern: actually update tests using the patterns
Boris Feld <boris.feld@octobus.net> [Sun, 05 Nov 2017 08:23:12 +0100] rev 35074
test-pattern: actually update tests using the patterns We mass update the tests now. This will help the next soul touching the http protocol.
Sun, 05 Nov 2017 08:23:53 +0100 test-pattern: substitute the HTTP log timestamp too
Boris Feld <boris.feld@octobus.net> [Sun, 05 Nov 2017 08:23:53 +0100] rev 35073
test-pattern: substitute the HTTP log timestamp too We add a pattern matching the infamous timestamp in http log. Now, we should be able to have change appears in https log without having to re-glob the whole thing over and over.
Mon, 13 Nov 2017 04:59:45 +0100 test-pattern: register the current the bundle2 capabilities string
Boris Feld <boris.feld@octobus.net> [Mon, 13 Nov 2017 04:59:45 +0100] rev 35072
test-pattern: register the current the bundle2 capabilities string The bundle capabilites are sent with every getbundle ssh connection. Every time the protocol is updated, that string is altered. We get the part about bundle2 string replaced by $USUAL_BUNDLE2_CAPS$ so that we only have to change the substitution whenever this happens.
Sun, 05 Nov 2017 06:43:40 +0100 test-pattern: register current the bundlecaps string
Boris Feld <boris.feld@octobus.net> [Sun, 05 Nov 2017 06:43:40 +0100] rev 35071
test-pattern: register current the bundlecaps string The bundle capabilites sent with every getbundle commands. Every time the protocol is updated, that string is altered. We get that string replace by $USUAL_BUNDLE_CAPS$ so that we only have to change the substitution whenever this happens.
Sun, 05 Nov 2017 06:41:38 +0100 test-pattern: substitute common compression list
Boris Feld <boris.feld@octobus.net> [Sun, 05 Nov 2017 06:41:38 +0100] rev 35070
test-pattern: substitute common compression list The compression list as to be matched with a glob because zstd might not be part of the option. By using a substitution for these, we won't have to re-glob them over and over.
Sun, 05 Nov 2017 06:34:27 +0100 run-tests: allow to register any arbitrary pattern for replacement
Boris Feld <boris.feld@octobus.net> [Sun, 05 Nov 2017 06:34:27 +0100] rev 35069
run-tests: allow to register any arbitrary pattern for replacement We add a 'common-pattern.py' file that allow to define extra pattern. This seems a cleaner approach than editing the 'run-test.py' file over and over. In addition allowing arbitrary pattern registration will also help extension. The format used is a python file is picked out of convenience defining a list of tuple in 'substitutions' variable. This is picked out of convenience since it is dead simple to implement. The end goal is to register more pattern for Mercurial test. There are multiple common patterns that change over time. That impact is annoying. Using pattern emplacement for them would be handy. The next patches will define all the needed patterns and the last patch will mass-update the tests outputs as it was easier to do in a single pass.
Mon, 13 Nov 2017 18:22:25 -0800 crecord: fix revert -ir '.^' crash caused by 3649c3f2cd
Jun Wu <quark@fb.com> [Mon, 13 Nov 2017 18:22:25 -0800] rev 35068
crecord: fix revert -ir '.^' crash caused by 3649c3f2cd 3649c3f2cd (revert: do not reverse hunks in interactive when REV is not parent (issue5096)) changed the record "operation" for the text version but missed the curses version. Without this patch, running `hg revert -ir '.^' --config ui.interface=curses` would crash with: ProgrammingError: unexpected operation: apply Differential Revision: https://phab.mercurial-scm.org/D1381
Thu, 16 Nov 2017 17:11:14 -0800 tweakdefaults: turn on ui.statuscopies
Martin von Zweigbergk <martinvonz@google.com> [Thu, 16 Nov 2017 17:11:14 -0800] rev 35067
tweakdefaults: turn on ui.statuscopies Seems obviously useful and probably off by default for historical reasons. Differential Revision: https://phab.mercurial-scm.org/D1444
Wed, 15 Nov 2017 17:54:27 -0800 run-tests: fix TESTDIR if testdescs are absolute paths
Kyle Lippincott <spectral@google.com> [Wed, 15 Nov 2017 17:54:27 -0800] rev 35066
run-tests: fix TESTDIR if testdescs are absolute paths Commit a18eef03d879 made TESTDIR be the location of the arguments that were passed to run-tests.py instead of just PWD. It assumed that these tests were specified using relative paths, so if pwd was /tmp/foo, and the first argument was /tmp/baz, it would set TESTDIR to /tmp/foo//tmp/baz. Differential Revision: https://phab.mercurial-scm.org/D1433
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip