##// END OF EJS Templates
rhg: add resolve_file_args to path_utils.rs...
rhg: add resolve_file_args to path_utils.rs Extracted logic for resolving `FILE ...` arguments from cat.rs into a new function in path_utils.rs. I plan to use this for rhg annotate. I tried to reuse hg::utils::files::canonical_path instead, but that didn't work. For example it reports a InsideDotHg error for any path containing "..".

File last commit:

r46430:21733e8c default
r53438:f33f37ac tip default
Show More
test-copytrace-heuristics.t
726 lines | 15.2 KiB | text/troff | Tads3Lexer
/ tests / test-copytrace-heuristics.t
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 Test for the heuristic copytracing algorithm
============================================
$ cat >> $TESTTMP/copytrace.sh << '__EOF__'
> initclient() {
> cat >> $1/.hg/hgrc <<EOF
> [experimental]
> copytrace = heuristics
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 > copytrace.sourcecommitlimit = -1
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 > EOF
> }
> __EOF__
$ . "$TESTTMP/copytrace.sh"
$ cat >> $HGRCPATH << EOF
> [extensions]
> rebase=
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 > [alias]
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 > l = log -G -T 'rev: {rev}\ndesc: {desc}\n'
> pl = log -G -T 'rev: {rev}, phase: {phase}\ndesc: {desc}\n'
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 > EOF
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 NOTE: calling initclient() set copytrace.sourcecommitlimit=-1 as we want to
prevent the full copytrace algorithm to run and test the heuristic algorithm
without complexing the test cases with public and draft commits.
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 Check filename heuristics (same dirname and same basename)
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 ----------------------------------------------------------
$ hg init repo
$ initclient repo
$ cd repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ echo a > a
$ mkdir dir
$ echo a > dir/file.txt
$ hg addremove
adding a
adding dir/file.txt
$ hg ci -m initial
$ hg mv a b
$ hg mv -q dir dir2
$ hg ci -m 'mv a b, mv dir/ dir2/'
$ hg up -q 0
$ echo b > a
$ echo b > dir/file.txt
$ hg ci -qm 'mod a, mod dir/file.txt'
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 2
| desc: mod a, mod dir/file.txt
| o rev: 1
|/ desc: mv a b, mv dir/ dir2/
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ hg rebase -s . -d 1
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:557f403c0afd tip "mod a, mod dir/file.txt"
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 merging b and a to b
merging dir2/file.txt and dir/file.txt to dir2/file.txt
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/557f403c0afd-9926eeff-rebase.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ cd ..
$ rm -rf repo
Make sure filename heuristics do not when they are not related
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 --------------------------------------------------------------
$ hg init repo
$ initclient repo
$ cd repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ echo 'somecontent' > a
$ hg add a
$ hg ci -m initial
$ hg rm a
$ echo 'completelydifferentcontext' > b
$ hg add b
$ hg ci -m 'rm a, add b'
$ hg up -q 0
$ printf 'somecontent\nmoarcontent' > a
$ hg ci -qm 'mode a'
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 2
| desc: mode a
| o rev: 1
|/ desc: rm a, add b
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ hg rebase -s . -d 1
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:d526312210b9 tip "mode a"
Pulkit Goyal
filemerge: fix the wrong placements of messages in prompt...
r39321 file 'a' was deleted in local [dest] but was modified in other [source].
Kyle Lippincott
filemerge: make last line of prompts <40 english chars (issue6158)...
r42765 You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
What do you want to do? u
Daniel Ploch
error: unify the error message formats for 'rebase' and 'unshelve'...
r45710 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ cd ..
$ rm -rf repo
Test when lca didn't modified the file that was moved
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 -----------------------------------------------------
$ hg init repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ initclient repo
$ cd repo
$ echo 'somecontent' > a
$ hg add a
$ hg ci -m initial
$ echo c > c
$ hg add c
$ hg ci -m randomcommit
$ hg mv a b
$ hg ci -m 'mv a b'
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 $ hg up -q 1
$ echo b > a
$ hg ci -qm 'mod a'
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg pl
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 3, phase: draft
| desc: mod a
| o rev: 2, phase: draft
|/ desc: mv a b
o rev: 1, phase: draft
| desc: randomcommit
o rev: 0, phase: draft
desc: initial
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568
$ hg rebase -s . -d 2
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 3:9d5cf99c3d9f tip "mod a"
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 merging b and a to b
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/9d5cf99c3d9f-f02358cc-rebase.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ cd ..
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 $ rm -rf repo
Rebase "backwards"
------------------
$ hg init repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ initclient repo
$ cd repo
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 $ echo 'somecontent' > a
$ hg add a
$ hg ci -m initial
$ echo c > c
$ hg add c
$ hg ci -m randomcommit
$ hg mv a b
$ hg ci -m 'mv a b'
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ hg up -q 2
$ echo b > b
$ hg ci -qm 'mod b'
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 3
| desc: mod b
o rev: 2
| desc: mv a b
o rev: 1
| desc: randomcommit
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ hg rebase -s . -d 0
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 3:fbe97126b396 tip "mod b"
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 merging a and b to a
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/fbe97126b396-cf5452a1-rebase.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ cd ..
$ rm -rf repo
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 Check a few potential move candidates
-------------------------------------
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ hg init repo
$ initclient repo
$ cd repo
$ mkdir dir
$ echo a > dir/a
$ hg add dir/a
$ hg ci -qm initial
$ hg mv dir/a dir/b
$ hg ci -qm 'mv dir/a dir/b'
$ mkdir dir2
$ echo b > dir2/a
$ hg add dir2/a
$ hg ci -qm 'create dir2/a'
$ hg up -q 0
$ echo b > dir/a
$ hg ci -qm 'mod dir/a'
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 3
| desc: mod dir/a
| o rev: 2
| | desc: create dir2/a
| o rev: 1
|/ desc: mv dir/a dir/b
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ hg rebase -s . -d 2
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 3:6b2f4cece40f tip "mod dir/a"
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 merging dir/b and dir/a to dir/b
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/6b2f4cece40f-503efe60-rebase.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ cd ..
$ rm -rf repo
Pulkit Goyal
copies: add a config to limit the number of candidates to check in heuristics...
r34847 Test the copytrace.movecandidateslimit with many move candidates
----------------------------------------------------------------
$ hg init repo
$ initclient repo
$ cd repo
$ echo a > a
$ hg add a
$ hg ci -m initial
$ hg mv a foo
$ echo a > b
$ echo a > c
$ echo a > d
$ echo a > e
$ echo a > f
$ echo a > g
$ hg add b
$ hg add c
$ hg add d
$ hg add e
$ hg add f
$ hg add g
$ hg ci -m 'mv a foo, add many files'
$ hg up -q ".^"
$ echo b > a
$ hg ci -m 'mod a'
created new head
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 2
| desc: mod a
| o rev: 1
|/ desc: mv a foo, add many files
o rev: 0
desc: initial
Pulkit Goyal
copies: add a config to limit the number of candidates to check in heuristics...
r34847
With small limit
$ hg rebase -s 2 -d 1 --config experimental.copytrace.movecandidateslimit=0
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:ef716627c70b tip "mod a"
Pulkit Goyal
copies: add a config to limit the number of candidates to check in heuristics...
r34847 skipping copytracing for 'a', more candidates than the limit: 7
Pulkit Goyal
filemerge: fix the wrong placements of messages in prompt...
r39321 file 'a' was deleted in local [dest] but was modified in other [source].
Kyle Lippincott
filemerge: make last line of prompts <40 english chars (issue6158)...
r42765 You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
What do you want to do? u
Daniel Ploch
error: unify the error message formats for 'rebase' and 'unshelve'...
r45710 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
Pulkit Goyal
copies: add a config to limit the number of candidates to check in heuristics...
r34847
$ hg rebase --abort
rebase aborted
With default limit which is 100
$ hg rebase -s 2 -d 1
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:ef716627c70b tip "mod a"
Pulkit Goyal
copies: add a config to limit the number of candidates to check in heuristics...
r34847 merging foo and a to foo
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/ef716627c70b-24681561-rebase.hg
Pulkit Goyal
copies: add a config to limit the number of candidates to check in heuristics...
r34847
$ cd ..
$ rm -rf repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 Move file in one branch and delete it in another
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 -----------------------------------------------
$ hg init repo
$ initclient repo
$ cd repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ echo a > a
$ hg add a
$ hg ci -m initial
$ hg mv a b
$ hg ci -m 'mv a b'
$ hg up -q ".^"
$ hg rm a
$ hg ci -m 'del a'
created new head
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg pl
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 2, phase: draft
| desc: del a
| o rev: 1, phase: draft
|/ desc: mv a b
o rev: 0, phase: draft
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ hg rebase -s 1 -d 2
rebasing 1:472e38d57782 "mv a b"
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/472e38d57782-17d50e29-rebase.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ hg up -q c492ed3c7e35dcd1dc938053b8adf56e2cfbd062
Joerg Sonnenberger
tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems...
r45218 $ ls -A
.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 b
$ cd ..
$ rm -rf repo
Move a directory in draft branch
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 --------------------------------
$ hg init repo
$ initclient repo
$ cd repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ mkdir dir
$ echo a > dir/a
$ hg add dir/a
$ hg ci -qm initial
$ echo b > dir/a
$ hg ci -qm 'mod dir/a'
$ hg up -q ".^"
$ hg mv -q dir/ dir2
$ hg ci -qm 'mv dir/ dir2/'
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 2
| desc: mv dir/ dir2/
| o rev: 1
|/ desc: mod dir/a
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ hg rebase -s . -d 1
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:a33d80b6e352 tip "mv dir/ dir2/"
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 merging dir/a and dir2/a to dir2/a
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/a33d80b6e352-fecb9ada-rebase.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ cd ..
$ rm -rf server
$ rm -rf repo
Move file twice and rebase mod on top of moves
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 ----------------------------------------------
$ hg init repo
$ initclient repo
$ cd repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ echo a > a
$ hg add a
$ hg ci -m initial
$ hg mv a b
$ hg ci -m 'mv a b'
$ hg mv b c
$ hg ci -m 'mv b c'
$ hg up -q 0
$ echo c > a
$ hg ci -m 'mod a'
created new head
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 3
| desc: mod a
| o rev: 2
| | desc: mv b c
| o rev: 1
|/ desc: mv a b
o rev: 0
desc: initial
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 $ hg rebase -s . -d 2
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 3:d41316942216 tip "mod a"
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 merging c and a to c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d41316942216-2b5949bc-rebase.hg
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568
$ cd ..
$ rm -rf repo
Move file twice and rebase moves on top of mods
-----------------------------------------------
$ hg init repo
$ initclient repo
$ cd repo
$ echo a > a
$ hg add a
$ hg ci -m initial
$ hg mv a b
$ hg ci -m 'mv a b'
$ hg mv b c
$ hg ci -m 'mv b c'
$ hg up -q 0
$ echo c > a
$ hg ci -m 'mod a'
created new head
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 3
| desc: mod a
| o rev: 2
| | desc: mv b c
| o rev: 1
|/ desc: mv a b
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ hg rebase -s 1 -d .
rebasing 1:472e38d57782 "mv a b"
merging a and b to b
rebasing 2:d3efd280421d "mv b c"
merging b and c to c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/472e38d57782-ab8d3c58-rebase.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ cd ..
$ rm -rf repo
Move one file and add another file in the same folder in one branch, modify file in another branch
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 --------------------------------------------------------------------------------------------------
$ hg init repo
$ initclient repo
$ cd repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ echo a > a
$ hg add a
$ hg ci -m initial
$ hg mv a b
$ hg ci -m 'mv a b'
$ echo c > c
$ hg add c
$ hg ci -m 'add c'
$ hg up -q 0
$ echo b > a
$ hg ci -m 'mod a'
created new head
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 3
| desc: mod a
| o rev: 2
| | desc: add c
| o rev: 1
|/ desc: mv a b
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ hg rebase -s . -d 2
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 3:ef716627c70b tip "mod a"
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 merging b and a to b
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/ef716627c70b-24681561-rebase.hg
Joerg Sonnenberger
tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems...
r45218 $ ls -A
.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 b
c
$ cat b
b
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 $ rm -rf repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
Merge test
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 ----------
$ hg init repo
$ initclient repo
$ cd repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ echo a > a
$ hg add a
$ hg ci -m initial
$ echo b > a
$ hg ci -m 'modify a'
$ hg up -q 0
$ hg mv a b
$ hg ci -m 'mv a b'
created new head
$ hg up -q 2
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 2
| desc: mv a b
| o rev: 1
|/ desc: modify a
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ hg merge 1
merging b and a to b
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m merge
Joerg Sonnenberger
tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems...
r45218 $ ls -A
.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 b
$ cd ..
$ rm -rf repo
Copy and move file
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 ------------------
$ hg init repo
$ initclient repo
$ cd repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ echo a > a
$ hg add a
$ hg ci -m initial
$ hg cp a c
$ hg mv a b
$ hg ci -m 'cp a c, mv a b'
$ hg up -q 0
$ echo b > a
$ hg ci -m 'mod a'
created new head
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 2
| desc: mod a
| o rev: 1
|/ desc: cp a c, mv a b
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ hg rebase -s . -d 1
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:ef716627c70b tip "mod a"
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 merging b and a to b
merging c and a to c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/repo/.hg/strip-backup/ef716627c70b-24681561-rebase.hg
Joerg Sonnenberger
tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems...
r45218 $ ls -A
.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 b
c
$ cat b
b
$ cat c
b
$ cd ..
$ rm -rf repo
Do a merge commit with many consequent moves in one branch
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 ----------------------------------------------------------
$ hg init repo
$ initclient repo
$ cd repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ echo a > a
$ hg add a
$ hg ci -m initial
$ echo b > a
$ hg ci -qm 'mod a'
$ hg up -q ".^"
$ hg mv a b
$ hg ci -qm 'mv a b'
$ hg mv b c
$ hg ci -qm 'mv b c'
$ hg up -q 1
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 o rev: 3
| desc: mv b c
o rev: 2
| desc: mv a b
| @ rev: 1
|/ desc: mod a
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180
$ hg merge 3
merging a and c to c
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -qm 'merge'
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg pl
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 4, phase: draft
|\ desc: merge
| o rev: 3, phase: draft
| | desc: mv b c
| o rev: 2, phase: draft
| | desc: mv a b
o | rev: 1, phase: draft
|/ desc: mod a
o rev: 0, phase: draft
desc: initial
Joerg Sonnenberger
tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems...
r45218 $ ls -A
.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 c
$ cd ..
$ rm -rf repo
Test shelve/unshelve
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 -------------------
$ hg init repo
$ initclient repo
$ cd repo
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ echo a > a
$ hg add a
$ hg ci -m initial
$ echo b > a
$ hg shelve
shelved as default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg mv a b
$ hg ci -m 'mv a b'
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg l
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 1
| desc: mv a b
o rev: 0
desc: initial
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 $ hg unshelve
unshelving change 'default'
rebasing shelved changes
merging b and a to b
Joerg Sonnenberger
tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems...
r45218 $ ls -A
.hg
Pulkit Goyal
copytrace: move fast heuristic copytracing algorithm to core...
r34180 b
$ cat b
b
$ cd ..
$ rm -rf repo
Pulkit Goyal
copytrace: use the full copytracing method if only drafts are involved...
r34289
Test full copytrace ability on draft branch
-------------------------------------------
File directory and base name changed in same move
$ hg init repo
$ initclient repo
$ mkdir repo/dir1
$ cd repo/dir1
$ echo a > a
$ hg add a
$ hg ci -qm initial
$ cd ..
$ hg mv -q dir1 dir2
$ hg mv dir2/a dir2/b
$ hg ci -qm 'mv a b; mv dir1 dir2'
$ hg up -q '.^'
$ cd dir1
$ echo b >> a
$ cd ..
$ hg ci -qm 'mod a'
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg pl
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 2, phase: draft
| desc: mod a
| o rev: 1, phase: draft
|/ desc: mv a b; mv dir1 dir2
o rev: 0, phase: draft
desc: initial
Pulkit Goyal
copytrace: use the full copytracing method if only drafts are involved...
r34289
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 $ hg rebase -s . -d 1 --config experimental.copytrace.sourcecommitlimit=100
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:6207d2d318e7 tip "mod a"
Pulkit Goyal
copytrace: use the full copytracing method if only drafts are involved...
r34289 merging dir2/b and dir1/a to dir2/b
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/repo/.hg/strip-backup/6207d2d318e7-1c9779ad-rebase.hg
Pulkit Goyal
copytrace: use the full copytracing method if only drafts are involved...
r34289 $ cat dir2/b
a
b
$ cd ..
$ rm -rf repo
Move directory in one merge parent, while adding file to original directory
in other merge parent. File moved on rebase.
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568
Pulkit Goyal
copytrace: use the full copytracing method if only drafts are involved...
r34289 $ hg init repo
$ initclient repo
$ mkdir repo/dir1
$ cd repo/dir1
$ echo dummy > dummy
$ hg add dummy
$ cd ..
$ hg ci -qm initial
$ cd dir1
$ echo a > a
$ hg add a
$ cd ..
$ hg ci -qm 'hg add dir1/a'
$ hg up -q '.^'
$ hg mv -q dir1 dir2
$ hg ci -qm 'mv dir1 dir2'
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg pl
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 2, phase: draft
| desc: mv dir1 dir2
| o rev: 1, phase: draft
|/ desc: hg add dir1/a
o rev: 0, phase: draft
desc: initial
Pulkit Goyal
copytrace: use the full copytracing method if only drafts are involved...
r34289
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 $ hg rebase -s . -d 1 --config experimental.copytrace.sourcecommitlimit=100
Martin von Zweigbergk
rebase: change and standarize template for rebase's one-line summary...
r46356 rebasing 2:e8919e7df8d0 tip "mv dir1 dir2"
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/repo/.hg/strip-backup/e8919e7df8d0-f62fab62-rebase.hg
Pulkit Goyal
copytrace: use the full copytracing method if only drafts are involved...
r34289 $ ls dir2
a
dummy
$ rm -rf repo
Pulkit Goyal
copytrace: add a a new config to limit the number of drafts in heuristics...
r34312
Testing the sourcecommitlimit config
Pulkit Goyal
tests: optimize test-copytrace-heuristics.t...
r34568 -----------------------------------
Pulkit Goyal
copytrace: add a a new config to limit the number of drafts in heuristics...
r34312
$ hg init repo
$ initclient repo
$ cd repo
$ echo a > a
$ hg ci -Aqm "added a"
$ echo "more things" >> a
$ hg ci -qm "added more things to a"
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo b > b
$ hg ci -Aqm "added b"
$ mkdir foo
$ hg mv a foo/bar
$ hg ci -m "Moved a to foo/bar"
Martin von Zweigbergk
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t...
r42358 $ hg pl
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 @ rev: 3, phase: draft
| desc: Moved a to foo/bar
o rev: 2, phase: draft
| desc: added b
| o rev: 1, phase: draft
|/ desc: added more things to a
o rev: 0, phase: draft
desc: added a
Pulkit Goyal
copytrace: add a a new config to limit the number of drafts in heuristics...
r34312
When the sourcecommitlimit is small and we have more drafts, we use heuristics only
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 $ hg rebase -s 1 -d .
Pulkit Goyal
copytrace: add a a new config to limit the number of drafts in heuristics...
r34312 rebasing 1:8b6e13696c38 "added more things to a"
Pulkit Goyal
filemerge: fix the wrong placements of messages in prompt...
r39321 file 'a' was deleted in local [dest] but was modified in other [source].
Kyle Lippincott
filemerge: make last line of prompts <40 english chars (issue6158)...
r42765 You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
What do you want to do? u
Daniel Ploch
error: unify the error message formats for 'rebase' and 'unshelve'...
r45710 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 [240]
Pulkit Goyal
copytrace: add a a new config to limit the number of drafts in heuristics...
r34312
But when we have "sourcecommitlimit > (no. of drafts from base to c1)", we do
fullcopytracing
$ hg rebase --abort
rebase aborted
Martin von Zweigbergk
tests: make log style a little easier to read in test-copytrace-heuristics.t...
r42362 $ hg rebase -s 1 -d . --config experimental.copytrace.sourcecommitlimit=100
Pulkit Goyal
copytrace: add a a new config to limit the number of drafts in heuristics...
r34312 rebasing 1:8b6e13696c38 "added more things to a"
merging foo/bar and a to foo/bar
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/repo/repo/.hg/strip-backup/8b6e13696c38-fc14ac83-rebase.hg
Pulkit Goyal
copytrace: add a a new config to limit the number of drafts in heuristics...
r34312 $ cd ..
$ rm -rf repo