1. 18 Mar, 2020 1 commit
  2. 16 Mar, 2020 2 commits
    • phabricator: extract the logic to amend diff properties to a function · 99fa161a883
      This will be needed on a separate code path when dealing with folding revisions.
      And since we know that will involve adding multiple local commmits to the diff
      properties instead of just one, restructure the logic slightly to allow it.
      
      Differential Revision: https://phab.mercurial-scm.org/D8312
      Matt Harbison authored
    • phabricator: teach `getoldnodedrevmap()` to handle folded reviews · 5f9c917e3b5
      The tricky part here is reasoning through all of the possible predecessor
      scenarios.  In the typical case of submitting a folded range and then
      resubmitting it (also folded), filtering the list of commits for the diff stored
      on Phabricator through the local predecessor list for each single node will
      result in the typical 1:1 mapping to the old node.
      
      There are edge cases like using `hg fold` within the range prior to
      resubmitting, that will result in mapping to multiple old nodes.  In that case,
      the first direct predecessor is needed for the base of the diff, and the last
      direct predecessor is needed for the head of the diff in order to make sure that
      the entire range is included in the diff content.  And none of this matters for
      commits in the middle of the range, as they are never used.
      
      Fortunately the only crucial thing here is the `drev` number for each node.  For
      these complicated cases where there are multiple old nodes, simply ignore them
      all.  This will cause `createdifferentialrevision()` to generate a new diff
      (within the same Differential), and avoids complicating the code.
      
      Differential Revision: https://phab.mercurial-scm.org/D8311
      Matt Harbison authored
  3. 09 Mar, 2020 1 commit
  4. 06 Mar, 2020 1 commit
    • phabricator: combine commit messages into the review when folding commits · dbe9182c90f
      No visible changes here, until an option to enable it is added to `phabsend`.
      
      This combines the Differential fields like Arcanist does, rather than simply
      concatenating the text blocks.  Aside from populating everything properly in the
      web interface, Phabricator fails the review create/update if repeated fields are
      seen as would happen with simple concatenation.
      
      On the flip side, now that the Summary and Test Plan fields can contain data
      from multiple commits, we can't just join these fields together to determine if
      an amend is needed.  If that were to happen, every single commit in the folded
      range would get amended with the combined commit message, which seems clearly
      wrong.  Aside from making a minor assumption about the content of the
      Differential Revision field (it seems they allow some minor variances with
      spacing), this means that for folded reviews, you can't post it, go to the web
      page add a missing Test Plan, and then get it added to the commit message by
      re-posting it.  I don't think that's a big deal.
      
      Differential Revision: https://phab.mercurial-scm.org/D8309
      Matt Harbison authored
  5. 26 Feb, 2020 1 commit
    • phabricator: record all local commits used to create a Differential revision · 0437959de6f
      Arcanist records all of the commits that it squashes into a single review, and
      that info will be helpful when adding similar functionality.  This info is used
      when submitting an updated review, so that the extension can recalculate the old
      diff and see if a new one is necessary, or if it is just a property update.  It
      also shows on the `commits` tab in the `Revision Contents` section.
      
      When submitting in the usual 1:1 commit to review mode, the wire protocol is
      unchanged.
      
      The content of `hg:meta` is a bit odd, but such is the problem when folding
      several commits.  The choice for the parent node is obvious, but the `node`
      value uses the tip commit because that seems more natural, and is used elsewhere
      to look up the previous diff when updating.  The rest of the attributes follow
      from there.
      
      Differential Revision: https://phab.mercurial-scm.org/D8308
      Matt Harbison authored
  6. 28 Mar, 2020 3 commits
  7. 01 Apr, 2020 3 commits
    • hgcli: customize for Mercurial · bc847878f4c
      Now that we have a shiny new PyOxidizer-based hgcli project, let's
      customize it for Mercurial!
      
      This commit replaces the auto-generated pyoxidizer.bzl with one
      that installs Mercurial from the local source repository.
      
      A README.md with build instructions has been added.
      
      The Cargo.toml file has been updated to reflect the proper license
      and reference the added README.md.
      
      In my Linux environment, running the test suite yields 27 failures.
      
      It's worth noting the run time of the test harness on Linux on my
      Ryzen 3950X:
      
      before: 378s wall; 9982s user; 1195s sys
      after:  353s wall; 8996s user;  958s sys
      % orig: 93.4 wall;  90.1  user; 80.2 sys
      
      While I haven't measured explicitly, I suspect the performance win is
      due to in-memory resource loading (which is known to be faster than
      Python's filesystem importer).
      
      Differential Revision: https://phab.mercurial-scm.org/D8351
      Gregory Szorc authored
    • hgcli: add stub PyOxidizer project · af739894a4c
      Using commit c772a1379c3026314eda1c8ea244b86c0658951d of
      PyOxidizer, I ran `pyoxidizer init-rust-project hgcli` to
      create a stub Rust project. The only modifications I made from
      what that command produced are:
      
      * Update location of pyembed crate to PyOxidizer's Git repository.
      * Removed some trailing whitespace from pyoxidizer.bzl
      * Added auto-generated Cargo.lock file
      
      Subsequent commits will modify the stub project to Mercurial's
      needs.
      
      Differential Revision: https://phab.mercurial-scm.org/D8350
      Gregory Szorc authored
    • hgcli: remove legacy project · 02f66b23cba
      This code is a logical precursor to PyOxidizer. It is now
      defunct.
      
      Differential Revision: https://phab.mercurial-scm.org/D8349
      Gregory Szorc authored
  8. 26 Mar, 2020 1 commit
  9. 28 Feb, 2020 3 commits
  10. 20 Mar, 2020 1 commit
  11. 28 Feb, 2020 1 commit
  12. 31 Mar, 2020 2 commits
  13. 26 Mar, 2020 1 commit
  14. 26 Feb, 2020 1 commit
  15. 27 Mar, 2020 2 commits
  16. 26 Mar, 2020 5 commits
  17. 25 Mar, 2020 2 commits
  18. 24 Mar, 2020 1 commit
    • chg: be stricter about checking invocation of `serve` command · 1e459ac4cb4
      Few tests run serve command in form of `hg -R <repo> serve` which leads to chg
      thinking that it's not a serve command and failing tests.
      
      We become more stricter in checking for the serve command.
      
      This fixes test-server-view.t, test-remote-hidden.t, test-remotefilelog-http.t,
      test-phases-exchange.t, test-wireproto-content-redirects.t with chg.
      Pulkit Goyal authored
  19. 23 Mar, 2020 1 commit
  20. 25 Mar, 2020 1 commit
  21. 24 Mar, 2020 2 commits
  22. 23 Mar, 2020 1 commit
  23. 24 Feb, 2020 2 commits
  24. 18 Feb, 2020 1 commit