Commit Diff


commit - c1738f5fe1cfa94187835cee4ff375e53001657f
commit + e7fbfff5717424bcc4d13092f02bb9684f22ebbb
blob - f95b9f261153cd7fe558ac18c14ddd56b29492f8
blob + 770b09cf59c2dde0ff70a8d1d119233f78dfe89e
--- dulwich/cli.py
+++ dulwich/cli.py
@@ -561,10 +561,15 @@ class cmd_push(Command):
 
     def run(self, argv):
         parser = argparse.ArgumentParser()
+        parser.add_argument('-f', '--force', action='store_true', help='Force')
         parser.add_argument('to_location', type=str)
         parser.add_argument('refspec', type=str, nargs='*')
         args = parser.parse_args(argv)
-        porcelain.push('.', args.to_location, args.refspec or None)
+        try:
+            porcelain.push('.', args.to_location, args.refspec or None, force=args.force)
+        except porcelain.DivergedBranches:
+            sys.stderr.write('Diverged branches; specify --force to override')
+            return 1
 
 
 class cmd_remote_add(Command):