|
|
@@ -5,6 +5,7 @@
|
|
|
# Test in a directory next to this script.
|
|
|
get_filename_component(TOP "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
|
|
set(TOP "${TOP}/@CTestUpdateGIT_DIR@")
|
|
|
+set(UPDATE_EXTRA Updated{module})
|
|
|
|
|
|
# Include code common to all update tests.
|
|
|
include("@CMAKE_CURRENT_SOURCE_DIR@/CTestUpdateCommon.cmake")
|
|
|
@@ -42,6 +43,35 @@ run_child(
|
|
|
file(REMOVE_RECURSE ${TOP}/repo.git/hooks)
|
|
|
set(REPO file://${TOP}/repo.git)
|
|
|
|
|
|
+# Create submodule repository.
|
|
|
+message("Creating submodule...")
|
|
|
+file(MAKE_DIRECTORY ${TOP}/module.git)
|
|
|
+run_child(
|
|
|
+ WORKING_DIRECTORY ${TOP}/module.git
|
|
|
+ COMMAND ${GIT} --bare init
|
|
|
+ )
|
|
|
+file(REMOVE_RECURSE ${TOP}/module.git/hooks)
|
|
|
+set(MOD_REPO file://${TOP}/module.git)
|
|
|
+create_content(module)
|
|
|
+run_child(WORKING_DIRECTORY ${TOP}/module
|
|
|
+ COMMAND ${GIT} init
|
|
|
+ )
|
|
|
+file(REMOVE_RECURSE ${TOP}/module/.git/hooks)
|
|
|
+file(APPEND ${TOP}/module/.git/config "
|
|
|
+[remote \"origin\"]
|
|
|
+\turl = ${MOD_REPO}
|
|
|
+\tfetch = +refs/heads/*:refs/remotes/origin/*
|
|
|
+${AUTHOR_CONFIG}")
|
|
|
+run_child(WORKING_DIRECTORY ${TOP}/module
|
|
|
+ COMMAND ${GIT} add .
|
|
|
+ )
|
|
|
+run_child(WORKING_DIRECTORY ${TOP}/module
|
|
|
+ COMMAND ${GIT} commit -m "Initial content"
|
|
|
+ )
|
|
|
+run_child(WORKING_DIRECTORY ${TOP}/module
|
|
|
+ COMMAND ${GIT} push origin master:refs/heads/master
|
|
|
+ )
|
|
|
+
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Import initial content into the repository.
|
|
|
message("Importing content...")
|
|
|
@@ -60,6 +90,9 @@ ${AUTHOR_CONFIG}")
|
|
|
run_child(WORKING_DIRECTORY ${TOP}/import
|
|
|
COMMAND ${GIT} add .
|
|
|
)
|
|
|
+run_child(WORKING_DIRECTORY ${TOP}/import
|
|
|
+ COMMAND ${GIT} submodule add ${MOD_REPO} module
|
|
|
+ )
|
|
|
run_child(WORKING_DIRECTORY ${TOP}/import
|
|
|
COMMAND ${GIT} commit -m "Initial content"
|
|
|
)
|
|
|
@@ -67,6 +100,19 @@ run_child(WORKING_DIRECTORY ${TOP}/import
|
|
|
COMMAND ${GIT} push origin master:refs/heads/master
|
|
|
)
|
|
|
|
|
|
+#-----------------------------------------------------------------------------
|
|
|
+# Modify the submodule.
|
|
|
+change_content(module)
|
|
|
+run_child(WORKING_DIRECTORY ${TOP}/module
|
|
|
+ COMMAND ${GIT} add -u
|
|
|
+ )
|
|
|
+run_child(WORKING_DIRECTORY ${TOP}/module
|
|
|
+ COMMAND ${GIT} commit -m "Changed content"
|
|
|
+ )
|
|
|
+run_child(WORKING_DIRECTORY ${TOP}/module
|
|
|
+ COMMAND ${GIT} push origin master:refs/heads/master
|
|
|
+ )
|
|
|
+
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Create a working tree.
|
|
|
message("Checking out revision 1...")
|
|
|
@@ -76,6 +122,14 @@ run_child(
|
|
|
)
|
|
|
file(REMOVE_RECURSE ${TOP}/user-source/.git/hooks)
|
|
|
file(APPEND ${TOP}/user-source/.git/config "${AUTHOR_CONFIG}")
|
|
|
+run_child(
|
|
|
+ WORKING_DIRECTORY ${TOP}/user-source
|
|
|
+ COMMAND ${GIT} submodule init
|
|
|
+ )
|
|
|
+run_child(
|
|
|
+ WORKING_DIRECTORY ${TOP}/user-source
|
|
|
+ COMMAND ${GIT} submodule update
|
|
|
+ )
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Make changes in the working tree.
|
|
|
@@ -95,6 +149,9 @@ run_child(
|
|
|
WORKING_DIRECTORY ${TOP}/user-source
|
|
|
COMMAND ${GIT} rm ${files_removed}
|
|
|
)
|
|
|
+run_child(WORKING_DIRECTORY ${TOP}/user-source/module
|
|
|
+ COMMAND ${GIT} checkout master
|
|
|
+ )
|
|
|
run_child(
|
|
|
WORKING_DIRECTORY ${TOP}/user-source
|
|
|
COMMAND ${GIT} add -u
|
|
|
@@ -140,6 +197,10 @@ run_child(
|
|
|
WORKING_DIRECTORY ${TOP}/user-source
|
|
|
COMMAND ${GIT} reset --hard master~2
|
|
|
)
|
|
|
+run_child(
|
|
|
+ WORKING_DIRECTORY ${TOP}/user-source
|
|
|
+ COMMAND ${GIT} submodule update
|
|
|
+ )
|
|
|
|
|
|
# Make sure pull does not try to rebase (which does not work with
|
|
|
# modified files) even if ~/.gitconfig sets "branch.master.rebase".
|
|
|
@@ -181,6 +242,14 @@ execute_process(
|
|
|
WORKING_DIRECTORY \"${TOP}/dash-source\"
|
|
|
COMMAND \"${GIT}\" reset --hard master~2
|
|
|
)
|
|
|
+execute_process(
|
|
|
+ WORKING_DIRECTORY \"${TOP}/dash-source\"
|
|
|
+ COMMAND \"${GIT}\" submodule init
|
|
|
+ )
|
|
|
+execute_process(
|
|
|
+ WORKING_DIRECTORY \"${TOP}/dash-source\"
|
|
|
+ COMMAND \"${GIT}\" submodule update
|
|
|
+ )
|
|
|
")
|
|
|
|
|
|
# Run the dashboard script with CTest.
|