From: Catalin Marinas Date: Thu, 18 Aug 2005 13:35:19 +0000 (+0100) Subject: Add the 'id' command X-Git-Tag: v0.14.3~704 X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/commitdiff_plain/e1261152d817111550e26c026d2793d8621b51ad Add the 'id' command This command prints the hash value of a GIT id (defaulting to HEAD). In addition to the standard GIT id's like heads and tags, this command also accepts 'base' and '[]/(bottom | top)'. Signed-off-by: Catalin Marinas --- diff --git a/stgit/commands/common.py b/stgit/commands/common.py index db0466d..c4ddc94 100644 --- a/stgit/commands/common.py +++ b/stgit/commands/common.py @@ -31,7 +31,7 @@ class CmdException(Exception): # Utility functions -def git_id(string): +def git_id(string, strict = False): """Return the GIT id """ if not string: @@ -54,8 +54,9 @@ def git_id(string): if os.path.isfile(id_file): return read_string(id_file) - # maybe GIT know more about this id - return git_id + # maybe GIT knows more about this id + if not strict: + return git_id elif len(string_list) == 2: patch_name = string_list[0] if patch_name == '': diff --git a/stgit/commands/id.py b/stgit/commands/id.py new file mode 100644 index 0000000..447eb62 --- /dev/null +++ b/stgit/commands/id.py @@ -0,0 +1,46 @@ +__copyright__ = """ +Copyright (C) 2005, Catalin Marinas + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License version 2 as +published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +""" + +import sys, os +from optparse import OptionParser, make_option + +from stgit.commands.common import * +from stgit.utils import * +from stgit import stack, git + + +help = 'print the hash value of a GIT id' +usage = """%prog [options] [id] + +Print the hash value of a GIT id (defaulting to HEAD). In addition to +the standard GIT id's like heads and tags, this command also accepts +'base' and '[]/(bottom | top)'.""" + +options = [] + + +def func(parser, options, args): + """Show the applied patches + """ + if len(args) == 0: + id_str = 'HEAD' + elif len(args) == 1: + id_str = args[0] + else: + parser.error('incorrect number of arguments') + + print git_id(id_str, strict = True) diff --git a/stgit/main.py b/stgit/main.py index f16efe5..d8d2868 100644 --- a/stgit/main.py +++ b/stgit/main.py @@ -37,6 +37,7 @@ import stgit.commands.clone import stgit.commands.export import stgit.commands.files import stgit.commands.fold +import stgit.commands.id import stgit.commands.imprt import stgit.commands.init import stgit.commands.mail @@ -67,6 +68,7 @@ commands = { 'export': stgit.commands.export, 'files': stgit.commands.files, 'fold': stgit.commands.fold, + 'id': stgit.commands.id, 'import': stgit.commands.imprt, 'init': stgit.commands.init, 'mail': stgit.commands.mail,