Sun, 02 Aug 2020 10:24:28 -0700 merge: use the new action based mapping introduced in mergeresult obj
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 02 Aug 2020 10:24:28 -0700] rev 45293
merge: use the new action based mapping introduced in mergeresult obj Before this patch, we have good number of instances of following types: ``` for f, (m, args, msg) in mresult.actions: if m == ACTION_X: do_something ``` We iterate over the whole list and then filter for a certain action. Previous patch introduced a action based mapping in mergeresult object. The above code now looks like: ``` for f, args, msg in mresult.getactions([ACTION_X, ...]): do_something ``` Differential Revision: https://phab.mercurial-scm.org/D8831
Fri, 24 Jul 2020 19:48:38 +0530 mergeresult: introduce action -> (filename, data, msg) mapping and related API
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 19:48:38 +0530] rev 45292
mergeresult: introduce action -> (filename, data, msg) mapping and related API Good number of places in code, we iterate over the actions dict which has filename as keys and filter based on the action. This patch introduced another mapping which has action as key. This will help in refactoring the code much more in upcoming patch. Differential Revision: https://phab.mercurial-scm.org/D8830
Sun, 02 Aug 2020 10:15:55 -0700 mergeresult: rename _actions to _filemapping
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 02 Aug 2020 10:15:55 -0700] rev 45291
mergeresult: rename _actions to _filemapping This is done because we will be introducing another dict which introduces the same information but with action name as key. Differential Revision: https://phab.mercurial-scm.org/D8829
Fri, 24 Jul 2020 19:19:47 +0530 sparse: pass mergeresult obj in sparse.filterupdatesactions() (API)
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 19:19:47 +0530] rev 45290
sparse: pass mergeresult obj in sparse.filterupdatesactions() (API) Not able to see much which can be improved in this function by passing in mergeresult object but for API consistency and no function directly touching actions dict, it sounds like a good idea. Differential Revision: https://phab.mercurial-scm.org/D8828
Fri, 24 Jul 2020 19:13:20 +0530 merge: filter actions before calling _resolvetrivial()
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 19:13:20 +0530] rev 45289
merge: filter actions before calling _resolvetrivial() In d49e490a9e85252886fd43258803bcad4fc88edb I made _resolvetrivial() to be called after upadting the sparse checkout. Looking at the code now, it seems to that me there is no need to even run _resolvetrivial() on actions which are filtered away. So let's update the actions before passing them into _resolvetrivial(). Differential Revision: https://phab.mercurial-scm.org/D8827
Fri, 24 Jul 2020 18:16:29 +0530 merge: introduce mergeresult.updateactions() and use it
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 18:16:29 +0530] rev 45288
merge: introduce mergeresult.updateactions() and use it We don't want direct editing and access of mergeresult._actions because soon we will like to maintain data in other structures also. Differential Revision: https://phab.mercurial-scm.org/D8826
Fri, 24 Jul 2020 17:57:23 +0530 merge: pass mergeresult instead of actions in _checkunknownfiles() (API)
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 17:57:23 +0530] rev 45287
merge: pass mergeresult instead of actions in _checkunknownfiles() (API) Differential Revision: https://phab.mercurial-scm.org/D8825
Fri, 24 Jul 2020 17:52:33 +0530 merge: pass mergeresult obj instead of actions dict in _resolvetrivial()
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 17:52:33 +0530] rev 45286
merge: pass mergeresult obj instead of actions dict in _resolvetrivial() Differential Revision: https://phab.mercurial-scm.org/D8824
Fri, 24 Jul 2020 17:49:13 +0530 merge: pass mergeresult obj instead of actions in _filternarrowactions()
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 17:49:13 +0530] rev 45285
merge: pass mergeresult obj instead of actions in _filternarrowactions() We want to use rich mergeresult object and it's APIs instead of handling a dictionary. Differential Revision: https://phab.mercurial-scm.org/D8823
Fri, 24 Jul 2020 17:31:26 +0530 merge: pass mergeresult in checkpassconflicts() instead of actions (API)
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 17:31:26 +0530] rev 45284
merge: pass mergeresult in checkpassconflicts() instead of actions (API) This is a part of series which aims to use mergeresult obj instead of an action dictionary. Differential Revision: https://phab.mercurial-scm.org/D8822
Fri, 24 Jul 2020 16:23:55 +0530 merge: add removefile() to mergeresult object
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 16:23:55 +0530] rev 45283
merge: add removefile() to mergeresult object There are cases where some further calculation makes the file not needing to be merged anymore and hence needs to be dropped in mergeresult object. This adds a function for that. Differential Revision: https://phab.mercurial-scm.org/D8821
Fri, 24 Jul 2020 16:18:39 +0530 merge: introduce mergeresult.addfile() and use it
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 16:18:39 +0530] rev 45282
merge: introduce mergeresult.addfile() and use it We want to use mergeresult object at more and more places instead of this actions dict to simplify code and further add new APIs to mergeresult object. This patch introduces `addfile()` which adds a new file to the internal actions dict for now. Differential Revision: https://phab.mercurial-scm.org/D8820
Fri, 24 Jul 2020 15:56:11 +0530 merge: make mergeresult constructor initialize empty object
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 15:56:11 +0530] rev 45281
merge: make mergeresult constructor initialize empty object In future patches, we will be going to update mergeresult object instead of building an actions dict and then setting it in the object. Differential Revision: https://phab.mercurial-scm.org/D8819
Fri, 24 Jul 2020 15:15:20 +0530 merge: improve documentation of fbid dict used for merge bid
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 15:15:20 +0530] rev 45280
merge: improve documentation of fbid dict used for merge bid I improved the comments explaning what the dict contains meanwhile organizing the comment structure which prevents some confusion. Due to formatting issues, the empty dict was wrapped in `()` which might decieve in thinking that it's a tuple of dict until you decide to find a comma. Differential Revision: https://phab.mercurial-scm.org/D8818
Fri, 24 Jul 2020 14:45:00 +0530 merge: move conversion of file-key dict to action-key dict in mergeresult
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 24 Jul 2020 14:45:00 +0530] rev 45279
merge: move conversion of file-key dict to action-key dict in mergeresult Initially the actions dict which we get has file has keys, but later we want a dict which has actions as keys. This patch moves code computing that to mergeresult class as that's where it should be anyway. Differential Revision: https://phab.mercurial-scm.org/D8817
Sun, 02 Aug 2020 10:12:21 -0700 merge: introduce hasconflicts() on mergeresult object
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 02 Aug 2020 10:12:21 -0700] rev 45278
merge: introduce hasconflicts() on mergeresult object This and upcoming patches will improve the mergeresult object making it more powerful and provide clean APIs for various things. Doing this will clean up the core merge code which is present in `update()` a bit. Differential Revision: https://phab.mercurial-scm.org/D8816
Tue, 14 Jul 2020 16:40:28 +0530 merge: remove no longer required ACTION_GET_OTHER_AND_STORE
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 14 Jul 2020 16:40:28 +0530] rev 45277
merge: remove no longer required ACTION_GET_OTHER_AND_STORE In 1b8fd4af33189c84feadb47c74d659ec31cde3b9 I (ab)used merge actions to pass info from manifestmerge() to applyupdates() and store info in mergestate. In previous patches, we introduced a separate return value from manifestmerge() and calculateupdates() and an argument to applyupdates() which achieved the same thing. Let's remove this no longer required messy code. Differential Revision: https://phab.mercurial-scm.org/D8744
Tue, 14 Jul 2020 16:31:52 +0530 merge: pass commitinfo to applyupdates() and get it stored in mergestate
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 14 Jul 2020 16:31:52 +0530] rev 45276
merge: pass commitinfo to applyupdates() and get it stored in mergestate This patch passes the commitinfo calulcated in manifestmerge() to applyupdates() so that it can be read there and stored in mergestate. On commit, we can read mergestate for such information and act accordingly. This patch also makes ACTION_GET_OTHER_AND_STORE not required anymore. Next patch will remove the messy code surrounding it. Differential Revision: https://phab.mercurial-scm.org/D8743
Tue, 14 Jul 2020 16:21:08 +0530 merge: introduce 'commitinfo' in mergeresult
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 14 Jul 2020 16:21:08 +0530] rev 45275
merge: introduce 'commitinfo' in mergeresult commitinfo will be used to pass information which is required on commit phase from the merge phase. One common example is, merge chooses filenode from second parent and we need to tell commit to choose that. Right now this one and related cases are not very neatly implement and there is no clear line on how to pass on such information. Upcoming patches will try to work on in this area and make things easier. Differential Revision: https://phab.mercurial-scm.org/D8742
Thu, 23 Jul 2020 18:03:14 +0530 merge: return a mergeresult obj from manifestmerge(), calculateupdates() (API)
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 23 Jul 2020 18:03:14 +0530] rev 45274
merge: return a mergeresult obj from manifestmerge(), calculateupdates() (API) Earlier, manifestmerge() and calculateupdates() returns a tuple of three things. I wanted to add one more thing to return value. Introducing a special class which represents results of a merge will help understand better and also ease adding new return values. Differential Revision: https://phab.mercurial-scm.org/D8799
Mon, 03 Aug 2020 23:13:58 +0530 Added signature for changeset 7fc3c5fbc65f stable
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 03 Aug 2020 23:13:58 +0530] rev 45273
Added signature for changeset 7fc3c5fbc65f
Mon, 03 Aug 2020 23:13:52 +0530 Added tag 5.5 for changeset 7fc3c5fbc65f stable
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 03 Aug 2020 23:13:52 +0530] rev 45272
Added tag 5.5 for changeset 7fc3c5fbc65f
Sat, 01 Aug 2020 18:39:28 +0530 mergestate: fix BC breakage introduced because of removal of a merge record stable 5.5
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 01 Aug 2020 18:39:28 +0530] rev 45271
mergestate: fix BC breakage introduced because of removal of a merge record In fcd0cff3400a I removed the usage of RECORD_RESOLVED_OTHER. However I also removed the reading support, hence if there is any user who runs into merge conflict with older version of hg, upgrades hg and then tries to read mergestate, they will end up with an MergeRecordUnsupportedError.
Thu, 30 Jul 2020 22:49:51 -0700 packaging: delete unnecessary updating of `dirs` list
Martin von Zweigbergk <martinvonz@google.com> [Thu, 30 Jul 2020 22:49:51 -0700] rev 45270
packaging: delete unnecessary updating of `dirs` list The `dirs` list is not used and it seems it also wasn't used when this code was added in 395b0e132836 (Don't copy hidden files/directories during `setup.py install`, 2009-07-14). Differential Revision: https://phab.mercurial-scm.org/D8857
Sun, 02 Aug 2020 10:08:18 -0700 packaging: make "mercurial.defaultrc" a key in package_data
Martin von Zweigbergk <martinvonz@google.com> [Sun, 02 Aug 2020 10:08:18 -0700] rev 45269
packaging: make "mercurial.defaultrc" a key in package_data Before this patch, we had a `mercurial` key with a `defaultrc/*.rc` value. It seems more correct to have a `mercurial.defaultrc` key with a `*.rc` value since `mercurial.defaultrc` it became a pacakge in 1390bb81163e (help: get helptext/ data from `resources` module if available, 2019-12-12). Differential Revision: https://phab.mercurial-scm.org/D8856
Thu, 30 Jul 2020 12:22:41 -0700 templatespec: use new factory functions in hooklib
Martin von Zweigbergk <martinvonz@google.com> [Thu, 30 Jul 2020 12:22:41 -0700] rev 45268
templatespec: use new factory functions in hooklib Differential Revision: https://phab.mercurial-scm.org/D8853
Mon, 20 Jul 2020 22:43:33 -0700 templatespec: use new factory functions in logcmdutil
Martin von Zweigbergk <martinvonz@google.com> [Mon, 20 Jul 2020 22:43:33 -0700] rev 45267
templatespec: use new factory functions in logcmdutil Differential Revision: https://phab.mercurial-scm.org/D8848
Mon, 20 Jul 2020 21:33:28 -0700 templatespec: move check for non-unicode to lower-level function
Martin von Zweigbergk <martinvonz@google.com> [Mon, 20 Jul 2020 21:33:28 -0700] rev 45266
templatespec: move check for non-unicode to lower-level function Now that we have the factory functions, it makes sense to have the check there. Differential Revision: https://phab.mercurial-scm.org/D8847
Mon, 20 Jul 2020 21:32:10 -0700 templatespec: logcmdutil.templatespec() gets either template or mapfile
Martin von Zweigbergk <martinvonz@google.com> [Mon, 20 Jul 2020 21:32:10 -0700] rev 45265
templatespec: logcmdutil.templatespec() gets either template or mapfile The callers of the function already never pass (non-`None`) values for both, so let's check that and call the new factory functions. Differential Revision: https://phab.mercurial-scm.org/D8846
Thu, 16 Jul 2020 13:33:46 -0700 templatespec: create a factory function for each type there is
Martin von Zweigbergk <martinvonz@google.com> [Thu, 16 Jul 2020 13:33:46 -0700] rev 45264
templatespec: create a factory function for each type there is Most of the arguments to the `templatespec` constructor are mutually exclusive, so each combination creates a different type of templatespec. Let's clarify that by creating factory functions. I've left the callers in `logcmdutil` unchanged for now because they are more complex and `logcmdutil.templatespec()` is slightly higher level in that it is specific to changesets. My larger goal is to add support frozen binaries (specifically PyOxidizer) by adding a specific type of `templatespec` for built-in templates. That will get its own factory function. Differential Revision: https://phab.mercurial-scm.org/D8845
Wed, 29 Jul 2020 10:42:09 -0700 templater: stop accepting a single style to stylemap()
Martin von Zweigbergk <martinvonz@google.com> [Wed, 29 Jul 2020 10:42:09 -0700] rev 45263
templater: stop accepting a single style to stylemap() The code seems to have been for compatibility across d3dbdca92458 (hgweb: don't choke when an inexistent style is requested (issue1901), 2009-11-12). Differential Revision: https://phab.mercurial-scm.org/D8844
Thu, 23 Jul 2020 10:20:48 -0700 formatter: inline a variable assigned from `templater.templater.frommapfile`
Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Jul 2020 10:20:48 -0700] rev 45262
formatter: inline a variable assigned from `templater.templater.frommapfile` The variable doesn't get reused and it doesn't help formatting, so I don't see any reason for it. Differential Revision: https://phab.mercurial-scm.org/D8807
Wed, 22 Jul 2020 21:23:46 -0700 templater: don't normalize path separators to '/' when interacting with OS
Martin von Zweigbergk <martinvonz@google.com> [Wed, 22 Jul 2020 21:23:46 -0700] rev 45261
templater: don't normalize path separators to '/' when interacting with OS `_readmapfile()` is about reading a map file from the file system, so we shouldn't use our `util.normpath()`, which also normalizes `os.sep` to '/'. Differential Revision: https://phab.mercurial-scm.org/D8806
Thu, 23 Jul 2020 22:50:20 -0700 formatter: remove now-unnecessary check for file-ness
Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Jul 2020 22:50:20 -0700] rev 45260
formatter: remove now-unnecessary check for file-ness `templater.templatepath()` now returns non-`None` only for files, so the caller doesn't have to check. Differential Revision: https://phab.mercurial-scm.org/D8805
Thu, 23 Jul 2020 22:47:55 -0700 templater: make templatepath() not return directory paths
Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Jul 2020 22:47:55 -0700] rev 45259
templater: make templatepath() not return directory paths The previous patch added a test showing an unusal error message. This make it more like other error messages. Differential Revision: https://phab.mercurial-scm.org/D8804
Thu, 23 Jul 2020 22:44:18 -0700 tests: show unusual error message for `hg log --style coal`
Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Jul 2020 22:44:18 -0700] rev 45258
tests: show unusual error message for `hg log --style coal` It turns out that we show the full path when the given style name matches a subdirectory of `mercurial/templates/`. Differential Revision: https://phab.mercurial-scm.org/D8803
Wed, 22 Jul 2020 10:34:24 -0700 config: remove now-unused `abs` argument from `include` callback
Martin von Zweigbergk <martinvonz@google.com> [Wed, 22 Jul 2020 10:34:24 -0700] rev 45257
config: remove now-unused `abs` argument from `include` callback Differential Revision: https://phab.mercurial-scm.org/D8796
Wed, 22 Jul 2020 10:32:28 -0700 config: re-calculate absolute %include path in `include` callback
Martin von Zweigbergk <martinvonz@google.com> [Wed, 22 Jul 2020 10:32:28 -0700] rev 45256
config: re-calculate absolute %include path in `include` callback This removes the last user of the `abs` argument for the `include` callback. The next patch will remove the argument. Differential Revision: https://phab.mercurial-scm.org/D8795
Wed, 22 Jul 2020 10:25:28 -0700 subrepoutil: use relative path for looking up config `%include`s
Martin von Zweigbergk <martinvonz@google.com> [Wed, 22 Jul 2020 10:25:28 -0700] rev 45255
subrepoutil: use relative path for looking up config `%include`s The code was already working with relative paths in practice, since it passed in a (repo-)relative path into its local `read()` function. So all that this patch actually does is to switch to rename variables so we use the same path by a different name. This gets us closer to removing the "absolute" path from the `include` callback. Differential Revision: https://phab.mercurial-scm.org/D8794
Wed, 22 Jul 2020 00:13:02 -0700 config: remove now-unused support for "includepaths"
Martin von Zweigbergk <martinvonz@google.com> [Wed, 22 Jul 2020 00:13:02 -0700] rev 45254
config: remove now-unused support for "includepaths" This effectively undoes 081b08e4ea13 (templater: look for mapfiles in template paths, 2015-05-15). Differential Revision: https://phab.mercurial-scm.org/D8793
Sat, 25 Jul 2020 22:51:26 +0900 dispatch: adjust ui.flush() timing to stabilize test-blackbox.t stable
Yuya Nishihara <yuya@tcha.org> [Sat, 25 Jul 2020 22:51:26 +0900] rev 45253
dispatch: adjust ui.flush() timing to stabilize test-blackbox.t Without this change, dispatch.dispatch() could return before flushing all stdio data. This means chg stdio would print data after receiving the result code. --- tests/test-blackbox.t +++ tests/test-blackbox.t.err @@ -354,13 +354,13 @@ > EOF $ hg log --debug removing $TESTTMP/gone/.hg - warning: cannot write to blackbox.log: $ENOENT$ (no-windows !) warning: cannot write to blackbox.log: $TESTTMP/gone/.hg/blackbox.log: $ENOTDIR$ (windows !) $ cd .. blackbox should disable itself if track is empty $ hg --config blackbox.track= init nothing_tracked + warning: cannot write to blackbox.log: $ENOENT$ $ cd nothing_tracked $ cat >> .hg/hgrc << EOF > [blackbox]
Sun, 26 Jul 2020 12:46:04 -0700 clonebundles: document REQUIREDRAM key stable
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 26 Jul 2020 12:46:04 -0700] rev 45252
clonebundles: document REQUIREDRAM key This is a follow-up to 72feaeb510b3, which introduced the feature. The key should be documented as part of the format specification inside the extension docstring. Differential Revision: https://phab.mercurial-scm.org/D8838
Sat, 25 Jul 2020 15:37:05 +0200 commitctx: gather more code dealing with copy-in-extra
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Jul 2020 15:37:05 +0200] rev 45251
commitctx: gather more code dealing with copy-in-extra Now that we have a function that deal with the copy-in-extra special case, we can gather more code meant to deal with this special case. Making the rest of the code simpler.
Sat, 25 Jul 2020 15:33:45 +0200 commitctx: rename files to touched in a couple of place
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Jul 2020 15:33:45 +0200] rev 45250
commitctx: rename files to touched in a couple of place This is a clearer word that we will use increasingly over this series. It also make the old variable name available to another usage :-)
Sat, 25 Jul 2020 15:13:25 +0200 commitctx: extract copy information encoding into extra into commit.py
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Jul 2020 15:13:25 +0200] rev 45249
commitctx: extract copy information encoding into extra into commit.py The encoding of copy information into extra has multiple subcases and become quite complicated (eg: empty list can be explicitly or implicitly stored for example). In addition, it is niche experimental feature since as it affect the hash, it is only suitable for user who don't mercurial for storage server side (ie: Google). Having this complexity part of the changelog will get in the way of further cleanup. We could have to either move more of that logic into the changelog or to move or extract more of the logic at the higher level. We take the second approach and start gather logic in dedicated function in commit.py.
Sat, 25 Jul 2020 14:59:55 +0200 commitctx: create the new extra dict on its own line
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Jul 2020 14:59:55 +0200] rev 45248
commitctx: create the new extra dict on its own line A trivial move to make the next changeset easier to read.
Wed, 29 Jul 2020 15:40:13 +0200 commitctx: explicitly pass `manifest` to _commit_manifest
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Jul 2020 15:40:13 +0200] rev 45247
commitctx: explicitly pass `manifest` to _commit_manifest As pointed out by Yuya Nishihara.
Thu, 30 Jul 2020 16:58:38 +0100 phabricator: unconditionally pop `test_vcr` to fix debugcallconduit
Ian Moody <moz-ian@perix.co.uk> [Thu, 30 Jul 2020 16:58:38 +0100] rev 45246
phabricator: unconditionally pop `test_vcr` to fix debugcallconduit 11592ce6a711 / D8525 accidentally broke debugcallconduit in non-test scenarios because it stopped popping `test_vcr` from `kwargs` unconditionally, so when `--test-vcr` isn't set the empty string still gets passed down as the value of `test_vcr` in `kwargs`. However unlike all the other commands debugcallconduit doesn't have an `**opts` argument to receive it, so it aborts because of invalid arguments. Differential Revision: https://phab.mercurial-scm.org/D8852
Thu, 30 Jul 2020 16:52:12 +0100 phabricator: demonstrate debugcallconduit being broken without --test-vcr
Ian Moody <moz-ian@perix.co.uk> [Thu, 30 Jul 2020 16:52:12 +0100] rev 45245
phabricator: demonstrate debugcallconduit being broken without --test-vcr This was accidentally broken by 11592ce6a711 / D8525 Differential Revision: https://phab.mercurial-scm.org/D8851
Tue, 28 Jul 2020 11:11:14 -0700 cleanup: fix bad formatting of state.py from D8811
Martin von Zweigbergk <martinvonz@google.com> [Tue, 28 Jul 2020 11:11:14 -0700] rev 45244
cleanup: fix bad formatting of state.py from D8811 `test-check-format.t` was failing for me. Do I just have the wrong version? Differential Revision: https://phab.mercurial-scm.org/D8841
Thu, 30 Jul 2020 16:13:17 +0200 dirstate: restore original estimation and update comment
Joerg Sonnenberger <joerg@bec.de> [Thu, 30 Jul 2020 16:13:17 +0200] rev 45243
dirstate: restore original estimation and update comment The former comment didn't reflect the content of the dirstate entries, the two nodes are a fixed header in the file and not per-entry. Split the documented entry into the path part and the fixed header. The heuristic itself is still valid, e.g. for the NetBSD src tree a maximum path size of 142 and an average of 49, resulting in 66 bytes per entry on average. Differential Revision: https://phab.mercurial-scm.org/D8850
Fri, 31 Jul 2020 17:09:31 +0530 merge stable in default
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 31 Jul 2020 17:09:31 +0530] rev 45242
merge stable in default
Thu, 30 Jul 2020 01:10:10 +0200 dirstate: revert change to Rust binding
Joerg Sonnenberger <joerg@bec.de> [Thu, 30 Jul 2020 01:10:10 +0200] rev 45241
dirstate: revert change to Rust binding The Rust binding uses its own class and is not derived from the regular implementation. As such, it didn't get _nodelen. Differential Revision: https://phab.mercurial-scm.org/D8849
Tue, 28 Jul 2020 10:19:49 -0700 relnotes: copy "next" to "5.5" and clear "next" stable
Martin von Zweigbergk <martinvonz@google.com> [Tue, 28 Jul 2020 10:19:49 -0700] rev 45240
relnotes: copy "next" to "5.5" and clear "next" The same procedure as every year^Wcycle. Differential Revision: https://phab.mercurial-scm.org/D8839
Thu, 23 Jul 2020 23:52:31 +0200 commitctx: extract all the file preparation logic in a new function
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Jul 2020 23:52:31 +0200] rev 45239
commitctx: extract all the file preparation logic in a new function Before we actually start to create a new commit we have a large block of logic that do the necessary file and manifest commit and that determine which files are been affected by the commit (and how). This is a complex process on its own. It return a "simple" output that can be fed to the next step. The output itself is not that simple as we return a lot of individual items (files, added, removed, ...). My next step (and actual goal for this cleanup) will be to simplify the return by returning a richer object that will be more suited for the variation of data we want to store. After this changeset the `commitctx` is a collection of smaller function with limited scope. The largest one is still `_filecommit` without about 100 lines of code.
Thu, 23 Jul 2020 23:58:23 +0200 commitctx: gather more preparation code within the lock context
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Jul 2020 23:58:23 +0200] rev 45238
commitctx: gather more preparation code within the lock context This is a small change that exist mostly for clarification. I am about to move a large amount of code in its own function. having all that code next to each other will make the next changeset clearer.
Thu, 23 Jul 2020 23:40:59 +0200 commitctx: move a special case about files earlier
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Jul 2020 23:40:59 +0200] rev 45237
commitctx: move a special case about files earlier Same logic as a changeset a bit earlier, the `writefilecopymeta` section is more a post processing details so we move the conditional about `files` value closer to the rest of the code computing `files` value.
Thu, 23 Jul 2020 18:25:45 +0200 commitctx: extract all the manual logic to process the files
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Jul 2020 18:25:45 +0200] rev 45236
commitctx: extract all the manual logic to process the files That branch of the if is significantly more complicated than the other two. Moving it to its own function make it simple to keep the scope limited and to read to the higher level function.
Thu, 23 Jul 2020 23:08:00 +0200 commitctx: treat `filesadded` more like `filesremoved`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Jul 2020 23:08:00 +0200] rev 45235
commitctx: treat `filesadded` more like `filesremoved` Accumulating the filename in a list will have a negligible cost and deal with the list of added files like the other ones will make is code cleaning simpler. The two variable with very close name is not great, but my plan is to split most of the code in a separated function which will make the "problem" go away by itself.
Thu, 23 Jul 2020 22:58:29 +0200 commitctx: move `writechangesetcopy` business at the end a code section
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Jul 2020 22:58:29 +0200] rev 45234
commitctx: move `writechangesetcopy` business at the end a code section This code is to handle a specific subcase so we move it a the end. This allow to gather the rest of the "core" code closer to the related logic.
(0) -30000 -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 tip