From a6e6feac3e71c0432e5ce54a8877d33f5e9a8056 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Mon, 7 Nov 2016 18:11:07 -0300 Subject: [PATCH] Add a way to skip updating a particular repo When entering a shell to fix the rebasing you can just `exit 255` and we concider it means 'skip update'. Also support entering shell on windows --- git-update | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/git-update b/git-update index a53d678..7310564 100755 --- a/git-update +++ b/git-update @@ -52,12 +52,20 @@ def update_repo(repo_name, repo_dir, revision, no_interaction, recurse_i=0): if not no_interaction: print("=====================================" "\n%sEntering a shell in %s to fix that" - " just `exit` once done`" + " just `exit 0` once done` or `exit 255`" + " to skip update for that repository" "\n=====================================" % ( - out, os.getcwd())) + out, repo_dir)) try: - subprocess.check_call(os.environ.get("SHELL", "/bin/sh"), - cwd=repo_dir) + if os.name is 'nt': + shell = os.environ.get("COMSPEC", r"C:\WINDOWS\system32\cmd.exe") + else: + shell = os.environ.get("SHELL", os.path.realpath("/bin/sh")) + subprocess.check_call(shell, cwd=repo_dir) + except subprocess.CalledProcessError as e: + if e.returncode == 255: + print("Skipping '%s' update" % repo_name) + return True except: # Result of subshell does not really matter pass -- 2.7.4