diff --git a/moogli b/moogli
index 317b31d00415cc933560531a34ae6673d9ecaab2..0792015917f428524eb8c14ac6fc61441dafa68f 160000
--- a/moogli
+++ b/moogli
@@ -1 +1 @@
-Subproject commit 317b31d00415cc933560531a34ae6673d9ecaab2
+Subproject commit 0792015917f428524eb8c14ac6fc61441dafa68f
diff --git a/moose-core b/moose-core
index 269789523daae38761e6024bcbfe72dcb2cfc0c7..11742ff23320c35ec8ae010df91323d5d3d09791 160000
--- a/moose-core
+++ b/moose-core
@@ -1 +1 @@
-Subproject commit 269789523daae38761e6024bcbfe72dcb2cfc0c7
+Subproject commit 11742ff23320c35ec8ae010df91323d5d3d09791
diff --git a/moose-examples b/moose-examples
index 00942d24fe21089d2aab4f5494d75d5126e5eb57..c0235629bf82a1d841f293027c2105190217d4b7 160000
--- a/moose-examples
+++ b/moose-examples
@@ -1 +1 @@
-Subproject commit 00942d24fe21089d2aab4f5494d75d5126e5eb57
+Subproject commit c0235629bf82a1d841f293027c2105190217d4b7
diff --git a/moose-gui b/moose-gui
index c7af8b3d9feacca1605f7f99b894a036b93ca2ee..1da480fef34843149a7f4b8e96b7ca898aa45a93 160000
--- a/moose-gui
+++ b/moose-gui
@@ -1 +1 @@
-Subproject commit c7af8b3d9feacca1605f7f99b894a036b93ca2ee
+Subproject commit 1da480fef34843149a7f4b8e96b7ca898aa45a93
diff --git a/update-repository b/update-repository
new file mode 100755
index 0000000000000000000000000000000000000000..3447029a891fb03b0c8c9c2d6e9d0f8530632e63
--- /dev/null
+++ b/update-repository
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# This script updates the repository and its subrepositories, recursively.
+
+git submodule update --init
+git submodule foreach '[ "$path" = "moogli" ] && branch=geometry || branch=master; git pull origin $branch; git checkout $branch; git pull'