--- a/tests/test-subrepo-git.t Sat Mar 08 19:02:39 2014 +1100
+++ b/tests/test-subrepo-git.t Tue May 27 17:41:20 2014 -0700
@@ -566,3 +566,105 @@
#endif
$ cd ..
+
+Test sanitizing ".hg/hgrc" in subrepo
+
+ $ cd t
+ $ hg tip -q
+ 7:af6d2edbb0d3
+ $ hg update -q -C af6d2edbb0d3
+ $ cd s
+ $ git checkout -q -b sanitize-test
+ $ mkdir .hg
+ $ echo '.hg/hgrc in git repo' > .hg/hgrc
+ $ mkdir -p sub/.hg
+ $ echo 'sub/.hg/hgrc in git repo' > sub/.hg/hgrc
+ $ git add .hg sub
+ $ git commit -qm 'add .hg/hgrc to be sanitized at hg update'
+ $ git push -q origin sanitize-test
+ $ cd ..
+ $ grep ' s$' .hgsubstate
+ 32a343883b74769118bb1d3b4b1fbf9156f4dddc s
+ $ hg commit -qm 'commit with git revision including .hg/hgrc'
+ $ hg parents -q
+ 8:3473d20bddcf
+ $ grep ' s$' .hgsubstate
+ c4069473b459cf27fd4d7c2f50c4346b4e936599 s
+ $ cd ..
+
+ $ hg -R tc pull -q
+ $ hg -R tc update -q -C 3473d20bddcf 2>&1 | sort
+ warning: removing potentially hostile 'hgrc' in '$TESTTMP/tc/s/.hg' (glob)
+ warning: removing potentially hostile 'hgrc' in '$TESTTMP/tc/s/sub/.hg' (glob)
+ $ cd tc
+ $ hg parents -q
+ 8:3473d20bddcf
+ $ grep ' s$' .hgsubstate
+ c4069473b459cf27fd4d7c2f50c4346b4e936599 s
+ $ cat s/.hg/hgrc
+ cat: s/.hg/hgrc: No such file or directory
+ [1]
+ $ cat s/sub/.hg/hgrc
+ cat: s/sub/.hg/hgrc: No such file or directory
+ [1]
+ $ cd ..
+
+additional test for "git merge --ff" route:
+
+ $ cd t
+ $ hg tip -q
+ 8:3473d20bddcf
+ $ hg update -q -C af6d2edbb0d3
+ $ cd s
+ $ git checkout -q testing
+ $ mkdir .hg
+ $ echo '.hg/hgrc in git repo' > .hg/hgrc
+ $ mkdir -p sub/.hg
+ $ echo 'sub/.hg/hgrc in git repo' > sub/.hg/hgrc
+ $ git add .hg sub
+ $ git commit -qm 'add .hg/hgrc to be sanitized at hg update (git merge --ff)'
+ $ git push -q origin testing
+ $ cd ..
+ $ grep ' s$' .hgsubstate
+ 32a343883b74769118bb1d3b4b1fbf9156f4dddc s
+ $ hg commit -qm 'commit with git revision including .hg/hgrc'
+ $ hg parents -q
+ 9:ed23f7fe024e
+ $ grep ' s$' .hgsubstate
+ f262643c1077219fbd3858d54e78ef050ef84fbf s
+ $ cd ..
+
+ $ cd tc
+ $ hg update -q -C af6d2edbb0d3
+ $ cat s/.hg/hgrc
+ cat: s/.hg/hgrc: No such file or directory
+ [1]
+ $ cat s/sub/.hg/hgrc
+ cat: s/sub/.hg/hgrc: No such file or directory
+ [1]
+ $ cd ..
+ $ hg -R tc pull -q
+ $ hg -R tc update -q -C ed23f7fe024e 2>&1 | sort
+ warning: removing potentially hostile 'hgrc' in '$TESTTMP/tc/s/.hg' (glob)
+ warning: removing potentially hostile 'hgrc' in '$TESTTMP/tc/s/sub/.hg' (glob)
+ $ cd tc
+ $ hg parents -q
+ 9:ed23f7fe024e
+ $ grep ' s$' .hgsubstate
+ f262643c1077219fbd3858d54e78ef050ef84fbf s
+ $ cat s/.hg/hgrc
+ cat: s/.hg/hgrc: No such file or directory
+ [1]
+ $ cat s/sub/.hg/hgrc
+ cat: s/sub/.hg/hgrc: No such file or directory
+ [1]
+
+Test that sanitizing is omitted in meta data area:
+
+ $ mkdir s/.git/.hg
+ $ echo '.hg/hgrc in git metadata area' > s/.git/.hg/hgrc
+ $ hg update -q -C af6d2edbb0d3
+ checking out detached HEAD in subrepo s
+ check out a git branch if you intend to make changes
+
+ $ cd ..