mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
2e188aa5f4
Keeps old clients from conflicting with new caches, makes features logic unnecessary.
79 lines
1.3 KiB
Bash
Executable File
79 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
echo '[extensions]' >> $HGRCPATH
|
|
echo 'hgext.mq=' >> $HGRCPATH
|
|
|
|
show_branch_cache()
|
|
{
|
|
branches=.hg/branch.cache
|
|
# force cache (re)generation
|
|
hg log -r does-not-exist 2> /dev/null
|
|
hg log -r tip --template 'tip: #rev#\n'
|
|
if [ -f $branches ]; then
|
|
sort $branches
|
|
else
|
|
echo No $branches
|
|
fi
|
|
if [ "$1" = 1 ]; then
|
|
for b in foo bar; do
|
|
hg log -r $b --template "branch $b: "'#rev#\n'
|
|
done
|
|
fi
|
|
}
|
|
|
|
hg init a
|
|
cd a
|
|
hg qinit -c
|
|
|
|
echo '# mq patch on an empty repo'
|
|
hg qnew p1
|
|
show_branch_cache
|
|
|
|
echo > pfile
|
|
hg add pfile
|
|
hg qrefresh -m 'patch 1'
|
|
show_branch_cache
|
|
|
|
echo
|
|
echo '# some regular revisions'
|
|
hg qpop
|
|
echo foo > foo
|
|
hg add foo
|
|
echo foo > .hg/branch
|
|
hg ci -m 'branch foo' -d '1000000 0'
|
|
|
|
echo bar > bar
|
|
hg add bar
|
|
echo bar > .hg/branch
|
|
hg ci -m 'branch bar' -d '1000000 0'
|
|
show_branch_cache
|
|
|
|
echo
|
|
echo '# add some mq patches'
|
|
hg qpush
|
|
show_branch_cache
|
|
|
|
hg qnew p2
|
|
echo foo > .hg/branch
|
|
echo foo2 >> foo
|
|
hg qrefresh -m 'patch 2'
|
|
show_branch_cache 1
|
|
|
|
echo
|
|
echo '# removing the cache'
|
|
rm .hg/branch.cache
|
|
show_branch_cache 1
|
|
|
|
echo
|
|
echo '# importing rev 1 (the cache now ends in one of the patches)'
|
|
hg qimport -r 1 -n p0
|
|
show_branch_cache 1
|
|
hg log -r qbase --template 'qbase: #rev#\n'
|
|
|
|
echo
|
|
echo '# detect an invalid cache'
|
|
hg qpop -a
|
|
hg qpush -a
|
|
show_branch_cache
|
|
|