diff --git a/mpcdf_sync_projects.py b/mpcdf_sync_projects.py
index 6d36b6208c46b5603c02e73522b1fe8d7cb80e65..16adc5f93f980b6bdf7d192b59afb9d46908259a 100644
--- a/mpcdf_sync_projects.py
+++ b/mpcdf_sync_projects.py
@@ -9,6 +9,8 @@ import osc.core
 import osc.cmdln
 
 
+@osc.cmdln.option('-a', '--all', action="store_true",
+                  help="Update all packages in the target repository, not only new ones")
 def do_mpcdf_sync_projects(self, subcmd, opts, *args):
     """${cmd_name}: Push all packages from a project to another
 
@@ -35,12 +37,18 @@ def do_mpcdf_sync_projects(self, subcmd, opts, *args):
         raise osc.oscerr.WrongArgs("Too many arguments")
 
     api_url = self.get_api_url()
+    to_packages = osc.core.meta_get_packagelist(api_url, to_project)
 
     if package is None:
         from_packages = osc.core.meta_get_packagelist(api_url, from_project)
+        if not opts.all:
+            from_packages = list(sorted(set(from_packages) - set(to_packages)))
+
+    elif opts.all:
+        raise osc.oscerr.WrongArgs('Cannot specify `--all` and PACKAGE')
+
     else:
         from_packages = [package]
-    to_packages = osc.core.meta_get_packagelist(api_url, to_project)
 
     project_attributes = ["MPCDF:compiler_modules", "MPCDF:cuda_modules", "MPCDF:mpi_modules"]
     package_attributes = ["MPCDF:enable_repositories"] + project_attributes
@@ -72,7 +80,7 @@ def do_mpcdf_sync_projects(self, subcmd, opts, *args):
                 continue
             mpcdf_common.set_attribute(api_url, to_project, orig_package, attr)
 
-    if package is None:
+    if package is None and opts.all:
         # Check if distribution is already set in to_project
         to_prj_meta = mpcdf_common.project_meta(api_url, to_project)
         sys_repo = to_prj_meta.find('./repository[@name="System"]')
@@ -84,5 +92,6 @@ def do_mpcdf_sync_projects(self, subcmd, opts, *args):
         print("Creating repository configuration")
         mpcdf_common.mpcdf_setup_repositories(api_url, to_project, distribution)
     else:
-        if not mpcdf_common.mpcdf_enable_repositories(api_url, to_project, package):
-            print("ATTENTION: Not changing unmanaged package {0}".format(package))
+        for orig_package in from_packages:
+            if not mpcdf_common.mpcdf_enable_repositories(api_url, to_project, orig_package):
+                print("ATTENTION: Not changing unmanaged package {0}".format(orig_package))