##// END OF EJS Templates
subrepo: extend config option to disable subrepos by type (SEC)...
subrepo: extend config option to disable subrepos by type (SEC) This allows us to minimize the behavior change introduced by the next patch. I have no idea which config style is preferred in UX POV, but I decided to get things done. a) list: 'allowed = hg, git, svn' b) sub option: 'allowed.hg = True' or 'allowed:hg = True' c) per-type action: 'hg = allow', 'git = abort'

File last commit:

r33733:3fee7f7d 4.3.1 stable
r34987:828cf35f stable
Show More
test-subrepo-svn.t
681 lines | 17.4 KiB | text/troff | Tads3Lexer
/ tests / test-subrepo-svn.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require svn15
Martin Geisler
tests: unify test-subrepo-svn
r11916
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
Martin Geisler
tests: unify test-subrepo-svn
r11916
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ filter_svn_output () {
FUJIWARA Katsunori
tests: make tests for convert with svn portable...
r28533 > egrep -v 'Committing|Transmitting|Updating|(^$)' || true
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 > }
Martin Geisler
tests: unify test-subrepo-svn
r11916 create subversion repo
$ WCROOT="`pwd`/svn-wc"
$ svnadmin create svn-repo
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ svn co "$SVNREPOURL" svn-wc
Martin Geisler
tests: unify test-subrepo-svn
r11916 Checked out revision 0.
$ cd svn-wc
$ mkdir src
$ echo alpha > src/alpha
$ svn add src
A src
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 A src/alpha (glob)
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ mkdir externals
$ echo other > externals/other
$ svn add externals
A externals
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 A externals/other (glob)
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ svn ci -qm 'Add alpha'
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ svn up -q
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ echo "externals -r1 $SVNREPOURL/externals" > extdef
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ svn propset -F extdef svn:externals src
property 'svn:externals' set on 'src'
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ svn ci -qm 'Setting externals'
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ cd ..
create hg repo
$ mkdir sub
$ cd sub
$ hg init t
$ cd t
first revision, no sub
$ echo a > a
$ hg ci -Am0
adding a
add first svn sub with leading whitespaces
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ echo "s = [svn] $SVNREPOURL/src" >> .hgsub
$ echo "subdir/s = [svn] $SVNREPOURL/src" >> .hgsub
$ svn co --quiet "$SVNREPOURL"/src s
Patrick Mezard
subrepo: prune empty directories when removing svn subrepo
r13015 $ mkdir subdir
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ svn co --quiet "$SVNREPOURL"/src subdir/s
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ hg add .hgsub
$ hg ci -m1
Matt Mackall
subrepo: fix status check on SVN subrepos (issue2445)
r12798 make sure we avoid empty commits (issue2445)
$ hg sum
parent: 1:* tip (glob)
1
branch: default
commit: (clean)
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 2 draft
Matt Mackall
subrepo: fix status check on SVN subrepos (issue2445)
r12798 $ hg ci -moops
nothing changed
[1]
Martin Geisler
tests: unify test-subrepo-svn
r11916 debugsub
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg debugsub
Martin Geisler
tests: unify test-subrepo-svn
r11916 path s
Mads Kiilerich
test-subrepo-svn.t: ignore that subversion %-encodes $TESTTMP...
r12668 source file://*/svn-repo/src (glob)
Martin Geisler
tests: unify test-subrepo-svn
r11916 revision 2
Patrick Mezard
subrepo: prune empty directories when removing svn subrepo
r13015 path subdir/s
source file://*/svn-repo/src (glob)
revision 2
Martin Geisler
tests: unify test-subrepo-svn
r11916
change file in svn and hg, commit
$ echo a >> a
$ echo alpha >> s/alpha
Matt Mackall
subrepo: fix status check on SVN subrepos (issue2445)
r12798 $ hg sum
parent: 1:* tip (glob)
1
branch: default
commit: 1 modified, 1 subrepos
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 2 draft
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ hg commit --subrepos -m 'Message!' | filter_svn_output
Martin Geisler
tests: unify test-subrepo-svn
r11916 committing subrepository s
Matt Mackall
tests: various fixes for new unified test pattern format
r12377 Sending*s/alpha (glob)
Martin Geisler
tests: unify test-subrepo-svn
r11916 Committed revision 3.
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 Fetching external item into '*s/externals'* (glob)
Martin Geisler
tests: unify test-subrepo-svn
r11916 External at revision 1.
At revision 3.
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg debugsub
Martin Geisler
tests: unify test-subrepo-svn
r11916 path s
Mads Kiilerich
test-subrepo-svn.t: ignore that subversion %-encodes $TESTTMP...
r12668 source file://*/svn-repo/src (glob)
Martin Geisler
tests: unify test-subrepo-svn
r11916 revision 3
Patrick Mezard
subrepo: prune empty directories when removing svn subrepo
r13015 path subdir/s
source file://*/svn-repo/src (glob)
revision 2
Martin Geisler
tests: unify test-subrepo-svn
r11916
Patrick Mezard
subrepo/svn: abort on commit with missing file (issue3029)...
r16529 missing svn file, commit should fail
$ rm s/alpha
$ hg commit --subrepos -m 'abort on missing file'
committing subrepository s
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: cannot commit missing svn entries (in subrepository "s")
Patrick Mezard
subrepo/svn: abort on commit with missing file (issue3029)...
r16529 [255]
$ svn revert s/alpha > /dev/null
Patrick Mezard
subrepo: compare svn subrepo state to last committed revision...
r13287 add an unrelated revision in svn and update the subrepo to without
bringing any changes.
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ svn mkdir "$SVNREPOURL/unrelated" -qm 'create unrelated'
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ svn up -q s
Patrick Mezard
subrepo: compare svn subrepo state to last committed revision...
r13287 $ hg sum
parent: 2:* tip (glob)
Message!
branch: default
commit: (clean)
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 3 draft
Patrick Mezard
subrepo: compare svn subrepo state to last committed revision...
r13287
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ echo a > s/a
should be empty despite change to s/a
$ hg st
add a commit from svn
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ cd "$WCROOT/src"
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ svn up -q
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ echo xyz >> alpha
$ svn propset svn:mime-type 'text/xml' alpha
property 'svn:mime-type' set on 'alpha'
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ svn ci -qm 'amend a from svn'
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ cd ../../sub/t
this commit from hg will fail
$ echo zzz >> s/alpha
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ (hg ci --subrepos -m 'amend alpha from hg' 2>&1; echo "[$?]") | grep -vi 'out of date'
Martin Geisler
tests: unify test-subrepo-svn
r11916 committing subrepository s
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 abort: svn:*Commit failed (details follow): (glob)
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 [255]
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ svn revert -q s/alpha
this commit fails because of meta changes
$ svn propset svn:mime-type 'text/html' s/alpha
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 property 'svn:mime-type' set on 's/alpha' (glob)
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ (hg ci --subrepos -m 'amend alpha from hg' 2>&1; echo "[$?]") | grep -vi 'out of date'
Martin Geisler
tests: unify test-subrepo-svn
r11916 committing subrepository s
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 abort: svn:*Commit failed (details follow): (glob)
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 [255]
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ svn revert -q s/alpha
this commit fails because of externals changes
$ echo zzz > s/externals/other
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 $ hg ci --subrepos -m 'amend externals from hg'
Martin Geisler
tests: unify test-subrepo-svn
r11916 committing subrepository s
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: cannot commit svn externals (in subrepository "s")
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Patrick Mezard
subrepos: handle diff nodeids in subrepos, not before...
r12209 $ hg diff --subrepos -r 1:2 | grep -v diff
--- a/.hgsubstate Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgsubstate Thu Jan 01 00:00:00 1970 +0000
Patrick Mezard
subrepo: prune empty directories when removing svn subrepo
r13015 @@ -1,2 +1,2 @@
Patrick Mezard
subrepos: handle diff nodeids in subrepos, not before...
r12209 -2 s
+3 s
Patrick Mezard
subrepo: prune empty directories when removing svn subrepo
r13015 2 subdir/s
Patrick Mezard
subrepos: handle diff nodeids in subrepos, not before...
r12209 --- a/a Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,2 @@
a
+a
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ svn revert -q s/externals/other
this commit fails because of externals meta changes
$ svn propset svn:mime-type 'text/html' s/externals/other
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 property 'svn:mime-type' set on 's/externals/other' (glob)
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 $ hg ci --subrepos -m 'amend externals from hg'
Martin Geisler
tests: unify test-subrepo-svn
r11916 committing subrepository s
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: cannot commit svn externals (in subrepository "s")
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-subrepo-svn
r11916 $ svn revert -q s/externals/other
clone
$ cd ..
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ hg clone t tc
Martin Geisler
tests: unify test-subrepo-svn
r11916 updating to branch default
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 A tc/s/alpha (glob)
U tc/s (glob)
Matt Mackall
subrepo: fix up svn test output
r13907
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 Fetching external item into 'tc/s/externals'* (glob)
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 A tc/s/externals/other (glob)
Matt Mackall
subrepo: fix up svn test output
r13907 Checked out external at revision 1.
Checked out revision 3.
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 A tc/subdir/s/alpha (glob)
U tc/subdir/s (glob)
Patrick Mezard
subrepo: prune empty directories when removing svn subrepo
r13015
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 Fetching external item into 'tc/subdir/s/externals'* (glob)
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 A tc/subdir/s/externals/other (glob)
Patrick Mezard
subrepo: prune empty directories when removing svn subrepo
r13015 Checked out external at revision 1.
Checked out revision 2.
Martin Geisler
tests: unify test-subrepo-svn
r11916 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd tc
debugsub in clone
Matt Mackall
tests: drop a bunch of sed calls from unified tests
r12366 $ hg debugsub
Martin Geisler
tests: unify test-subrepo-svn
r11916 path s
Mads Kiilerich
test-subrepo-svn.t: ignore that subversion %-encodes $TESTTMP...
r12668 source file://*/svn-repo/src (glob)
Martin Geisler
tests: unify test-subrepo-svn
r11916 revision 3
Patrick Mezard
subrepo: prune empty directories when removing svn subrepo
r13015 path subdir/s
source file://*/svn-repo/src (glob)
revision 2
Martin Geisler
tests: unify test-subrepo-svn
r11916
verify subrepo is contained within the repo directory
Augie Fackler
tests: use $PYTHON instead of hardcoding python...
r22947 $ $PYTHON -c "import os.path; print os.path.exists('s')"
Martin Geisler
tests: unify test-subrepo-svn
r11916 True
Ronny Pfannschmidt
subrepo: test & fix svn subrepo removal
r12930
update to nullrev (must delete the subrepo)
$ hg up null
0 files updated, 0 files merged, 3 files removed, 0 files unresolved
Patrick Mezard
subrepo: prune empty directories when removing svn subrepo
r13015 $ ls
Erik Zielke
subrepo: make update -C clean the working directory for svn subrepos...
r13322
Check hg update --clean
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ cd "$TESTTMP/sub/t"
Erik Zielke
subrepo: make update -C clean the working directory for svn subrepos...
r13322 $ cd s
$ echo c0 > alpha
$ echo c1 > f1
$ echo c1 > f2
$ svn add f1 -q
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ svn status | sort
Matt Mackall
tests: fixes for svn 1.4.2
r13410 ? * a (glob)
? * f2 (glob)
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 A * f1 (glob)
Matt Mackall
tests: fixes for svn 1.4.2
r13410 M * alpha (glob)
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 Performing status on external item at 'externals'* (glob)
X * externals (glob)
Patrick Mezard
subrepo: fix update -C with svn subrepos when cwd != repo.root
r13332 $ cd ../..
$ hg -R t update -C
Erik Zielke
subrepo: make update -C clean the working directory for svn subrepos...
r13322
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 Fetching external item into 't/s/externals'* (glob)
Erik Zielke
subrepo: make update -C clean the working directory for svn subrepos...
r13322 Checked out external at revision 1.
Checked out revision 3.
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Patrick Mezard
subrepo: fix update -C with svn subrepos when cwd != repo.root
r13332 $ cd t/s
Patrick Mezard
test-subrepo-svn: fix non-determinism...
r16526 $ svn status | sort
Matt Mackall
tests: fixes for svn 1.4.2
r13410 ? * a (glob)
? * f1 (glob)
? * f2 (glob)
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 Performing status on external item at 'externals'* (glob)
Patrick Mezard
test-subrepo-svn: fix non-determinism...
r16526 X * externals (glob)
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417
Sticky subrepositories, no changes
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ cd "$TESTTMP/sub/t"
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ hg id -n
2
$ cd s
$ svnversion
3
$ cd ..
$ hg update 1
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 U *s/alpha (glob)
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 Fetching external item into '*s/externals'* (glob)
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 Checked out external at revision 1.
Checked out revision 2.
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
1
$ cd s
$ svnversion
2
$ cd ..
Mads Kiilerich
spelling: fixes from spell checker
r21024 Sticky subrepositories, file changes
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ touch s/f1
$ cd s
$ svn add f1
A f1
$ cd ..
$ hg id -n
Patrick Mezard
identity: show trailing '+' for dirty subrepos (issue2839)
r17255 1+
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ cd s
$ svnversion
2M
$ cd ..
$ hg update tip
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository s diverged (local revision: 2, remote revision: 3)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 subrepository sources for s differ
Mads Kiilerich
subrepo: remove superfluous newline from subrepo prompt
r22590 use (l)ocal source (2) or (r)emote source (3)? l
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
2+
$ cd s
$ svnversion
2M
$ cd ..
$ hg update --clean tip
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 U *s/alpha (glob)
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 Fetching external item into '*s/externals'* (glob)
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 Checked out external at revision 1.
Checked out revision 3.
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Sticky subrepository, revision updates
$ hg id -n
2
$ cd s
$ svnversion
3
$ cd ..
$ cd s
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ svn update -qr 1
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ cd ..
$ hg update 1
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository s diverged (local revision: 3, remote revision: 2)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 subrepository sources for s differ (in checked out version)
Mads Kiilerich
subrepo: remove superfluous newline from subrepo prompt
r22590 use (l)ocal source (1) or (r)emote source (2)? l
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
1+
$ cd s
$ svnversion
1
$ cd ..
Sticky subrepository, file changes and revision updates
$ touch s/f1
$ cd s
$ svn add f1
A f1
$ svnversion
1M
$ cd ..
$ hg id -n
1+
$ hg update tip
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository s diverged (local revision: 3, remote revision: 3)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 subrepository sources for s differ
Mads Kiilerich
subrepo: remove superfluous newline from subrepo prompt
r22590 use (l)ocal source (1) or (r)emote source (3)? l
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
Patrick Mezard
identity: show trailing '+' for dirty subrepos (issue2839)
r17255 2+
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ cd s
$ svnversion
1M
$ cd ..
Sticky repository, update --clean
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 $ hg update --clean tip | grep -v 's[/\]externals[/\]other'
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 U *s/alpha (glob)
U *s (glob)
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 Fetching external item into '*s/externals'* (glob)
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 Checked out external at revision 1.
Checked out revision 3.
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
2
$ cd s
$ svnversion
3
$ cd ..
Test subrepo already at intended revision:
$ cd s
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ svn update -qr 2
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ cd ..
$ hg update 1
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository s diverged (local revision: 3, remote revision: 2)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
1+
$ cd s
$ svnversion
2
$ cd ..
Patrick Mezard
subrepo: handle svn tracked/unknown directory collisions...
r14050
Test case where subversion would fail to update the subrepo because there
are unknown directories being replaced by tracked ones (happens with rebase).
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ cd "$WCROOT/src"
Patrick Mezard
subrepo: handle svn tracked/unknown directory collisions...
r14050 $ mkdir dir
$ echo epsilon.py > dir/epsilon.py
$ svn add dir
A dir
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 A dir/epsilon.py (glob)
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ svn ci -qm 'Add dir/epsilon.py'
Patrick Mezard
subrepo: handle svn tracked/unknown directory collisions...
r14050 $ cd ../..
$ hg init rebaserepo
$ cd rebaserepo
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ svn co -r5 --quiet "$SVNREPOURL"/src s
$ echo "s = [svn] $SVNREPOURL/src" >> .hgsub
Patrick Mezard
subrepo: handle svn tracked/unknown directory collisions...
r14050 $ hg add .hgsub
$ hg ci -m addsub
$ echo a > a
Matt Harbison
subrepo: don't abort in add when non-hg subrepos are present (issue4513)...
r23963 $ hg add .
Patrick Mezard
subrepo: handle svn tracked/unknown directory collisions...
r14050 adding a
Matt Harbison
subrepo: don't abort in add when non-hg subrepos are present (issue4513)...
r23963 $ hg ci -m adda
Patrick Mezard
subrepo: handle svn tracked/unknown directory collisions...
r14050 $ hg up 0
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ svn up -qr6 s
Patrick Mezard
subrepo: handle svn tracked/unknown directory collisions...
r14050 $ hg ci -m updatesub
created new head
$ echo pyc > s/dir/epsilon.pyc
$ hg up 1
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 D *s/dir (glob)
Patrick Mezard
subrepo: handle svn tracked/unknown directory collisions...
r14050
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 Fetching external item into '*s/externals'* (glob)
Patrick Mezard
subrepo: handle svn tracked/unknown directory collisions...
r14050 Checked out external at revision 1.
Checked out revision 5.
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: change odd uses of 'if hghave' to #if
r16898 $ hg up -q 2
Augie Fackler
svn subrepos: work around checkout obstructions (issue2752)...
r14664
Modify one of the externals to point to a different path so we can
test having obstructions when switching branches on checkout:
$ hg checkout tip
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ echo "obstruct = [svn] $SVNREPOURL/externals" >> .hgsub
$ svn co -r5 --quiet "$SVNREPOURL"/externals obstruct
Matt Mackall
check-code: fix issues with finding patterns in unified tests, fix tests...
r15372 $ hg commit -m 'Start making obstructed working copy'
Augie Fackler
svn subrepos: work around checkout obstructions (issue2752)...
r14664 $ hg book other
$ hg co -r 'p1(tip)'
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Siddharth Agarwal
update: when deactivating a bookmark, print a message...
r21404 (leaving bookmark other)
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ echo "obstruct = [svn] $SVNREPOURL/src" >> .hgsub
$ svn co -r5 --quiet "$SVNREPOURL"/src obstruct
Augie Fackler
svn subrepos: work around checkout obstructions (issue2752)...
r14664 $ hg commit -m 'Other branch which will be obstructed'
created new head
Switching back to the head where we have another path mapped to the
same subrepo should work if the subrepo is clean.
$ hg co other
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 A *obstruct/other (glob)
Augie Fackler
svn subrepos: work around checkout obstructions (issue2752)...
r14664 Checked out revision 1.
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Stephen Lee
update: show message when a bookmark is activated by update...
r21503 (activating bookmark other)
Augie Fackler
svn subrepos: work around checkout obstructions (issue2752)...
r14664
This is surprising, but is also correct based on the current code:
$ echo "updating should (maybe) fail" > obstruct/other
$ hg co tip
Siddharth Agarwal
update: add error message for dirty non-linear update with no rev...
r19799 abort: uncommitted changes
(commit or update --clean to discard changes)
Augie Fackler
svn subrepos: work around checkout obstructions (issue2752)...
r14664 [255]
Eli Carter
subrepo: correct revision in svn checkout...
r14820
Point to a Subversion branch which has since been deleted and recreated
First, create that condition in the repository.
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ hg ci --subrepos -m cleanup | filter_svn_output
Eli Carter
subrepo: correct revision in svn checkout...
r14820 committing subrepository obstruct
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 Sending obstruct/other (glob)
Eli Carter
subrepo: correct revision in svn checkout...
r14820 Committed revision 7.
At revision 7.
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ svn mkdir -qm "baseline" $SVNREPOURL/trunk
$ svn copy -qm "initial branch" $SVNREPOURL/trunk $SVNREPOURL/branch
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ svn co --quiet "$SVNREPOURL"/branch tempwc
Eli Carter
subrepo: correct revision in svn checkout...
r14820 $ cd tempwc
$ echo "something old" > somethingold
$ svn add somethingold
A somethingold
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ svn ci -qm 'Something old'
$ svn rm -qm "remove branch" $SVNREPOURL/branch
$ svn copy -qm "recreate branch" $SVNREPOURL/trunk $SVNREPOURL/branch
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ svn up -q
Eli Carter
subrepo: correct revision in svn checkout...
r14820 $ echo "something new" > somethingnew
$ svn add somethingnew
A somethingnew
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ svn ci -qm 'Something new'
Eli Carter
subrepo: correct revision in svn checkout...
r14820 $ cd ..
$ rm -rf tempwc
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ svn co "$SVNREPOURL/branch"@10 recreated
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 A recreated/somethingold (glob)
Eli Carter
subrepo: correct revision in svn checkout...
r14820 Checked out revision 10.
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ echo "recreated = [svn] $SVNREPOURL/branch" >> .hgsub
Eli Carter
subrepo: correct revision in svn checkout...
r14820 $ hg ci -m addsub
$ cd recreated
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 $ svn up -q
Eli Carter
subrepo: correct revision in svn checkout...
r14820 $ cd ..
$ hg ci -m updatesub
$ hg up -r-2
Patrick Mezard
test-svn-subrepo: fix reference output for svn 1.7...
r15607 D *recreated/somethingnew (glob)
A *recreated/somethingold (glob)
Eli Carter
subrepo: correct revision in svn checkout...
r14820 Checked out revision 10.
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Siddharth Agarwal
update: when deactivating a bookmark, print a message...
r21404 (leaving bookmark other)
Mads Kiilerich
tests: don't use 'test -e'...
r15282 $ test -f recreated/somethingold
Eli Carter
subrepo: correct revision in svn checkout...
r14820
Patrick Mezard
archive: make it work with svn subrepos (issue3308)...
r16450 Test archive
Pierre-Yves David
progress: get the extremely verbose output out of default debug...
r25125 $ hg archive -S ../archive-all --debug --config progress.debug=true
Patrick Mezard
archive: make it work with svn subrepos (issue3308)...
r16450 archiving: 0/2 files (0.00%)
archiving: .hgsub 1/2 files (50.00%)
archiving: .hgsubstate 2/2 files (100.00%)
archiving (obstruct): 0/1 files (0.00%)
archiving (obstruct): 1/1 files (100.00%)
Mads Kiilerich
subrepos: process subrepos in sorted order...
r18364 archiving (recreated): 0/1 files (0.00%)
archiving (recreated): 1/1 files (100.00%)
Patrick Mezard
archive: make it work with svn subrepos (issue3308)...
r16450 archiving (s): 0/2 files (0.00%)
archiving (s): 1/2 files (50.00%)
archiving (s): 2/2 files (100.00%)
Patrick Mezard
subrepo: fix default implementation of forget() (issue3404)
r16527
Pierre-Yves David
progress: get the extremely verbose output out of default debug...
r25125 $ hg archive -S ../archive-exclude --debug --config progress.debug=true -X **old
Matt Harbison
subrepo: propagate matcher to subrepos when archiving...
r17108 archiving: 0/2 files (0.00%)
archiving: .hgsub 1/2 files (50.00%)
archiving: .hgsubstate 2/2 files (100.00%)
archiving (obstruct): 0/1 files (0.00%)
archiving (obstruct): 1/1 files (100.00%)
Mads Kiilerich
subrepos: process subrepos in sorted order...
r18364 archiving (recreated): 0 files
Matt Harbison
subrepo: propagate matcher to subrepos when archiving...
r17108 archiving (s): 0/2 files (0.00%)
archiving (s): 1/2 files (50.00%)
archiving (s): 2/2 files (100.00%)
$ find ../archive-exclude | sort
../archive-exclude
../archive-exclude/.hg_archival.txt
../archive-exclude/.hgsub
../archive-exclude/.hgsubstate
../archive-exclude/obstruct
../archive-exclude/obstruct/other
../archive-exclude/s
../archive-exclude/s/alpha
../archive-exclude/s/dir
../archive-exclude/s/dir/epsilon.py
Patrick Mezard
subrepo: fix default implementation of forget() (issue3404)
r16527 Test forgetting files, not implemented in svn subrepo, used to
traceback
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 #if no-windows
Patrick Mezard
subrepo: fix default implementation of forget() (issue3404)
r16527 $ hg forget 'notafile*'
notafile*: No such file or directory
[1]
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 #else
$ hg forget 'notafile'
notafile: * (glob)
[1]
#endif
Patrick Mezard
subrepo/svn: fix checked out rev number retrieval (issue2968)...
r16554
Test a subrepo referencing a just moved svn path. Last commit rev will
be different from the revision, and the path will be different as
well.
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ cd "$WCROOT"
Patrick Mezard
subrepo/svn: fix checked out rev number retrieval (issue2968)...
r16554 $ svn up > /dev/null
$ mkdir trunk/subdir branches
$ echo a > trunk/subdir/a
$ svn add trunk/subdir branches
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 A trunk/subdir (glob)
A trunk/subdir/a (glob)
Patrick Mezard
subrepo/svn: fix checked out rev number retrieval (issue2968)...
r16554 A branches
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ svn ci -qm addsubdir
$ svn cp -qm branchtrunk $SVNREPOURL/trunk $SVNREPOURL/branches/somebranch
Patrick Mezard
subrepo/svn: fix checked out rev number retrieval (issue2968)...
r16554 $ cd ..
$ hg init repo2
$ cd repo2
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ svn co $SVNREPOURL/branches/somebranch/subdir
Eduard-Cristian Stefan
test-subrepo-svn.t: partially adapt for Windows...
r17032 A subdir/a (glob)
Patrick Mezard
subrepo/svn: fix checked out rev number retrieval (issue2968)...
r16554 Checked out revision 15.
Mads Kiilerich
tests: cleanup of svn url handling...
r17033 $ echo "subdir = [svn] $SVNREPOURL/branches/somebranch/subdir" > .hgsub
Patrick Mezard
subrepo/svn: fix checked out rev number retrieval (issue2968)...
r16554 $ hg add .hgsub
$ hg ci -m addsub
$ hg up null
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg up
A *subdir/a (glob)
Checked out revision 15.
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..
FUJIWARA Katsunori
subrepo: make "_sanitize()" work...
r21564
Test sanitizing ".hg/hgrc" in subrepo
$ cd sub/t
$ hg update -q -C tip
$ cd s
$ mkdir .hg
$ echo '.hg/hgrc in svn repo' > .hg/hgrc
$ mkdir -p sub/.hg
$ echo 'sub/.hg/hgrc in svn repo' > sub/.hg/hgrc
$ svn add .hg sub
A .hg
A .hg/hgrc (glob)
A sub
A sub/.hg (glob)
A sub/.hg/hgrc (glob)
Yuya Nishihara
tests: suppress verbose output of svn transaction...
r26374 $ svn ci -qm 'add .hg/hgrc to be sanitized at hg update'
FUJIWARA Katsunori
subrepo: make "_sanitize()" work...
r21564 $ svn up -q
$ cd ..
$ hg commit -S -m 'commit with svn revision including .hg/hgrc'
$ grep ' s$' .hgsubstate
16 s
$ cd ..
FUJIWARA Katsunori
subrepo: make "_sanitize()" take absolute path to the root of subrepo...
r21566 $ hg -R tc pull -u -q 2>&1 | sort
warning: removing potentially hostile 'hgrc' in '$TESTTMP/sub/tc/s/.hg' (glob)
warning: removing potentially hostile 'hgrc' in '$TESTTMP/sub/tc/s/sub/.hg' (glob)
FUJIWARA Katsunori
subrepo: make "_sanitize()" work...
r21564 $ cd tc
$ grep ' s$' .hgsubstate
16 s
Danek Duvall
tests: cat error messages are different on Solaris
r21930 $ test -f s/.hg/hgrc
FUJIWARA Katsunori
subrepo: make "_sanitize()" work...
r21564 [1]
Danek Duvall
tests: cat error messages are different on Solaris
r21930 $ test -f s/sub/.hg/hgrc
FUJIWARA Katsunori
subrepo: make "_sanitize()" work...
r21564 [1]
FUJIWARA Katsunori
subrepo: avoid sanitizing ".hg/hgrc" in meta data area for non-hg subrepos...
r21567 Test that sanitizing is omitted in meta data area:
$ mkdir s/.svn/.hg
$ echo '.hg/hgrc in svn metadata area' > s/.svn/.hg/hgrc
$ hg update -q -C '.^1'
FUJIWARA Katsunori
subrepo: make "_sanitize()" work...
r21564 $ cd ../..
Sean Farley
subrepo: add tests for svn rogue ssh urls (SEC)...
r33730
SEC: test for ssh exploit
$ hg init ssh-vuln
$ cd ssh-vuln
$ echo "s = [svn]$SVNREPOURL/src" >> .hgsub
$ svn co --quiet "$SVNREPOURL"/src s
$ hg add .hgsub
$ hg ci -m1
$ echo "s = [svn]svn+ssh://-oProxyCommand=touch%20owned%20nested" > .hgsub
$ hg ci -m2
$ cd ..
$ hg clone ssh-vuln ssh-vuln-clone
updating to branch default
abort: potentially unsafe url: 'svn+ssh://-oProxyCommand=touch owned nested' (in subrepository "s")
[255]
also check that a percent encoded '-' (%2D) doesn't work
$ cd ssh-vuln
$ echo "s = [svn]svn+ssh://%2DoProxyCommand=touch%20owned%20nested" > .hgsub
$ hg ci -m3
$ cd ..
$ rm -r ssh-vuln-clone
$ hg clone ssh-vuln ssh-vuln-clone
updating to branch default
abort: potentially unsafe url: 'svn+ssh://-oProxyCommand=touch owned nested' (in subrepository "s")
[255]
also check that hiding the attack in the username doesn't work:
$ cd ssh-vuln
$ echo "s = [svn]svn+ssh://%2DoProxyCommand=touch%20owned%20foo@example.com/nested" > .hgsub
$ hg ci -m3
$ cd ..
$ rm -r ssh-vuln-clone
$ hg clone ssh-vuln ssh-vuln-clone
updating to branch default
abort: potentially unsafe url: 'svn+ssh://-oProxyCommand=touch owned foo@example.com/nested' (in subrepository "s")
[255]