D8035: copy: add experimental support for marking committed copies

2020-02-15 Thread martinvonz (Martin von Zweigbergk)
Closed by commit rHG9dab3fa64325: copy: add experimental support for marking 
committed copies (authored by martinvonz).
This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state "Needs 
Review".

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8035?vs=20233&id=20244

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D8035/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D8035

AFFECTED FILES
  mercurial/cmdutil.py
  mercurial/commands.py
  relnotes/next
  tests/test-rename-after-merge.t
  tests/test-rename-rev.t
  tests/test-rename.t

CHANGE DETAILS

diff --git a/tests/test-rename.t b/tests/test-rename-rev.t
copy from tests/test-rename.t
copy to tests/test-rename-rev.t
--- a/tests/test-rename.t
+++ b/tests/test-rename-rev.t
@@ -6,693 +6,51 @@
   $ echo d1/b > d1/b
   $ echo d2/b > d2/b
   $ hg add d1/a d1/b d1/ba d1/d11/a1 d2/b
-  $ hg commit -m "1"
-
-rename a single file
-
-  $ hg rename d1/d11/a1 d2/c
-  $ hg --config ui.portablefilenames=abort rename d1/a d1/con.xml
-  abort: filename contains 'con', which is reserved on Windows: d1/con.xml
-  [255]
-  $ hg sum
-  parent: 0:9b4b6e7b2c26 tip
-   1
-  branch: default
-  commit: 1 renamed
-  update: (current)
-  phases: 1 draft
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename a single file using absolute paths
-
-  $ hg rename `pwd`/d1/d11/a1 `pwd`/d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
+  $ hg commit -m "intial"
 
-rename --after a single file
 
-  $ mv d1/d11/a1 d2/c
-  $ hg rename --after d1/d11/a1 d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename --after a single file when src and tgt already tracked
-
-  $ mv d1/d11/a1 d2/c
-  $ hg addrem -s 0
-  removing d1/d11/a1
-  adding d2/c
-  $ hg rename --after d1/d11/a1 d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename --after a single file to a nonexistent target filename
-
-  $ hg rename --after d1/a dummy
-  d1/a: not recording move - dummy does not exist
-  [1]
-
-move a single file to an existing directory
+Test single file
 
-  $ hg rename d1/d11/a1 d2
-  $ hg status -C
-  A d2/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/a1
-
-move --after a single file to an existing directory
-
-  $ mv d1/d11/a1 d2
-  $ hg rename --after d1/d11/a1 d2
-  $ hg status -C
-  A d2/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/a1
-
-rename a file using a relative path
-
-  $ (cd d1/d11; hg rename ../../d2/b e)
-  $ hg status -C
-  A d1/d11/e
-d2/b
-  R d2/b
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d1/d11/e
-
-rename --after a file using a relative path
-
-  $ (cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e)
-  $ hg status -C
-  A d1/d11/e
-d2/b
-  R d2/b
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d1/d11/e
-
-rename directory d1 as d3
-
-  $ hg rename d1/ d3
-  moving d1/a to d3/a
-  moving d1/b to d3/b
-  moving d1/ba to d3/ba
-  moving d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d3/a
-d1/a
-  A d3/b
-d1/b
-  A d3/ba
-d1/ba
-  A d3/d11/a1
-d1/d11/a1
-  R d1/a
-  R d1/b
-  R d1/ba
-  R d1/d11/a1
-  $ hg update -C
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d3
-
-rename --after directory d1 as d3
-
-  $ mv d1 d3
-  $ hg rename --after d1 d3
-  moving d1/a to d3/a
-  moving d1/b to d3/b
-  moving d1/ba to d3/ba
-  moving d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d3/a
-d1/a
-  A d3/b
+# One recoded copy, one copy to record after commit
+  $ hg cp d1/b d1/c
+  $ cp d1/b d1/d
+  $ hg add d1/d
+  $ hg ci -m 'copy d1/b to d1/c and d1/d'
+  $ hg st -C --change .
+  A d1/c
 d1/b
