##// END OF EJS Templates
patch: support diff data loss detection and upgrade...
patch: support diff data loss detection and upgrade In worst case, generating diff in upgrade mode can be two times more expensive than generating it in git mode directly: we may have to regenerate the whole diff again whenever a git feature is detected. Also, the first diff attempt is completely buffered instead of being streamed. That said, even without having profiled it yet, I am convinced we can fast-path the upgrade mode if necessary were it to be used in regular diff commands, and not only in mq where avoiding data loss is worth the price.

File last commit:

r8991:7e0b31df default
r10189:e451e599 default
Show More
test-branches
90 lines | 1.7 KiB | text/plain | TextLexer
#!/bin/sh
hg init a
cd a
echo 'root' >root
hg add root
hg commit -d '0 0' -m "Adding root node"
echo 'a' >a
hg add a
hg branch a
hg commit -d '1 0' -m "Adding a branch"
hg branch q
echo 'aa' >a
hg branch -C
hg commit -d '2 0' -m "Adding to a branch"
hg update -C 0
echo 'b' >b
hg add b
hg branch b
hg commit -d '2 0' -m "Adding b branch"
echo 'bh1' >bh1
hg add bh1
hg commit -d '3 0' -m "Adding b branch head 1"
hg update -C 2
echo 'bh2' >bh2
hg add bh2
hg commit -d '4 0' -m "Adding b branch head 2"
echo 'c' >c
hg add c
hg branch c
hg commit -d '5 0' -m "Adding c branch"
echo 'd' >d
hg add d
hg branch 'a branch name much longer than the default justification used by branches'
hg commit -d '6 0' -m "Adding d branch"
hg branches
echo '-------'
hg branches -a
echo "--- Branch a"
hg log -b a
echo "---- Branch b"
hg log -b b
echo "---- going to test branch closing"
hg branches
hg up -C b
echo 'xxx1' >> b
hg commit -d '7 0' -m 'adding cset to branch b'
hg up -C aee39cd168d0
echo 'xxx2' >> b
hg commit -d '8 0' -m 'adding head to branch b'
echo 'xxx3' >> b
hg commit -d '9 0' -m 'adding another cset to branch b'
hg branches
hg heads --closed
hg heads
hg commit -d '9 0' --close-branch -m 'prune bad branch'
hg branches -a
hg up -C b
hg commit -d '9 0' --close-branch -m 'close this part branch too'
echo '--- b branch should be inactive'
hg branches
hg branches -c
hg branches -a
hg heads b
hg heads --closed b
echo 'xxx4' >> b
hg commit -d '9 0' -m 'reopen branch with a change'
echo '--- branch b is back in action'
hg branches -a
echo '---- test heads listings'
hg heads
echo '% branch default'
hg heads default
echo '% branch a'
hg heads a
hg heads --active a
echo '% branch b'
hg heads b
hg heads --closed b