##// END OF EJS Templates
subrepos: abort commit by default if a subrepo is dirty (BC)...
subrepos: abort commit by default if a subrepo is dirty (BC) This changeset flips the default value of ui.commitsubrepos setting from True to False and adds a --subrepos flag to commit. The commit, status, and diff commands behave like this with regard to recusion and the ui.commitsubrepos setting: | recurses | recurses | by default | with --subrepos --------+---------------+---------------- commit: | commitsubrepo | True status: | False | True diff: | False | True By changing the default from True to False, the table becomes consistent in the two columns: * without --subrepos on the command line, commit will abort if a subrepo is dirty and status/diff wont show changes inside subrepos. * with --subrepos, all three commands will recurse. A --subrepos flag on the command line overrides the config settin.g

File last commit:

r12527:9a0528fd default
r15321:e174353e stable
Show More
test-convert-hg-svn.t
108 lines | 2.5 KiB | text/troff | Tads3Lexer
/ tests / test-convert-hg-svn.t
$ "$TESTDIR/hghave" svn svn-bindings || exit 80
$ fix_path()
> {
> tr '\\' /
> }
$ echo "[extensions]" >> $HGRCPATH
$ echo "convert = " >> $HGRCPATH
$ echo "mq = " >> $HGRCPATH
$ svnpath=`pwd | fix_path`/svn-repo
$ svnadmin create "$svnpath"
$ cat > "$svnpath"/hooks/pre-revprop-change <<EOF
> #!/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
$ chmod +x "$svnpath"/hooks/pre-revprop-change
$
$ # SVN wants all paths to start with a slash. Unfortunately,
$ # Windows ones don't. Handle that.
$ svnurl="$svnpath"
$ expr "$svnurl" : "\/" > /dev/null || svnurl="/$svnurl"
$ svnurl="file://$svnurl"
$ svn co "$svnurl" "$svnpath"-wc
Checked out revision 0.
$ cd "$svnpath"-wc
$ 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
$ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg | grep -v initializing
scanning source...
sorting...
converting...
0 added a
$ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
scanning source...
sorting...
converting...
second roundtrip should do nothing
$ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg
scanning source...
sorting...
converting...
$ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
scanning source...
sorting...
converting...
new hg rev
$ hg clone "$svnpath"-hg "$svnpath"-work
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd "$svnpath"-work
$ 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
$ hg --cwd "$svnpath"-hg pull -q "$svnpath"-work
$ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
scanning source...
sorting...
converting...
1 b
0 emtpy
svn back to hg should do nothing
$ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg
scanning source...
sorting...
converting...
hg back to svn should do nothing
$ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
scanning source...
sorting...
converting...