##// END OF EJS Templates
extensions: register functions always at loading extension (issue5601)...
extensions: register functions always at loading extension (issue5601) Before this patch, functions defined in extensions are registered via extra loaders only in _dispatch(). Therefore, loading extensions in other code paths like below omits registration of functions. - WSGI service - operation across repositories (e.g. subrepo) - test-duplicateoptions.py, using extensions.loadall() directly To register functions always at loading new extension, this patch moves implementation for extra loading from dispatch._dispatch() to extensions.loadall(). AFAIK, only commands module causes cyclic dependency between extensions module, but this patch imports all related modules just before extra loading in loadall(), in order to centralize them. This patch makes extensions.py depend on many other modules, even though extensions.py itself doesn't. It should be avoided if possible, but I don't have any better idea. Some other places like below aren't reasonable for extra loading, IMHO. - specific function in newly added module: existing callers of extensions.loadall() should invoke it, too - hg.repository() or so: no-repo commands aren't covered by this. BTW, this patch removes _loaded.add(name) on relocation, because dispatch._loaded is used only for extraloaders (for similar reason, "exts" variable is removed, too).

File last commit:

r23702:c4892478 default
r33052:45b0e9d0 default
Show More
test-mv-cp-st-diff.t
1669 lines | 21.1 KiB | text/troff | Tads3Lexer
/ tests / test-mv-cp-st-diff.t
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469
$ add()
> {
> echo $2 >> $1
> }
$ hg init t
$ cd t
set up a boring main branch
$ add a a
$ hg add a
$ mkdir x
$ add x/x x
$ hg add x/x
$ hg ci -m0
$ add a m1
$ hg ci -m1
$ add a m2
$ add x/y y1
$ hg add x/y
$ hg ci -m2
$ cd ..
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 $ show()
> {
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > echo "# $2:"
> echo
> echo "% hg st -C $1"
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > hg st -C $1
> echo
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > echo "% hg diff --git $1"
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > hg diff --git $1
> echo
> }
$ count=0
make a new branch and get diff/status output
$1 - first commit
$2 - second commit
$3 - working dir action
$ tb()
> {
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > hg clone -q t t2 ; cd t2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > hg co -q -C 0
>
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > echo % add a $count
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > add a $count
> count=`expr $count + 1`
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > echo % hg ci -m "t0"
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > hg ci -m "t0"
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > echo % $1
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > $1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > echo % hg ci -m "t1"
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > hg ci -m "t1"
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > echo % $2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > $2
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > echo % hg ci -m "t2"
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > hg ci -m "t2"
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > echo % $3
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > $3
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 > echo
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 > show "" "working to parent"
> show "--rev 0" "working to root"
> show "--rev 2" "working to branch"
> show "--rev 0 --rev ." "root to parent"
> show "--rev . --rev 0" "parent to root"
> show "--rev 2 --rev ." "branch to parent"
> show "--rev . --rev 2" "parent to branch"
> echo
> cd ..
> rm -rf t2
> }
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074
rename in working dir
$ tb "add a a1" "add a a2" "hg mv a b"
% add a 0
% hg ci -m t0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 created new head
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % add a a1
% hg ci -m t1
% add a a2
% hg ci -m t2
% hg mv a b
# working to parent:
% hg st -C
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A b
a
R a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/b
rename from a
rename to b
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to root:
% hg st -C --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A b
a
R a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/b
rename from a
rename to b
--- a/a
+++ b/b
@@ -1,1 +1,4 @@
a
+0
+a1
+a2
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to branch:
% hg st -C --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A b
a
R a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/b
rename from a
rename to b
--- a/a
+++ b/b
@@ -1,3 +1,4 @@
a
-m1
-m2
+0
+a1
+a2
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # root to parent:
% hg st -C --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,4 @@
a
+0
+a1
+a2
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to root:
% hg st -C --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,4 +1,1 @@
a
-0
-a1
-a2
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # branch to parent:
% hg st -C --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,3 +1,4 @@
a
-m1
-m2
+0
+a1
+a2
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to branch:
% hg st -C --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,4 +1,3 @@
a
-0
-a1
-a2
+m1
+m2
diff --git a/x/y b/x/y
new file mode 100644
--- /dev/null
+++ b/x/y
@@ -0,0 +1,1 @@
+y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 copy in working dir
$ tb "add a a1" "add a a2" "hg cp a b"
% add a 1
% hg ci -m t0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 created new head
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % add a a1
% hg ci -m t1
% add a a2
% hg ci -m t2
% hg cp a b
# working to parent:
% hg st -C
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A b
a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/b
copy from a
copy to b
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to root:
% hg st -C --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A b
a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,4 @@
a
+1
+a1
+a2
diff --git a/a b/b
copy from a
copy to b
--- a/a
+++ b/b
@@ -1,1 +1,4 @@
a
+1
+a1
+a2
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to branch:
% hg st -C --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A b
a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,3 +1,4 @@
a
-m1
-m2
+1
+a1
+a2
diff --git a/a b/b
copy from a
copy to b
--- a/a
+++ b/b
@@ -1,3 +1,4 @@
a
-m1
-m2
+1
+a1
+a2
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # root to parent:
% hg st -C --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,4 @@
a
+1
+a1
+a2
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to root:
% hg st -C --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,4 +1,1 @@
a
-1
-a1
-a2
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # branch to parent:
% hg st -C --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,3 +1,4 @@
a
-m1
-m2
+1
+a1
+a2
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to branch:
% hg st -C --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,4 +1,3 @@
a
-1
-a1
-a2
+m1
+m2
diff --git a/x/y b/x/y
new file mode 100644
--- /dev/null
+++ b/x/y
@@ -0,0 +1,1 @@
+y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 single rename
$ tb "hg mv a b" "add b b1" "add b w"
% add a 2
% hg ci -m t0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 created new head
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg mv a b
% hg ci -m t1
% add b b1
% hg ci -m t2
% add b w
# working to parent:
% hg st -C
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M b
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/b b/b
--- a/b
+++ b/b
@@ -1,3 +1,4 @@
a
2
b1
+w
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to root:
% hg st -C --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A b
a
R a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/b
rename from a
rename to b
--- a/a
+++ b/b
@@ -1,1 +1,4 @@
a
+2
+b1
+w
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to branch:
% hg st -C --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A b
a
R a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/b
rename from a
rename to b
--- a/a
+++ b/b
@@ -1,3 +1,4 @@
a
-m1
-m2
+2
+b1
+w
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # root to parent:
% hg st -C --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A b
a
R a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/b
rename from a
rename to b
--- a/a
+++ b/b
@@ -1,1 +1,3 @@
a
+2
+b1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to root:
% hg st -C --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A a
b
R b
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/b b/a
rename from b
rename to a
--- a/b
+++ b/a
@@ -1,3 +1,1 @@
a
-2
-b1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # branch to parent:
% hg st -C --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A b
a
R a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/b
rename from a
rename to b
--- a/a
+++ b/b
@@ -1,3 +1,3 @@
a
-m1
-m2
+2
+b1
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to branch:
% hg st -C --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A a
b
A x/y
R b
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/b b/a
rename from b
rename to a
--- a/b
+++ b/a
@@ -1,3 +1,3 @@
a
-2
-b1
+m1
+m2
diff --git a/x/y b/x/y
new file mode 100644
--- /dev/null
+++ b/x/y
@@ -0,0 +1,1 @@
+y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 single copy
$ tb "hg cp a b" "add b b1" "add a w"
% add a 3
% hg ci -m t0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 created new head
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg cp a b
% hg ci -m t1
% add b b1
% hg ci -m t2
% add a w
# working to parent:
% hg st -C
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,2 +1,3 @@
a
3
+w
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to root:
% hg st -C --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A b
a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,3 @@
a
+3
+w
diff --git a/a b/b
copy from a
copy to b
--- a/a
+++ b/b
@@ -1,1 +1,3 @@
a
+3
+b1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to branch:
% hg st -C --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A b
a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,3 +1,3 @@
a
-m1
-m2
+3
+w
diff --git a/a b/b
copy from a
copy to b
--- a/a
+++ b/b
@@ -1,3 +1,3 @@
a
-m1
-m2
+3
+b1
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # root to parent:
% hg st -C --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A b
a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,2 @@
a
+3
diff --git a/a b/b
copy from a
copy to b
--- a/a
+++ b/b
@@ -1,1 +1,3 @@
a
+3
+b1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to root:
% hg st -C --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
R b
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,2 +1,1 @@
a
-3
diff --git a/b b/b
deleted file mode 100644
--- a/b
+++ /dev/null
@@ -1,3 +0,0 @@
-a
-3
-b1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # branch to parent:
% hg st -C --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A b
a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,3 +1,2 @@
a
-m1
-m2
+3
diff --git a/a b/b
copy from a
copy to b
--- a/a
+++ b/b
@@ -1,3 +1,3 @@
a
-m1
-m2
+3
+b1
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to branch:
% hg st -C --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A x/y
R b
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,2 +1,3 @@
a
-3
+m1
+m2
diff --git a/b b/b
deleted file mode 100644
--- a/b
+++ /dev/null
@@ -1,3 +0,0 @@
-a
-3
-b1
diff --git a/x/y b/x/y
new file mode 100644
--- /dev/null
+++ b/x/y
@@ -0,0 +1,1 @@
+y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 rename chain
$ tb "hg mv a b" "hg mv b c" "hg mv c d"
% add a 4
% hg ci -m t0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 created new head
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg mv a b
% hg ci -m t1
% hg mv b c
% hg ci -m t2
% hg mv c d
# working to parent:
% hg st -C
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A d
c
R c
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/c b/d
rename from c
rename to d
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to root:
% hg st -C --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A d
a
R a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/d
rename from a
rename to d
--- a/a
+++ b/d
@@ -1,1 +1,2 @@
a
+4
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to branch:
% hg st -C --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A d
a
R a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/d
rename from a
rename to d
--- a/a
+++ b/d
@@ -1,3 +1,2 @@
a
-m1
-m2
+4
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # root to parent:
% hg st -C --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A c
a
R a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/c
rename from a
rename to c
--- a/a
+++ b/c
@@ -1,1 +1,2 @@
a
+4
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to root:
% hg st -C --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A a
c
R c
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/c b/a
rename from c
rename to a
--- a/c
+++ b/a
@@ -1,2 +1,1 @@
a
-4
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # branch to parent:
% hg st -C --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A c
a
R a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/c
rename from a
rename to c
--- a/a
+++ b/c
@@ -1,3 +1,2 @@
a
-m1
-m2
+4
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to branch:
% hg st -C --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A a
c
A x/y
R c
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/c b/a
rename from c
rename to a
--- a/c
+++ b/a
@@ -1,2 +1,3 @@
a
-4
+m1
+m2
diff --git a/x/y b/x/y
new file mode 100644
--- /dev/null
+++ b/x/y
@@ -0,0 +1,1 @@
+y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 copy chain
$ tb "hg cp a b" "hg cp b c" "hg cp c d"
% add a 5
% hg ci -m t0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 created new head
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg cp a b
% hg ci -m t1
% hg cp b c
% hg ci -m t2
% hg cp c d
# working to parent:
% hg st -C
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A d
c
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/c b/d
copy from c
copy to d
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to root:
% hg st -C --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A b
a
A c
a
A d
a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,2 @@
a
+5
diff --git a/a b/b
copy from a
copy to b
--- a/a
+++ b/b
@@ -1,1 +1,2 @@
a
+5
diff --git a/a b/c
copy from a
copy to c
--- a/a
+++ b/c
@@ -1,1 +1,2 @@
a
+5
diff --git a/a b/d
copy from a
copy to d
--- a/a
+++ b/d
@@ -1,1 +1,2 @@
a
+5
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to branch:
% hg st -C --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A b
a
A c
a
A d
a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,3 +1,2 @@
a
-m1
-m2
+5
diff --git a/a b/b
copy from a
copy to b
--- a/a
+++ b/b
@@ -1,3 +1,2 @@
a
-m1
-m2
+5
diff --git a/a b/c
copy from a
copy to c
--- a/a
+++ b/c
@@ -1,3 +1,2 @@
a
-m1
-m2
+5
diff --git a/a b/d
copy from a
copy to d
--- a/a
+++ b/d
@@ -1,3 +1,2 @@
a
-m1
-m2
+5
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # root to parent:
% hg st -C --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A b
a
A c
a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,2 @@
a
+5
diff --git a/a b/b
copy from a
copy to b
--- a/a
+++ b/b
@@ -1,1 +1,2 @@
a
+5
diff --git a/a b/c
copy from a
copy to c
--- a/a
+++ b/c
@@ -1,1 +1,2 @@
a
+5
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to root:
% hg st -C --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
R b
R c
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,2 +1,1 @@
a
-5
diff --git a/b b/b
deleted file mode 100644
--- a/b
+++ /dev/null
@@ -1,2 +0,0 @@
-a
-5
diff --git a/c b/c
deleted file mode 100644
--- a/c
+++ /dev/null
@@ -1,2 +0,0 @@
-a
-5
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # branch to parent:
% hg st -C --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A b
a
A c
a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,3 +1,2 @@
a
-m1
-m2
+5
diff --git a/a b/b
copy from a
copy to b
--- a/a
+++ b/b
@@ -1,3 +1,2 @@
a
-m1
-m2
+5
diff --git a/a b/c
copy from a
copy to c
--- a/a
+++ b/c
@@ -1,3 +1,2 @@
a
-m1
-m2
+5
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to branch:
% hg st -C --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A x/y
R b
R c
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,2 +1,3 @@
a
-5
+m1
+m2
diff --git a/b b/b
deleted file mode 100644
--- a/b
+++ /dev/null
@@ -1,2 +0,0 @@
-a
-5
diff --git a/c b/c
deleted file mode 100644
--- a/c
+++ /dev/null
@@ -1,2 +0,0 @@
-a
-5
diff --git a/x/y b/x/y
new file mode 100644
--- /dev/null
+++ b/x/y
@@ -0,0 +1,1 @@
+y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 circular rename
$ tb "add a a1" "hg mv a b" "hg mv b a"
% add a 6
% hg ci -m t0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 created new head
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % add a a1
% hg ci -m t1
% hg mv a b
% hg ci -m t2
% hg mv b a
# working to parent:
% hg st -C
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A a
b
R b
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/b b/a
rename from b
rename to a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to root:
% hg st -C --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,3 @@
a
+6
+a1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to branch:
% hg st -C --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,3 +1,3 @@
a
-m1
-m2
+6
+a1
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # root to parent:
% hg st -C --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A b
a
R a
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/b
rename from a
rename to b
--- a/a
+++ b/b
@@ -1,1 +1,3 @@
a
+6
+a1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to root:
% hg st -C --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A a
b
R b
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/b b/a
rename from b
rename to a
--- a/b
+++ b/a
@@ -1,3 +1,1 @@
a
-6
-a1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # branch to parent:
% hg st -C --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A b
a
R a
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/b
rename from a
rename to b
--- a/a
+++ b/b
@@ -1,3 +1,3 @@
a
-m1
-m2
+6
+a1
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to branch:
% hg st -C --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 A a
b
A x/y
R b
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/b b/a
rename from b
rename to a
--- a/b
+++ b/a
@@ -1,3 +1,3 @@
a
-6
-a1
+m1
+m2
diff --git a/x/y b/x/y
new file mode 100644
--- /dev/null
+++ b/x/y
@@ -0,0 +1,1 @@
+y1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 directory move
$ tb "hg mv x y" "add y/x x1" "add y/x x2"
% add a 7
% hg ci -m t0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 created new head
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg mv x y
Kevin Bullock
tests: fix some slash-based Windows failures
r18108 moving x/x to y/x (glob)
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg ci -m t1
% add y/x x1
% hg ci -m t2
% add y/x x2
# working to parent:
% hg st -C
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M y/x
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/y/x b/y/x
--- a/y/x
+++ b/y/x
@@ -1,2 +1,3 @@
x
x1
+x2
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to root:
% hg st -C --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A y/x
x/x
R x/x
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,2 @@
a
+7
diff --git a/x/x b/y/x
rename from x/x
rename to y/x
--- a/x/x
+++ b/y/x
@@ -1,1 +1,3 @@
x
+x1
+x2
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # working to branch:
% hg st -C --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A y/x
x/x
R x/x
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,3 +1,2 @@
a
-m1
-m2
+7
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
diff --git a/x/x b/y/x
rename from x/x
rename to y/x
--- a/x/x
+++ b/y/x
@@ -1,1 +1,3 @@
x
+x1
+x2
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # root to parent:
% hg st -C --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A y/x
x/x
R x/x
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 0 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,1 +1,2 @@
a
+7
diff --git a/x/x b/y/x
rename from x/x
rename to y/x
--- a/x/x
+++ b/y/x
@@ -1,1 +1,2 @@
x
+x1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to root:
% hg st -C --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A x/x
y/x
R y/x
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 0
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,2 +1,1 @@
a
-7
diff --git a/y/x b/x/x
rename from y/x
rename to x/x
--- a/y/x
+++ b/x/x
@@ -1,2 +1,1 @@
x
-x1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # branch to parent:
% hg st -C --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A y/x
x/x
R x/x
R x/y
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev 2 --rev .
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,3 +1,2 @@
a
-m1
-m2
+7
diff --git a/x/y b/x/y
deleted file mode 100644
--- a/x/y
+++ /dev/null
@@ -1,1 +0,0 @@
-y1
diff --git a/x/x b/y/x
rename from x/x
rename to y/x
--- a/x/x
+++ b/y/x
@@ -1,1 +1,2 @@
x
+x1
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 # parent to branch:
% hg st -C --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 M a
A x/x
y/x
A x/y
R y/x
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 % hg diff --git --rev . --rev 2
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 diff --git a/a b/a
--- a/a
+++ b/a
@@ -1,2 +1,3 @@
a
-7
+m1
+m2
diff --git a/y/x b/x/x
rename from y/x
rename to x/x
--- a/y/x
+++ b/x/x
@@ -1,2 +1,1 @@
x
-x1
diff --git a/x/y b/x/y
new file mode 100644
--- /dev/null
+++ b/x/y
@@ -0,0 +1,1 @@
+y1
Cannot implement unrelated branch with tb
testing copies with unrelated branch
$ hg init unrelated
$ cd unrelated
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 $ echo a >> a
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 $ hg ci -Am adda
adding a
$ hg mv a b
$ hg ci -m movea
$ hg up -C null
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Mads Kiilerich
tests: improve test-mv-cp-st-diff.t readability
r18074 $ echo a >> a
Matt Mackall
tests: unify test-mv-cp-st-diff
r12469 $ hg ci -Am addunrelateda
adding a
created new head
unrelated branch diff
$ hg diff --git -r 2 -r 1
diff --git a/a b/a
deleted file mode 100644
--- a/a
+++ /dev/null
@@ -1,1 +0,0 @@
-a
diff --git a/b b/b
new file mode 100644
--- /dev/null
+++ b/b
@@ -0,0 +1,1 @@
+a
$ cd ..
Mads Kiilerich
diff: search beyond ancestor when detecting renames...
r20294
test for case where we didn't look sufficiently far back to find rename ancestor
$ hg init diffstop
$ cd diffstop
$ echo > f
$ hg ci -qAmf
$ hg mv f g
$ hg ci -m'f->g'
$ hg up -qr0
$ touch x
$ hg ci -qAmx
$ echo f > f
$ hg ci -qmf=f
$ hg merge -q
$ hg ci -mmerge
$ hg log -G --template '{rev} {desc}'
@ 4 merge
|\
| o 3 f=f
| |
| o 2 x
| |
o | 1 f->g
|/
o 0 f
$ hg diff --git -r 2
diff --git a/f b/g
rename from f
rename to g
--- a/f
+++ b/g
@@ -1,1 +1,1 @@
-
+f
$ cd ..
Pierre-Yves David
filectx.parents: enforce changeid of parent to be in own changectx ancestors...
r23702
Additional tricky linkrev case
------------------------------
If the first file revision after the diff base has a linkrev pointing to a
changeset on another branch with a revision lower that the diff base, we can
jump past the copy detection limit and fail to detect the rename.
$ hg init diffstoplinkrev
$ cd diffstoplinkrev
$ touch f
$ hg ci -Aqm 'empty f'
Make a simple change
$ echo change > f
$ hg ci -m 'change f'
Make a second branch, we use a named branch to create a simple commit
that does not touch f.
$ hg up -qr 'desc(empty)'
$ hg branch -q dev
$ hg ci -Aqm dev
Graft the initial change, as f was untouched, we reuse the same entry and the
linkrev point to the older branch.
$ hg graft -q 'desc(change)'
Make a rename because we want to track renames. It is also important that the
faulty linkrev is not the "start" commit to ensure the linkrev will be used.
$ hg mv f renamed
$ hg ci -m renamed
$ hg log -G -T '{rev} {desc}'
@ 4 renamed
|
o 3 change f
|
o 2 dev
|
| o 1 change f
|/
o 0 empty f
The copy tracking should still reach rev 2 (branch creation).
accessing the parent of 4 (renamed) should not jump use to revision 1.
$ hg diff --git -r 'desc(dev)' -r .
diff --git a/f b/renamed
rename from f
rename to renamed
--- a/f
+++ b/renamed
@@ -0,0 +1,1 @@
+change
$ cd ..