Add "stg id" support for "{public}" ref
[stgit] / stgit / commands / id.py
CommitLineData
e1261152
CM
1__copyright__ = """
2Copyright (C) 2005, Catalin Marinas <catalin.marinas@gmail.com>
3
4This program is free software; you can redistribute it and/or modify
5it under the terms of the GNU General Public License version 2 as
6published by the Free Software Foundation.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program; if not, write to the Free Software
15Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16"""
17
48c930db
CM
18from stgit.out import out
19from stgit.commands import common
20from stgit.lib import stack
6c8a90e1 21from stgit import argparse
e1261152 22
575bbdae 23help = 'Print the git hash value of a StGit reference'
33ff9cdd 24kind = 'repo'
575bbdae
KH
25usage = ['[options] [id]']
26description = """
5660771c
CM
27Print the SHA1 value of a Git id (defaulting to HEAD). In addition to the
28standard Git id's like heads and tags, this command also accepts
29'[<branch>:]<patch>' for the id of a patch, '[<branch>:]\{base\}' for the base
30of the stack and '[<branch>:]\{public\}' for the public branch corresponding
31to the stack (see the 'publish' command for details). If no branch is
32specified, it defaults to the current one. The bottom of a patch is accessible
33with the '[<branch>:]<patch>^' format."""
e1261152 34
6c8a90e1
KH
35args = [argparse.applied_patches, argparse.unapplied_patches,
36 argparse.hidden_patches]
48c930db 37options = []
e1261152 38
575bbdae
KH
39directory = common.DirectoryHasRepositoryLib()
40
e1261152
CM
41def func(parser, options, args):
42 """Show the applied patches
43 """
44 if len(args) == 0:
45 id_str = 'HEAD'
46 elif len(args) == 1:
47 id_str = args[0]
48 else:
49 parser.error('incorrect number of arguments')
50
48c930db 51 out.stdout(common.git_commit(id_str, directory.repository).sha1)