From: Hannes Eder Date: Thu, 13 Aug 2009 22:28:39 +0000 (+0100) Subject: Add 'stg prev' and 'stg next' X-Git-Tag: v0.15-rc2~12 X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/commitdiff_plain/26e3ed6db5fcab41176816cc9773a73ab3dcaa5a Add 'stg prev' and 'stg next' These commands are related to 'stg top'. They print the patch below resp. above the topmost patch, given that they exist. Signed-off-by: Hannes Eder --- diff --git a/stgit/commands/next.py b/stgit/commands/next.py new file mode 100644 index 0000000..c8e2599 --- /dev/null +++ b/stgit/commands/next.py @@ -0,0 +1,48 @@ +__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 +""" + +from stgit.argparse import opt +from stgit.commands import common +from stgit.out import out +from stgit import argparse + +help = 'Print the name of the next patch' +kind = 'stack' +usage = [''] +description = """ +Print the name of the next patch.""" + +args = [] +options = [ + opt('-b', '--branch', args = [argparse.stg_branches], + short = 'Use BRANCH instead of the default branch')] + +directory = common.DirectoryHasRepositoryLib() + +def func(parser, options, args): + """Show the name of the next patch + """ + if len(args) != 0: + parser.error('incorrect number of arguments') + + stack = directory.repository.get_stack(options.branch) + unapplied = stack.patchorder.unapplied + + if unapplied: + out.stdout(unapplied[0]) + else: + raise common.CmdException, 'No unapplied patches' diff --git a/stgit/commands/prev.py b/stgit/commands/prev.py new file mode 100644 index 0000000..79f97a8 --- /dev/null +++ b/stgit/commands/prev.py @@ -0,0 +1,48 @@ +__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 +""" + +from stgit.argparse import opt +from stgit.commands import common +from stgit.out import out +from stgit import argparse + +help = 'Print the name of the previous patch' +kind = 'stack' +usage = [''] +description = """ +Print the name of the previous patch.""" + +args = [] +options = [ + opt('-b', '--branch', args = [argparse.stg_branches], + short = 'Use BRANCH instead of the default branch')] + +directory = common.DirectoryHasRepositoryLib() + +def func(parser, options, args): + """Show the name of the previous patch + """ + if len(args) != 0: + parser.error('incorrect number of arguments') + + stack = directory.repository.get_stack(options.branch) + applied = stack.patchorder.applied + + if applied and len(applied) >= 2: + out.stdout(applied[-2]) + else: + raise common.CmdException, 'Not enough applied patches'