-  A d3/ba
-d1/ba
-  A d3/d11/a1
-d1/d11/a1
-  R d1/a
-  R d1/b
-  R d1/ba
-  R d1/d11/a1
-  $ hg update -C
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d3
-
-move a directory using a relative path
-
-  $ (cd d2; mkdir d3; hg rename ../d1/d11 d3)
-  moving ../d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d2/d3/d11/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d2/d3
-
-move --after a directory using a relative path
-
-  $ (cd 

D8035: copy: add experimental support for marking committed copies

2020-02-14 Thread martinvonz (Martin von Zweigbergk)
martinvonz added a comment.
martinvonz updated this revision to Diff 20233.


  fixed stale uses of -r in commit message and transient code

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8035?vs=20229&id=20233

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D8035/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D8035

AFFECTED FILES
  mercurial/cmdutil.py
  mercurial/commands.py
  relnotes/next
  tests/test-rename-after-merge.t
  tests/test-rename-rev.t
  tests/test-rename.t

CHANGE DETAILS

diff --git a/tests/test-rename.t b/tests/test-rename-rev.t
copy from tests/test-rename.t
copy to tests/test-rename-rev.t
--- a/tests/test-rename.t
+++ b/tests/test-rename-rev.t
@@ -6,693 +6,51 @@
   $ echo d1/b > d1/b
   $ echo d2/b > d2/b
   $ hg add d1/a d1/b d1/ba d1/d11/a1 d2/b
-  $ hg commit -m "1"
-
-rename a single file
-
-  $ hg rename d1/d11/a1 d2/c
-  $ hg --config ui.portablefilenames=abort rename d1/a d1/con.xml
-  abort: filename contains 'con', which is reserved on Windows: d1/con.xml
-  [255]
-  $ hg sum
-  parent: 0:9b4b6e7b2c26 tip
-   1
-  branch: default
-  commit: 1 renamed
-  update: (current)
-  phases: 1 draft
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename a single file using absolute paths
-
-  $ hg rename `pwd`/d1/d11/a1 `pwd`/d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
+  $ hg commit -m "intial"
 
-rename --after a single file
 
-  $ mv d1/d11/a1 d2/c
-  $ hg rename --after d1/d11/a1 d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename --after a single file when src and tgt already tracked
-
-  $ mv d1/d11/a1 d2/c
-  $ hg addrem -s 0
-  removing d1/d11/a1
-  adding d2/c
-  $ hg rename --after d1/d11/a1 d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename --after a single file to a nonexistent target filename
-
-  $ hg rename --after d1/a dummy
-  d1/a: not recording move - dummy does not exist
-  [1]
-
-move a single file to an existing directory
+Test single file
 
-  $ hg rename d1/d11/a1 d2
-  $ hg status -C
-  A d2/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/a1
-
-move --after a single file to an existing directory
-
-  $ mv d1/d11/a1 d2
-  $ hg rename --after d1/d11/a1 d2
-  $ hg status -C
-  A d2/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/a1
-
-rename a file using a relative path
-
-  $ (cd d1/d11; hg rename ../../d2/b e)
-  $ hg status -C
-  A d1/d11/e
-d2/b
-  R d2/b
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d1/d11/e
-
-rename --after a file using a relative path
-
-  $ (cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e)
-  $ hg status -C
-  A d1/d11/e
-d2/b
-  R d2/b
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d1/d11/e
-
-rename directory d1 as d3
-
-  $ hg rename d1/ d3
-  moving d1/a to d3/a
-  moving d1/b to d3/b
-  moving d1/ba to d3/ba
-  moving d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d3/a
-d1/a
-  A d3/b
-d1/b
-  A d3/ba
-d1/ba
-  A d3/d11/a1
-d1/d11/a1
-  R d1/a
-  R d1/b
-  R d1/ba
-  R d1/d11/a1
-  $ hg update -C
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d3
-
-rename --after directory d1 as d3
-
-  $ mv d1 d3
-  $ hg rename --after d1 d3
-  moving d1/a to d3/a
-  moving d1/b to d3/b
-  moving d1/ba to d3/ba
-  moving d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d3/a
-d1/a
-  A d3/b
+# One recoded copy, one copy to record after commit
+  $ hg cp d1/b d1/c
+  $ cp d1/b d1/d
+  $ hg add d1/d
+  $ hg ci -m 'copy d1/b to d1/c and d1/d'
+  $ hg st -C --change .
+  A d1/c
 d1/b
-  A d3/ba
-d1/ba
-  A d3/d11/a1
-d1/d11/a1
-  R d1/a
-  R d1/b
-  R d1/ba
-  R d1/d11/a1
-  $ hg update -C
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d3
-
-move a directory using a relative path
-
-  $ (cd d2; mkdir d3; hg rename ../d1/d11 d3)
-  moving ../d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d2/d3/d11/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d2/d3
-
-move --after a directory using a relative path
-
-  $ (cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3)
-  moving ../d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  

D8035: copy: add experimental support for marking committed copies

2020-02-14 Thread martinvonz (Martin von Zweigbergk)
martinvonz edited the summary of this revision.
martinvonz updated this revision to Diff 20229.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8035?vs=20208&id=20229

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D8035/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D8035

AFFECTED FILES
  mercurial/cmdutil.py
  mercurial/commands.py
  relnotes/next
  tests/test-rename-after-merge.t
  tests/test-rename-rev.t
  tests/test-rename.t

CHANGE DETAILS

diff --git a/tests/test-rename.t b/tests/test-rename-rev.t
copy from tests/test-rename.t
copy to tests/test-rename-rev.t
--- a/tests/test-rename.t
+++ b/tests/test-rename-rev.t
@@ -6,693 +6,51 @@
   $ echo d1/b > d1/b
   $ echo d2/b > d2/b
   $ hg add d1/a d1/b d1/ba d1/d11/a1 d2/b
-  $ hg commit -m "1"
-
-rename a single file
-
-  $ hg rename d1/d11/a1 d2/c
-  $ hg --config ui.portablefilenames=abort rename d1/a d1/con.xml
-  abort: filename contains 'con', which is reserved on Windows: d1/con.xml
-  [255]
-  $ hg sum
-  parent: 0:9b4b6e7b2c26 tip
-   1
-  branch: default
-  commit: 1 renamed
-  update: (current)
-  phases: 1 draft
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename a single file using absolute paths
-
-  $ hg rename `pwd`/d1/d11/a1 `pwd`/d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
+  $ hg commit -m "intial"
 
-rename --after a single file
 
-  $ mv d1/d11/a1 d2/c
-  $ hg rename --after d1/d11/a1 d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename --after a single file when src and tgt already tracked
-
-  $ mv d1/d11/a1 d2/c
-  $ hg addrem -s 0
-  removing d1/d11/a1
-  adding d2/c
-  $ hg rename --after d1/d11/a1 d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename --after a single file to a nonexistent target filename
-
-  $ hg rename --after d1/a dummy
-  d1/a: not recording move - dummy does not exist
-  [1]
-
-move a single file to an existing directory
+Test single file
 
-  $ hg rename d1/d11/a1 d2
-  $ hg status -C
-  A d2/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/a1
-
-move --after a single file to an existing directory
-
-  $ mv d1/d11/a1 d2
-  $ hg rename --after d1/d11/a1 d2
-  $ hg status -C
-  A d2/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/a1
-
-rename a file using a relative path
-
-  $ (cd d1/d11; hg rename ../../d2/b e)
-  $ hg status -C
-  A d1/d11/e
-d2/b
-  R d2/b
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d1/d11/e
-
-rename --after a file using a relative path
-
-  $ (cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e)
-  $ hg status -C
-  A d1/d11/e
-d2/b
-  R d2/b
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d1/d11/e
-
-rename directory d1 as d3
-
-  $ hg rename d1/ d3
-  moving d1/a to d3/a
-  moving d1/b to d3/b
-  moving d1/ba to d3/ba
-  moving d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d3/a
-d1/a
-  A d3/b
-d1/b
-  A d3/ba
-d1/ba
-  A d3/d11/a1
-d1/d11/a1
-  R d1/a
-  R d1/b
-  R d1/ba
-  R d1/d11/a1
-  $ hg update -C
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d3
-
-rename --after directory d1 as d3
-
-  $ mv d1 d3
-  $ hg rename --after d1 d3
-  moving d1/a to d3/a
-  moving d1/b to d3/b
-  moving d1/ba to d3/ba
-  moving d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d3/a
-d1/a
-  A d3/b
+# One recoded copy, one copy to record after commit
+  $ hg cp d1/b d1/c
+  $ cp d1/b d1/d
+  $ hg add d1/d
+  $ hg ci -m 'copy d1/b to d1/c and d1/d'
+  $ hg st -C --change .
+  A d1/c
 d1/b
-  A d3/ba
-d1/ba
-  A d3/d11/a1
-d1/d11/a1
-  R d1/a
-  R d1/b
-  R d1/ba
-  R d1/d11/a1
-  $ hg update -C
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d3
-
-move a directory using a relative path
-
-  $ (cd d2; mkdir d3; hg rename ../d1/d11 d3)
-  moving ../d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d2/d3/d11/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d2/d3
-
-move --after a directory using a relative path
-
-  $ (cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3)
-  moving ../d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d2/d3/d11/a1
-d1/d11/a1
-  R d1/d11/a1

D8035: copy: add experimental support for marking committed copies

2020-02-13 Thread martinvonz (Martin von Zweigbergk)
martinvonz retitled this revision from "copy: add support for marking committed 
copies" to "copy: add experimental support for marking committed copies".
martinvonz updated this revision to Diff 20208.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8035?vs=20206&id=20208

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D8035/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D8035

AFFECTED FILES
  mercurial/cmdutil.py
  mercurial/commands.py
  relnotes/next
  tests/test-rename-after-merge.t
  tests/test-rename-rev.t
  tests/test-rename.t

CHANGE DETAILS

diff --git a/tests/test-rename.t b/tests/test-rename-rev.t
copy from tests/test-rename.t
copy to tests/test-rename-rev.t
--- a/tests/test-rename.t
+++ b/tests/test-rename-rev.t
@@ -6,693 +6,51 @@
   $ echo d1/b > d1/b
   $ echo d2/b > d2/b
   $ hg add d1/a d1/b d1/ba d1/d11/a1 d2/b
-  $ hg commit -m "1"
-
-rename a single file
-
-  $ hg rename d1/d11/a1 d2/c
-  $ hg --config ui.portablefilenames=abort rename d1/a d1/con.xml
-  abort: filename contains 'con', which is reserved on Windows: d1/con.xml
-  [255]
-  $ hg sum
-  parent: 0:9b4b6e7b2c26 tip
-   1
-  branch: default
-  commit: 1 renamed
-  update: (current)
-  phases: 1 draft
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename a single file using absolute paths
-
-  $ hg rename `pwd`/d1/d11/a1 `pwd`/d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
+  $ hg commit -m "intial"
 
-rename --after a single file
 
-  $ mv d1/d11/a1 d2/c
-  $ hg rename --after d1/d11/a1 d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename --after a single file when src and tgt already tracked
-
-  $ mv d1/d11/a1 d2/c
-  $ hg addrem -s 0
-  removing d1/d11/a1
-  adding d2/c
-  $ hg rename --after d1/d11/a1 d2/c
-  $ hg status -C
-  A d2/c
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/c
-
-rename --after a single file to a nonexistent target filename
-
-  $ hg rename --after d1/a dummy
-  d1/a: not recording move - dummy does not exist
-  [1]
-
-move a single file to an existing directory
+Test single file
 
-  $ hg rename d1/d11/a1 d2
-  $ hg status -C
-  A d2/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/a1
-
-move --after a single file to an existing directory
-
-  $ mv d1/d11/a1 d2
-  $ hg rename --after d1/d11/a1 d2
-  $ hg status -C
-  A d2/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d2/a1
-
-rename a file using a relative path
-
-  $ (cd d1/d11; hg rename ../../d2/b e)
-  $ hg status -C
-  A d1/d11/e
-d2/b
-  R d2/b
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d1/d11/e
-
-rename --after a file using a relative path
-
-  $ (cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e)
-  $ hg status -C
-  A d1/d11/e
-d2/b
-  R d2/b
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm d1/d11/e
-
-rename directory d1 as d3
-
-  $ hg rename d1/ d3
-  moving d1/a to d3/a
-  moving d1/b to d3/b
-  moving d1/ba to d3/ba
-  moving d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d3/a
-d1/a
-  A d3/b
-d1/b
-  A d3/ba
-d1/ba
-  A d3/d11/a1
-d1/d11/a1
-  R d1/a
-  R d1/b
-  R d1/ba
-  R d1/d11/a1
-  $ hg update -C
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d3
-
-rename --after directory d1 as d3
-
-  $ mv d1 d3
-  $ hg rename --after d1 d3
-  moving d1/a to d3/a
-  moving d1/b to d3/b
-  moving d1/ba to d3/ba
-  moving d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d3/a
-d1/a
-  A d3/b
+# One recoded copy, one copy to record after commit
+  $ hg cp d1/b d1/c
+  $ cp d1/b d1/d
+  $ hg add d1/d
+  $ hg ci -m 'copy d1/b to d1/c and d1/d'
+  $ hg st -C --change .
+  A d1/c
 d1/b
-  A d3/ba
-d1/ba
-  A d3/d11/a1
-d1/d11/a1
-  R d1/a
-  R d1/b
-  R d1/ba
-  R d1/d11/a1
-  $ hg update -C
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d3
-
-move a directory using a relative path
-
-  $ (cd d2; mkdir d3; hg rename ../d1/d11 d3)
-  moving ../d1/d11/a1 to d3/d11/a1
-  $ hg status -C
-  A d2/d3/d11/a1
-d1/d11/a1
-  R d1/d11/a1
-  $ hg update -C
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ rm -rf d2/d3
-
-move --after a directory using a relative path
-
-  $ (cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d1