chiark / gitweb /
Add an --index option to "stg refresh"
[stgit] / stgit / commands / unapplied.py
index fe6a48557caa9c11e12d9216237422c14532b476..770220763b2b3755456fee253b2de0607edc4999 100644 (file)
@@ -16,12 +16,9 @@ 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
+from optparse import make_option
+from stgit.out import *
+from stgit.commands import common
 
 
 help = 'print the unapplied patches'
@@ -30,7 +27,12 @@ usage = """%prog [options]
 List the patches from the series which are not pushed onto the stack.
 They are listed in the reverse order in which they were popped."""
 
-options = []
+directory = common.DirectoryHasRepositoryLib()
+options = [make_option('-b', '--branch',
+                       help = 'use BRANCH instead of the default branch'),
+           make_option('-c', '--count',
+                       help = 'print the number of unapplied patches',
+                       action = 'store_true')]
 
 
 def func(parser, options, args):
@@ -39,5 +41,13 @@ def func(parser, options, args):
     if len(args) != 0:
         parser.error('incorrect number of arguments')
 
-    for p in crt_series.get_unapplied():
-        print p
+    if options.branch:
+        s = directory.repository.get_stack(options.branch)
+    else:
+        s = directory.repository.current_stack
+
+    if options.count:
+        out.stdout(len(s.patchorder.unapplied))
+    else:
+        for pn in s.patchorder.unapplied:
+            out.stdout(pn)