summaryrefslogtreecommitdiff
path: root/utils/git-svn
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2017-05-23 21:50:40 +0000
committerRui Ueyama <ruiu@google.com>2017-05-23 21:50:40 +0000
commit30395dd637604295378fbbd43dbeb66c0334797a (patch)
tree33e003fa4efbf9c1c6119bb07431b24456657954 /utils/git-svn
parent50bd917fab8bca0610fafff5d6324f9f465c2691 (diff)
[git-llvm] Check if svn is installed.
The error message that git-llvm script prints out when svn is missing is very cryptic. I spent a fair amount of time to find what was wrong with my environment. It looks like many newcomers also exprienced a hard time to submit their first patches due to this error. This patch adds a more user-friendly error message. Differential Revision: https://reviews.llvm.org/D33458 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303696 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/git-svn')
-rwxr-xr-xutils/git-svn/git-llvm8
1 files changed, 8 insertions, 0 deletions
diff --git a/utils/git-svn/git-llvm b/utils/git-svn/git-llvm
index 9309889f30d..26f8f4da95b 100755
--- a/utils/git-svn/git-llvm
+++ b/utils/git-svn/git-llvm
@@ -133,6 +133,11 @@ def svn(cwd, *cmd, **kwargs):
return shell(['svn'] + list(cmd), cwd=cwd, stdin=kwargs.get('stdin', None),
ignore_errors=kwargs.get('ignore_errors', None))
+def program_exists(cmd):
+ for path in os.environ["PATH"].split(os.pathsep):
+ if os.access(os.path.join(path, cmd), os.X_OK):
+ return True
+ return False
def get_default_rev_range():
# Get the branch tracked by the current branch, as set by
@@ -309,6 +314,9 @@ def cmd_push(args):
if __name__ == '__main__':
+ if not program_exists('svn'):
+ die('error: git-llvm needs svn command, but svn is not installed.')
+
argv = sys.argv[1:]
p = argparse.ArgumentParser(
prog='git llvm', formatter_class=argparse.RawDescriptionHelpFormatter,