##// END OF EJS Templates
revisionbranchcache: fall back to slow path if starting readonly (issue4531)...
revisionbranchcache: fall back to slow path if starting readonly (issue4531) Transitioning to Mercurial versions with revision branch cache could be slow as long as all operations were readonly (revset queries) and the cache would be populated but not written back. Instead, fall back to using the consistently slow path when readonly and the cache doesn't exist yet. That avoids the overhead of populating the cache without writing it back. If not readonly, it will still populate all missing entries initially. That avoids repeated writing of the cache file with small updates, and it also makes sure a fully populated cache available for the readonly operations.

File last commit:

r23172:e955549c default
r24159:5b4ed033 3.3.1 stable
Show More
test-convert-hg-svn.t
118 lines | 3.1 KiB | text/troff | Tads3Lexer
/ tests / test-convert-hg-svn.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require svn svn-bindings
Matt Mackall
tests: unify test-convert-hg-svn
r12527
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
> [extensions]
> convert =
> mq =
> EOF
Mads Kiilerich
tests: cleanup of svn url handling...
r17033
$ SVNREPOPATH=`pwd`/svn-repo
#if windows
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ SVNREPOURL=file:///`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 #else
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ SVNREPOURL=file://`$PYTHON -c "import urllib, sys; sys.stdout.write(urllib.quote(sys.argv[1]))" "$SVNREPOPATH"`
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 #endif
$ svnadmin create "$SVNREPOPATH"
$ cat > "$SVNREPOPATH"/hooks/pre-revprop-change <<EOF
Matt Mackall
tests: unify test-convert-hg-svn
r12527 > #!/bin/sh
>
> REPOS="$1"
> REV="$2"
> USER="$3"
> PROPNAME="$4"
> ACTION="$5"
>
> if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
> if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-branch" ]; then exit 0; fi
> if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-rev" ]; then exit 0; fi
>
> echo "Changing prohibited revision property" >&2
> exit 1
> EOF
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ chmod +x "$SVNREPOPATH"/hooks/pre-revprop-change
$ svn co "$SVNREPOURL" "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 Checked out revision 0.
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ cd "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 $ echo a > a
$ svn add a
A a
$ svn ci -m'added a' a
Adding a
Transmitting file data .
Committed revision 1.
$ cd ..
initial roundtrip
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg | grep -v initializing
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
0 added a
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
second roundtrip should do nothing
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
new hg rev
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg clone "$SVNREPOPATH"-hg "$SVNREPOPATH"-work
Matt Mackall
tests: unify test-convert-hg-svn
r12527 updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ cd "$SVNREPOPATH"-work
Matt Mackall
tests: unify test-convert-hg-svn
r12527 $ echo b > b
$ hg add b
$ hg ci -mb
adding an empty revision
$ hg qnew -m emtpy empty
$ hg qfinish -a
$ cd ..
echo hg to svn
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg --cwd "$SVNREPOPATH"-hg pull -q "$SVNREPOPATH"-work
$ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
1 b
0 emtpy
svn back to hg should do nothing
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s svn -d hg "$SVNREPOPATH"-wc "$SVNREPOPATH"-hg
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
hg back to svn should do nothing
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg convert -s hg -d svn "$SVNREPOPATH"-hg "$SVNREPOPATH"-wc
Matt Mackall
tests: unify test-convert-hg-svn
r12527 scanning source...
sorting...
converting...
Mads Kiilerich
convert: make subversion revsplit more stable when meeting revisions without @...
r20419
verify which shamap format we are storing and must be able to handle
$ cat svn-repo-hg/.hg/shamap
svn:????????-????-????-????-????????????@1 ???????????????????????????????????????? (glob)
svn:????????-????-????-????-????????????@2 ???????????????????????????????????????? (glob)
svn:????????-????-????-????-????????????@2 ???????????????????????????????????????? (glob)
$ cat svn-repo-wc/.svn/hg-shamap
???????????????????????????????????????? 1 (glob)
???????????????????????????????????????? svn:????????-????-????-????-????????????@2 (glob)
???????????????????????????????????????? svn:????????-????-????-????-????????????@2 (glob)