tests/test-subrepo-git.t
changeset 21585 652e07debf10
parent 21401 2c364f7801c8
parent 21567 5900bc09e684
child 21751 c5699c2d690b
--- 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 ..