diff --git a/mpcdf_common.py b/mpcdf_common.py
index cf66b7d7d0b5c3243bc81fda86cdd8d87f4ef9d0..5e5f94f13f6eea9a583a4284d6903a3b12b94269 100644
--- a/mpcdf_common.py
+++ b/mpcdf_common.py
@@ -887,6 +887,10 @@ Macros:
 
     new_prjconf = "".join(prjconf_head) + "\n".join(prjconf_ours) + "".join(prjconf_tail)
 
+    old_prj_root = project_meta(api_url, project)
+    sort_repos(old_prj_root)
+    old_prj = ElementTree.tostring(old_prj_root, encoding=osc.core.ET_ENCODING)
+
     if diff:
         def stringdiff(s1, label1, s2, label2):
             import os
@@ -906,11 +910,6 @@ Macros:
             os.unlink(new.name)
 
         stringdiff("".join(orig_prjconf), "old-prjconf", new_prjconf, "new-prjconf")
-
-        old_prj_root = project_meta(api_url, project)
-        sort_repos(old_prj_root)
-        old_prj = ElementTree.tostring(old_prj_root, encoding=osc.core.ET_ENCODING)
-
         stringdiff(old_prj + "\n", "old-prj-meta", new_prj + "\n", "new-prj-meta")
 
     if dry_run:
@@ -931,8 +930,11 @@ Macros:
             mpcdf_enable_repositories_for_all_packages(api_url, project)
 
         # Update repositories
-        print("Updating prj meta")
-        osc.core.edit_meta("prj", project, data=new_prj, force=True, apiurl=api_url)
+        if new_prj == old_prj:
+            print("prj meta unchanged")
+        else:
+            print("Updating prj meta")
+            osc.core.edit_meta("prj", project, data=new_prj, force=True, apiurl=api_url)
 
 
 def mpcdf_enable_repositories_for_all_packages(api_url, project, ignore_repos=()):