##// END OF EJS Templates
largefiles: for update -C, only update largefiles when necessary...
largefiles: for update -C, only update largefiles when necessary Before, a --clean update with largefiles would use the "optimization" that it didn't read hashes from standin files before and after the update. Instead of trusting the content of the standin files, it would rehash all the actual largefiles that lfdirstate reported clean and update the standins that didn't have the expected content. It could thus in some "impossible" situations automatically recover from some "largefile got out sync with its standin" issues (even there apparently still were weird corner cases where it could fail). This extra checking is similar to what core --clean intentionally do not do, and it made update --clean unbearable slow. Usually in core Mercurial, --clean will rely on the dirstate to find the files it should update. (It is thus intentionally possible (when trying to trick the system or if there should be bugs) to end up in situations where --clean not will restore the working directory content correctly.) Checking every file when we "know" it is ok is however not an option - that would be too slow. Instead, trust the content of the standin files. Use the same logic for --clean as for linear updates and trust the dirstate and that our "logic" will keep them in sync. It is much cheaper to just rehash the largefiles reported dirty by a status walk and read all standins than to hash largefiles. Most of the changes are just a change of indentation now when the different kinds of updates no longer are handled that differently. Standins for added files are however only written when doing a normal update, while deleted and removed files only will be updated for --clean updates.

File last commit:

