From 47c1a63a07ebd67efac00ca9e0d877633aea5881 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Mon, 2 Mar 2009 18:24:23 -0800 Subject: [PATCH] Add 'repo version' to describe what code we are running I meant to have this in here, so clients can more easily report what version of repo they are running. Signed-off-by: Shawn O. Pearce --- main.py | 10 ++++++++++ subcmds/version.py | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 subcmds/version.py diff --git a/main.py b/main.py index f8fcfe2..db4fa0f 100755 --- a/main.py +++ b/main.py @@ -46,6 +46,9 @@ global_options.add_option('-p', '--paginate', global_options.add_option('--no-pager', dest='no_pager', action='store_true', help='disable the pager') +global_options.add_option('--version', + dest='show_version', action='store_true', + help='display this version of repo') class _Repo(object): def __init__(self, repodir): @@ -69,6 +72,13 @@ class _Repo(object): argv = [] gopts, gargs = global_options.parse_args(glob) + if gopts.show_version: + if name == 'help': + name = 'version' + else: + print >>sys.stderr, 'fatal: invalid usage of --version' + sys.exit(1) + try: cmd = self.commands[name] except KeyError: diff --git a/subcmds/version.py b/subcmds/version.py new file mode 100644 index 0000000..4f19a0c --- /dev/null +++ b/subcmds/version.py @@ -0,0 +1,35 @@ +# +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +from command import Command +from git_command import git +from project import HEAD + +class Version(Command): + common = False + helpSummary = "Display the version of repo" + helpUsage = """ +%prog +""" + + def Execute(self, opt, args): + rp = self.manifest.repoProject + rem = rp.GetRemote(rp.remote.name) + + print 'repo version %s' % rp.work_git.describe(HEAD) + print ' (from %s)' % rem.url + print git.version().strip() + print 'Python %s' % sys.version