tests/test-absorb-edit-lines.t
author Augie Fackler <augie@google.com>
Mon, 30 Jul 2018 14:05:56 -0400
changeset 38917 5111d11b8719
child 40190 31dfa7dac4c9
permissions -rw-r--r--
absorb: import extension from Facebook's hg-experimental absorb is a wicked-fast command to use blame information to automatically amend edits to the correct draft revision. Originally written by Jun Wu, this import is hgext3rd/absorb/__init__.py with: * the `testedwith` value changed * the linelog import updated * some missing configitems registered * some imports reordered per check-code.py * some missing __future__ imports added per check-code.py Differential Revision: https://phab.mercurial-scm.org/D3991

  $ cat >> $HGRCPATH << EOF
  > [extensions]
  > absorb=
  > EOF

  $ hg init repo1
  $ cd repo1

Make some commits:

  $ for i in 1 2 3; do
  >   echo $i >> a
  >   hg commit -A a -m "commit $i" -q
  > done

absorb --edit-lines will run the editor if filename is provided:

  $ hg absorb --edit-lines
  nothing applied
  [1]
  $ HGEDITOR=cat hg absorb --edit-lines a
  HG: editing a
  HG: "y" means the line to the right exists in the changeset to the top
  HG:
  HG: /---- 4ec16f85269a commit 1
  HG: |/--- 5c5f95224a50 commit 2
  HG: ||/-- 43f0a75bede7 commit 3
  HG: |||
      yyy : 1
       yy : 2
        y : 3
  nothing applied
  [1]

Edit the file using --edit-lines:

  $ cat > editortext << EOF
  >       y : a
  >      yy :  b
  >      y  : c
  >     yy  : d  
  >     y y : e
  >     y   : f
  >     yyy : g
  > EOF
  $ HGEDITOR='cat editortext >' hg absorb -q --edit-lines a
  $ hg cat -r 0 a
  d  
  e
  f
  g
  $ hg cat -r 1 a
   b
  c
  d  
  g
  $ hg cat -r 2 a
  a
   b
  e
  g