diff tests/test-subrepo-deep-nested-change @ 11110:22f5ad0b5857

subrepo: dirtiness checks should iterate over subrepos
author Edouard Gomez <ed.gomez@free.fr>
date Sat, 01 May 2010 23:05:21 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-subrepo-deep-nested-change	Sat May 01 23:05:21 2010 +0200
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+echo % Preparing the subrepository 'sub2'
+hg init sub2
+echo sub2 > sub2/sub2
+hg add -R sub2
+hg commit -R sub2 -m "sub2 import"
+
+echo % Preparing the 'sub1' repo which depends on the subrepo 'sub2'
+hg init sub1
+echo sub1 > sub1/sub1
+echo "sub2 = ../sub2" > sub1/.hgsub
+hg clone sub2 sub1/sub2 | sed 's/ .*sub/ ...sub/g'
+hg add -R sub1
+hg commit -R sub1 -m "sub1 import"
+
+echo % Preparing the 'main' repo which depends on the subrepo 'sub1'
+hg init main
+echo main > main/main
+echo "sub1 = ../sub1" > main/.hgsub
+hg clone sub1 main/sub1  | sed 's/ .*sub/ ...sub/g'
+hg add -R main
+hg commit -R main -m "main import"
+
+echo % Cleaning both repositories, just as a clone -U
+hg up -C -R sub2 null
+hg up -C -R sub1 null
+hg up -C -R main null
+rm -rf main/sub1
+rm -rf sub1/sub2
+
+echo % Clone main
+hg clone main cloned | sed 's/ .*sub/ ...sub/g' 
+
+echo % Checking cloned repo ids
+printf "cloned " ; hg id -R cloned
+printf "cloned/sub1 " ; hg id -R cloned/sub1
+printf "cloned/sub1/sub2 " ; hg id -R cloned/sub1/sub2
+
+echo % debugsub output for main and sub1
+hg debugsub -R cloned
+hg debugsub -R cloned/sub1
+
+echo % Modifying deeply nested 'sub2'
+echo modified > cloned/sub1/sub2/sub2
+hg commit -m "deep nested modif should trigger a commit" -R cloned
+
+echo % Checking modified node ids
+printf "cloned " ; hg id -R cloned
+printf "cloned/sub1 " ; hg id -R cloned/sub1
+printf "cloned/sub1/sub2 " ; hg id -R cloned/sub1/sub2
+
+echo % debugsub output for main and sub1
+hg debugsub -R cloned
+hg debugsub -R cloned/sub1
+
+exit 0