Skip to content
Snippets Groups Projects
  1. May 28, 2018
    • Boris Feld's avatar
      shelve: directly handle `--continue` · f4776f8b
      Boris Feld authored
      Shelve is currently sub-contracting some of its work to the rebase extension.
      In order to make shelve more independent and flexible we would like shelve to
      handle the parent alignment directly.
      
      This changeset takes on the next step, handling the abort process. Same as for
      --abort. It turns out we have all the necessary bits in the `shelvestate`
      file. So we do not need anything from the interrupted rebase.
      
      Differential Revision: https://phab.mercurial-scm.org/D3689
      f4776f8b
    • Boris Feld's avatar
      shelve: directly handle the abort process · 61e4cf1b
      Boris Feld authored
      Shelve is currently sub-contracting some of its work to the rebase extension.
      In order to make shelve more independent and flexible we would like shelve to
      handle the parent alignment directly.
      
      This change starts with the simplest bits, handling the abort process. It
      turns out we have all the necessary bits in the `shelvestate` file. So we do
      not need anything from the interrupted rebase.
      
      As a nice side effect, a test about missing `shelverebasestate` state file now
      behave better.
      
      Differential Revision: https://phab.mercurial-scm.org/D3688
      61e4cf1b
    • Boris Feld's avatar
      shelve: check the actual shelvestate in morestatus · 8459e8d2
      Boris Feld authored
      The rebasestate is a lower level implementation details that we are trying to
      remove.
      
      Differential Revision: https://phab.mercurial-scm.org/D3687
      8459e8d2
  2. May 13, 2018
  3. May 12, 2018
  4. May 13, 2018
    • Gregory Szorc's avatar
      packaging: replace dockerlib.sh with a Python script · e5916f12
      Gregory Szorc authored
      I want to do some more advanced things with Docker in upcoming
      commits. Trying to do that with shell scripts will be a bit too
      painful for my liking. Implementing things in Python will be
      vastly simpler in the long run.
      
      This commit essentially ports dockerlib.sh to a Python script.
      dockerdeb and dockerrpm have been ported to use the new hg-docker
      script.
      
      hg-docker requires Python 3. I've only tested on Python 3.5.
      
      Unlike the local packaging scripts which may need to run on old
      distros, the Docker packaging scripts don't have these constraints.
      So I think it is acceptable to require Python 3.5.
      
      As part of the transition, the Docker image tags changed slightly.
      I don't think that's a big deal: the Docker image names are
      effectively arbitrary and are a means to an end to achieve
      running commands in Docker containers.
      
      The code for resolving the Dockerfile content allows substituting
      values passed as arguments. This will be used in a subsequent commit.
      
      Differential Revision: https://phab.mercurial-scm.org/D3759
      e5916f12
  5. May 12, 2018
    • Gregory Szorc's avatar
      packaging: consistently create build user in Dockerfiles · 11eda1f1
      Gregory Szorc authored
      Previously, dockerlib.sh appended some commands to create a
      "build" user in each Docker image. The resulting Docker images
      could be inconsistent depending on the execution environment
      and base image.
      
      With this change, we explicitly create our custom user and
      group as the first action in each Dockerfile. The user always
      has user:group 1000:1000 and all built images are consistent.
      
      We also create a home directory for the user under /build.
      This directory is currently ignored.
      
      As part of this, we stop setting the DBUILDUSER variable in
      dockerlib.sh and instead set it in the respective scripts that
      call it. This is in preparation for further refactoring of
      dockerlib.sh.
      
      Differential Revision: https://phab.mercurial-scm.org/D3758
      11eda1f1
  6. Jun 14, 2018
    • Pulkit Goyal's avatar
      scmutil: move construction of instability count message to separate fn · 1cac2e8c
      Pulkit Goyal authored
      When the commad we are running, introduces new instabilities, we show a message
      like `5 new orphan changesets`, `2 new content-divergent changesets`, `1 new
      phase-divergent changesets` etc which is very nice.
      
      Now taking a step ahead, we want users to show how to fix them too. Something
      like:
      
      `5 new orphan changesets (run 'hg evolve' to resolve/stabilize them)`
      `2 new content-divergent changesets (run 'hg evolve --content-divergent' to
      resolve them)`
      
      and maybe telling user a way to understand more about those new instabilities
      like `hg evolve --list` or `hg log -r 'orphan()'` something like that.
      
      The idea came from issue5855 which I want to fix because fixing that will result
      in a nice UI.
      
      Taking the construction logic out will allow extensions like evolve (maybe
      rebase too) to wrap that and add information about how to resolve and how to
      understand the instability more.
      
      Differential Revision: https://phab.mercurial-scm.org/D3734
      1cac2e8c
  7. Jun 25, 2018
  8. May 25, 2018
    • Pulkit Goyal's avatar
      graft: introduce --abort flag to abort interrupted graft · 5cdfc20b
      Pulkit Goyal authored
      This patch introduces a new --abort flag to `hg graft` command which aborts an
      interrupted graft and rollbacks to the state before graft.
      
      The behavior when some of grafted changeset get's published while interrupted
      graft or we have new descendants on grafted changesets is same as that of rebase
      which is warn the user, don't strip and abort the abort the graft.
      
      Tests are added for the new flag.
      
      .. feature::
      
         `hg graft` now has a `--abort` flag which aborts the interrupted graft and
         rollbacks to state before the graft.
      
      Differential Revision: https://phab.mercurial-scm.org/D3754
      5cdfc20b
  9. Jun 14, 2018
  10. Jun 17, 2018
  11. Jun 18, 2018
  12. Jun 25, 2018
  13. Jun 24, 2018
  14. Jun 23, 2018
  15. Mar 24, 2017
  16. Jun 21, 2018
  17. Jun 16, 2018
  18. Jun 21, 2018
    • Martin von Zweigbergk's avatar
      cleanupnodes: preserve phase of parents of new nodes · 05b7dd11
      Martin von Zweigbergk authored
      As Yuya noted in the review of D3818, passing in
      targetphase=phases.draft would result in advancing the phase boundary
      of a secret-phase parent. We never pass targetphase=phases.draft so
      far, but it's a bug waiting to happen.
      
      I tried to refactor it so max(parentphase, X) happened in one place,
      but I couldn't come up with good variables names and I ended up with a
      "newphase = max(newphase, parentphase)" line, which made the whole
      block not look any better to me.
      
      Differential Revision: https://phab.mercurial-scm.org/D3824
      05b7dd11
  19. Jun 16, 2018
  20. Jun 08, 2018
  21. Jun 14, 2018
  22. Jun 21, 2018
  23. Jun 19, 2018
    • Yuya Nishihara's avatar
      merge: do not fill manifest of committed revision with pseudo node (issue5526) · 1322ae04
      Yuya Nishihara authored
      Since a75d24539aba "convert: fix convert dropping p2 contents during filemap
      merge", wctx is not always a committablectx because the convert extension
      passes in repo[n] as wctx. If wctx is a committed changeset, its manifest
      dict shouldn't be mutated reflecting to the working directory.
      1322ae04
    • Martin von Zweigbergk's avatar
      split: preserve phase of commit that is being split · 4f885770
      Martin von Zweigbergk authored
      With this change, hg split will preserve the phase of the commit that is being
      split, ignoring the phases.new-commit setting. Previously, we would use whatever
      phases.new-commit was set to (unless our parent was secret, then we would be
      secret even if phases.new-commit=draft).
      
      Now, splitting a draft commit with phases.new-commit=secret does not cause the
      new commits to become secret, and splitting a secret commit with
      phases.new-commit=draft and a draft parent does not cause the new commits to
      become draft.
      
      Test cases and commit message taken from Kyle Lippincott's D2016 (thanks!).
      
      Differential Revision: https://phab.mercurial-scm.org/D3819
      4f885770
    • Martin von Zweigbergk's avatar
      scmutil: make cleanupnodes optionally also fix the phase · 32fba6fe
      Martin von Zweigbergk authored
      We have had multiple bugs where the phase wasn't correctly carried
      forward to a rewritten changeset (for example: phabricator, split,
      evolve, fix). Handling the phase update in cleanupnodes() makes it
      less likely to happen again, especially once we have made it fix the
      phase by default (perhaps in the next release cycle).
      
      This patch also updates all applicable callers so we get some testing
      of it.
      
      Note that rebase and histedit can't be fixed yet because they call
      cleanupnodes() only at the end and the phase may have been changed by
      the user when the rebase/histedit was interrupted (due to merge
      conflicts). I think we should make them write one commit at a time (as
      it already does), along with associated obsmarkers, bookmark moves,
      etc. When that's done, we can switch them over to cleanupnodes().
      
      Differential Revision: https://phab.mercurial-scm.org/D3818
      32fba6fe
Loading