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 <sop@google.com>
This commit is contained in:
Shawn O. Pearce 2009-03-02 18:24:23 -08:00
parent 559b846b17
commit 47c1a63a07
2 changed files with 45 additions and 0 deletions

10
main.py
View File

@ -46,6 +46,9 @@ global_options.add_option('-p', '--paginate',
global_options.add_option('--no-pager', global_options.add_option('--no-pager',
dest='no_pager', action='store_true', dest='no_pager', action='store_true',
help='disable the pager') help='disable the pager')
global_options.add_option('--version',
dest='show_version', action='store_true',
help='display this version of repo')
class _Repo(object): class _Repo(object):
def __init__(self, repodir): def __init__(self, repodir):
@ -69,6 +72,13 @@ class _Repo(object):
argv = [] argv = []
gopts, gargs = global_options.parse_args(glob) 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: try:
cmd = self.commands[name] cmd = self.commands[name]
except KeyError: except KeyError:

35
subcmds/version.py Normal file
View File

@ -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