diff --git a/mpcdf_common.py b/mpcdf_common.py
index 45210ba4f4e95d7b0d22f4beab02485b0ddac2af..9d02a6ba171b3b44e3b918c6589d15dceb2f9707 100644
--- a/mpcdf_common.py
+++ b/mpcdf_common.py
@@ -358,9 +358,8 @@ def package_sort_key(string):
     return (name,) + tuple(map(int, version))
 
 
-def mpcdf_enable_repositories(api_url, project, package, verbose=False, ignore_repos=()):
+def mpcdf_enable_repositories(api_url, project, package, verbose=False, dry_run=False, ignore_repos=()):
     from itertools import product
-    import sys
 
     pkg_meta = osc.core.show_package_meta(api_url, project, package)
     root = ElementTree.fromstringlist(pkg_meta)
@@ -494,7 +493,12 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, ignore_r
     new_pkg_meta = ElementTree.tostring(root, encoding=osc.core.ET_ENCODING)
     if pkg_meta != new_pkg_meta:
         print("Updating repositories for", package)
-        osc.core.edit_meta("pkg", (project, package), data=new_pkg_meta)
+        if dry_run:
+            print("osc meta pkg {0} {1} -F - <<EOF\n{2}\nEOF\n".format(project, package, new_pkg_meta))
+        else:
+            osc.core.edit_meta("pkg", (project, package), data=new_pkg_meta)
+    elif dry_run:
+        print("Would not do anything, package meta would be unchanged")
 
     return True
 
diff --git a/mpcdf_enable_repositories.py b/mpcdf_enable_repositories.py
index 0a0ee3ea843a64ef22e7d37ad28c97a95b0c3b4d..3079e93697ae0e37351d9190e24615fd5ca7cf81 100644
--- a/mpcdf_enable_repositories.py
+++ b/mpcdf_enable_repositories.py
@@ -10,6 +10,8 @@ import osc.core
 import osc.cmdln
 
 
+@osc.cmdln.option('-n', '--dry-run', action="store_true",
+                  help="Do not actually perform any changes but print what would be stored")
 @osc.cmdln.option('--recreate', action="store_true",
                   help="Re-create the set of enabled repositories from the stored attributes on the server")
 @osc.cmdln.option('--compiler-modules', nargs=1,
@@ -89,8 +91,8 @@ def do_mpcdf_enable_repositories(self, subcmd, opts, *args):
         set_or_remove(opts.pgi_modules, "MPCDF:pgi_modules")
 
     if opts.recreate or opts.set or opts.disable:
-        mpcdf_common.mpcdf_enable_repositories(api_url, project, package, verbose=True)
-        if project == "software" and opts.set != "system":
+        mpcdf_common.mpcdf_enable_repositories(api_url, project, package, verbose=True, dry_run=opts.dry_run)
+        if project == "software" and opts.set != "system" and not opts.dry_run:
             mpcdf_common.sync_projects(api_url, package, verbose=True)
 
     elif (opts.compiler_modules or opts.mpi_modules or opts.cuda_modules):