Mercurial > hg-stable
view tests/test-rename-rev.t @ 44401:9dab3fa64325
copy: add experimental support for marking committed copies
The simplest way I'm aware of to mark a file as copied/moved after
committing is this:
hg uncommit --keep <src> <dest> # <src> needed for move, but not copy
hg mv --after <src> <dest>
hg amend
This patch teaches `hg copy` a `--at-rev` argument to simplify that
into:
hg copy --after --at-rev . <src> <dest>
In addition to being simpler, it doesn't touch the working copy, so it
can easily be used even if the destination file has been modified in
the working copy.
Differential Revision: https://phab.mercurial-scm.org/D8035
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 20 Dec 2019 13:24:46 -0800 |
parents | tests/test-rename.t@5b92a717bfc1 |
children | af9970501021 |
line wrap: on
line source
$ hg init $ mkdir d1 d1/d11 d2 $ echo d1/a > d1/a $ echo d1/ba > d1/ba $ echo d1/a1 > d1/d11/a1 $ 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 "intial" Test single file # 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 d1/d # Errors out without --after for now $ hg cp --at-rev . d1/b d1/d abort: --at-rev requires --after [255] # Errors out with non-existent destination $ hg cp -A --at-rev . d1/b d1/non-existent abort: d1/non-existent: copy destination does not exist in 8a9d70fa20c9 [255] # Successful invocation $ hg cp -A --at-rev . d1/b d1/d saved backup bundle to $TESTTMP/.hg/strip-backup/8a9d70fa20c9-973ae357-copy.hg # New copy is recorded, and previously recorded copy is also still there $ hg st -C --change . A d1/c d1/b A d1/d d1/b Test using directory as destination $ hg co 0 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ cp -R d1 d3 $ hg add d3 adding d3/a adding d3/b adding d3/ba adding d3/d11/a1 $ hg ci -m 'copy d1/ to d3/' created new head $ hg cp -A --at-rev . d1 d3 abort: d3: --at-rev does not support a directory as destination [255]