r24216:4bb348ae default
r24787:9d5c2789 default
Show More
test-rebase-named-branches.t
380 lines | 7.0 KiB | text/troff | Tads3Lexer
/ tests / test-rebase-named-branches.t
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 $ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
>
Pierre-Yves David
phases: prevent rebase to rebase immutable changeset.
r15742 > [phases]
> publish=False
>
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 > [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
$ hg init a
$ cd a
Thomas Arendsen Hein
tests: make tests work if directory contains special characters...
r16350 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
Nicolas Dumazet
tests: introduce a rebase bundle to use with rebase tests...
r14118 adding changesets
adding manifests
adding file changes
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 added 8 changesets with 7 changes to 7 files (+2 heads)
Nicolas Dumazet
tests: introduce a rebase bundle to use with rebase tests...
r14118 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hg up tip
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 $ cd ..
$ hg clone -q -u . a a1
$ cd a1
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 $ hg update 3
3 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg branch dev-one
marked working directory as branch dev-one
(branches are permanent and global, did you want a bookmark?)
$ hg ci -m 'dev-one named branch'
$ hg update 7
2 files updated, 0 files merged, 3 files removed, 0 files unresolved
$ hg branch dev-two
marked working directory as branch dev-two
Matt Mackall
branch: warn on branching
r15615 (branches are permanent and global, did you want a bookmark?)
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733
$ echo x > x
$ hg add x
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 $ hg ci -m 'dev-two named branch'
$ hg tglog
@ 9: 'dev-two named branch' dev-two
|
| o 8: 'dev-one named branch' dev-one
| |
o | 7: 'H'
| |
+---o 6: 'G'
| | |
o | | 5: 'F'
| | |
+---o 4: 'E'
| |
| o 3: 'D'
| |
| o 2: 'C'
| |
| o 1: 'B'
|/
o 0: 'A'
Branch name containing a dash (issue3181)
$ hg rebase -b dev-two -d dev-one --keepbranches
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 5:24b6387c8c8c "F"
rebasing 6:eea13746799a "G"
rebasing 7:02de42196ebe "H"
rebasing 9:cb039b7cae8e "dev-two named branch" (tip)
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/24b6387c8c8c-24cb8001-backup.hg (glob)
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800
$ hg tglog
@ 9: 'dev-two named branch' dev-two
|
o 8: 'H'
|
| o 7: 'G'
|/|
o | 6: 'F'
| |
o | 5: 'dev-one named branch' dev-one
| |
| o 4: 'E'
| |
o | 3: 'D'
| |
o | 2: 'C'
| |
o | 1: 'B'
|/
o 0: 'A'
$ hg rebase -s dev-one -d 0 --keepbranches
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 5:643fc9128048 "dev-one named branch"
Mads Kiilerich
rebase: show warning when rebase creates no changes to commit...
r23518 note: rebase of 5:643fc9128048 created no changes to commit
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 6:24de4aff8e28 "F"
rebasing 7:4b988a958030 "G"
rebasing 8:31d0e4ba75e6 "H"
rebasing 9:9e70cd31750f "dev-two named branch" (tip)
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/643fc9128048-c4ee9ef5-backup.hg (glob)
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733
$ hg tglog
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 @ 8: 'dev-two named branch' dev-two
|
o 7: 'H'
|
| o 6: 'G'
|/|
o | 5: 'F'
| |
| o 4: 'E'
|/
| o 3: 'D'
| |
| o 2: 'C'
| |
| o 1: 'B'
|/
o 0: 'A'
$ hg update 3
3 files updated, 0 files merged, 3 files removed, 0 files unresolved
$ hg branch dev-one
marked working directory as branch dev-one
(branches are permanent and global, did you want a bookmark?)
$ hg ci -m 'dev-one named branch'
$ hg tglog
@ 9: 'dev-one named branch' dev-one
|
| o 8: 'dev-two named branch' dev-two
| |
| o 7: 'H'
| |
| | o 6: 'G'
| |/|
| o | 5: 'F'
| | |
| | o 4: 'E'
| |/
o | 3: 'D'
| |
o | 2: 'C'
| |
o | 1: 'B'
|/
o 0: 'A'
$ hg rebase -b 'max(branch("dev-two"))' -d dev-one --keepbranches
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 5:77854864208c "F"
rebasing 6:63b4f9c788a1 "G"
rebasing 7:87861e68abd3 "H"
rebasing 8:ec00d4e0efca "dev-two named branch"
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/77854864208c-74d59436-backup.hg (glob)
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800
$ hg tglog
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 o 9: 'dev-two named branch' dev-two
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 |
o 8: 'H'
|
| o 7: 'G'
|/|
o | 6: 'F'
| |
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 @ | 5: 'dev-one named branch' dev-one
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 | |
| o 4: 'E'
| |
o | 3: 'D'
| |
o | 2: 'C'
| |
o | 1: 'B'
|/
o 0: 'A'
$ hg rebase -s 'max(branch("dev-one"))' -d 0 --keepbranches
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 5:643fc9128048 "dev-one named branch"
Mads Kiilerich
rebase: show warning when rebase creates no changes to commit...
r23518 note: rebase of 5:643fc9128048 created no changes to commit
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 6:05584c618d45 "F"
rebasing 7:471695f5257d "G"
rebasing 8:8382a539a2df "H"
rebasing 9:11f718458b32 "dev-two named branch" (tip)
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/643fc9128048-177f3c5c-backup.hg (glob)
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800
$ hg tglog
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 o 8: 'dev-two named branch' dev-two
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 o 7: 'H'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 | o 6: 'G'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |/|
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 o | 5: 'F'
| |
| o 4: 'E'
|/
| o 3: 'D'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 | |
| o 2: 'C'
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 | |
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 | o 1: 'B'
|/
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 @ 0: 'A'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733
Nicolas Dumazet
tests: simplify test-rebase-named-branches...
r14120
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 Rebasing descendant onto ancestor across different named branches
Nicolas Dumazet
tests: simplify test-rebase-named-branches...
r14120
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 $ hg rebase -s 1 -d 8 --keepbranches
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:42ccdea3bb16 "B"
rebasing 2:5fddd98957c8 "C"
rebasing 3:32af7686d403 "D"
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/42ccdea3bb16-3cb021d3-backup.hg (glob)
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733
$ hg tglog
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 o 8: 'D'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 o 7: 'C'
|
o 6: 'B'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 o 5: 'dev-two named branch' dev-two
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 |
o 4: 'H'
|
| o 3: 'G'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |/|
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 o | 2: 'F'
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 | |
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 | o 1: 'E'
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 |/
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 @ 0: 'A'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124
$ hg rebase -s 4 -d 5
abort: source is ancestor of destination
[255]
$ hg rebase -s 5 -d 4
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 5:32d3b0de7f37 "dev-two named branch"
rebasing 6:580fcd9fd48f "B"
rebasing 7:32aba0402ed2 "C"
rebasing 8:e4787b575338 "D" (tip)
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/32d3b0de7f37-c37815ca-backup.hg (glob)
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124
$ hg tglog
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 o 8: 'D'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 |
o 7: 'C'
|
o 6: 'B'
|
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 o 5: 'dev-two named branch'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 |
o 4: 'H'
|
| o 3: 'G'
|/|
o | 2: 'F'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 | |
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 | o 1: 'E'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |/
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 @ 0: 'A'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733
Mads Kiilerich
rebase: tell when reopening a closed branch head...
r21027
Reopen branch by rebase
$ hg up -qr3
$ hg branch -q b
$ hg ci -m 'create b'
$ hg ci -m 'close b' --close
$ hg rebase -b 8 -d b
reopening closed branch head ea9de14a36c6
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 4:86693275b2ef "H"
rebasing 5:2149726d0970 "dev-two named branch"
rebasing 6:81e55225e95d "B"
rebasing 7:09eda3dc3195 "C"
rebasing 8:31298fc9d159 "D"
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/86693275b2ef-f9fcf4e2-backup.hg (glob)
Mads Kiilerich
rebase: tell when reopening a closed branch head...
r21027
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 $ cd ..
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251
Rebase to other head on branch
Set up a case:
$ hg init case1
$ cd case1
$ touch f
$ hg ci -qAm0
$ hg branch -q b
$ echo >> f
$ hg ci -qAm 'b1'
$ hg up -qr -2
$ hg branch -qf b
$ hg ci -qm 'b2'
$ hg up -qr -3
$ hg branch -q c
$ hg ci -m 'c1'
$ hg tglog
@ 3: 'c1' c
|
| o 2: 'b2' b
|/
| o 1: 'b1' b
|/
o 0: '0'
$ hg clone -q . ../case2
rebase 'b2' to another lower branch head
$ hg up -qr 2
$ hg rebase
nothing to rebase - working directory parent is also destination
[1]
$ hg tglog
o 3: 'c1' c
|
| @ 2: 'b2' b
|/
| o 1: 'b1' b
|/
o 0: '0'
rebase 'b1' on top of the tip of the branch ('b2') - ignoring the tip branch ('c1')
$ cd ../case2
$ hg up -qr 1
$ hg rebase
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:40039acb7ca5 "b1"
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/case2/.hg/strip-backup/40039acb7ca5-342b72d1-backup.hg (glob)
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 $ hg tglog
@ 3: 'b1' b
|
| o 2: 'c1' c
| |
o | 1: 'b2' b
|/
o 0: '0'
rebase 'c1' to the branch head 'c2' that is closed
$ hg branch -qf c
$ hg ci -qm 'c2 closed' --close
$ hg up -qr 2
$ hg tglog
Jordi Gutiérrez Hermoso
log: display closing-branch nodes as "_" (BC)...
r24216 _ 4: 'c2 closed' c
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 |
o 3: 'b1' b
|
| @ 2: 'c1' c
| |
o | 1: 'b2' b
|/
o 0: '0'
$ hg rebase
nothing to rebase - working directory parent is also destination
[1]
$ hg tglog
Jordi Gutiérrez Hermoso
log: display closing-branch nodes as "_" (BC)...
r24216 _ 4: 'c2 closed' c
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 |
o 3: 'b1' b
|
| @ 2: 'c1' c
| |
o | 1: 'b2' b
|/
o 0: '0'
$ cd ..