[PATCH] D64893: Ask confirmation when `git llvm push` will push multiple commits

Mehdi AMINI via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 17 15:52:02 PDT 2019


mehdi_amini updated this revision to Diff 210446.
mehdi_amini added a comment.

Fix python 2/3 compatibility


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D64893/new/

https://reviews.llvm.org/D64893

Files:
  llvm/utils/git-svn/git-llvm


Index: llvm/utils/git-svn/git-llvm
===================================================================
--- llvm/utils/git-svn/git-llvm
+++ llvm/utils/git-svn/git-llvm
@@ -26,6 +26,11 @@
 import time
 assert sys.version_info >= (2, 7)
 
+try:
+    exec("import __builtin__")  # To avoid IDE's grammar check
+except ImportError:
+    import builtins
+
 try:
     dict.iteritems
 except AttributeError:
@@ -99,6 +104,21 @@
     sys.exit(1)
 
 
+def ask_confirm(prompt):
+    # Python 2/3 compatibility
+    try:
+        input = eval("__builtin__.raw_input")
+    except NameError:
+        input = builtins.input
+
+    while True:
+        query = input('%s (y/n): ' % (prompt))
+        if query == '' or not query[0].lower() in ['y','n']:
+           print('Expect y or n!')
+           continue
+        return query[0].lower() == 'y'
+
+
 def split_first_path_component(d):
     # Assuming we have a git path, it'll use slashes even on windows...I hope.
     if '/' in d:
@@ -427,6 +447,12 @@
          's' if len(revs) != 1 else '',
          '\n'.join('  ' + git('show', '--oneline', '--quiet', c)
                    for c in revs)))
+
+    # Ask confirmation if multiple commits are about to be pushed
+    if len(revs) != 1:
+        if not ask_confirm("Are you sure?"):
+            die("abort")
+
     for r in revs:
         clean_svn(svn_root)
         svn_push_one_rev(svn_root, r, git_to_svn_mapping, dry_run)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D64893.210446.patch
Type: text/x-patch
Size: 1424 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190717/3e251b82/attachment.bin>


More information about the llvm-commits mailing list