~mdw
/
stgit
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Handle branch names with slashes
[stgit]
/
stgit
/
commands
/
branch.py
diff --git
a/stgit/commands/branch.py
b/stgit/commands/branch.py
index
860d7d5
..
d348409
100644
(file)
--- a/
stgit/commands/branch.py
+++ b/
stgit/commands/branch.py
@@
-23,7
+23,7
@@
from optparse import OptionParser, make_option
from stgit.commands.common import *
from stgit.utils import *
from stgit.commands.common import *
from stgit.utils import *
-from stgit import stack, git
+from stgit import stack, git
, basedir
help = 'manage development branches'
help = 'manage development branches'
@@
-35,7
+35,9
@@
is always created in a new repository. This subcommand allows you to
manage several patch series in the same repository via GIT branches.
When displaying the branches, the names can be prefixed with
manage several patch series in the same repository via GIT branches.
When displaying the branches, the names can be prefixed with
-'s' (StGIT managed) or 'p' (protected)."""
+'s' (StGIT managed) or 'p' (protected).
+
+If not given any options, switch to the named branch."""
options = [make_option('-c', '--create',
help = 'create a new development branch',
options = [make_option('-c', '--create',
help = 'create a new development branch',
@@
-43,6
+45,9
@@
options = [make_option('-c', '--create',
make_option('--clone',
help = 'clone the contents of the current branch',
action = 'store_true'),
make_option('--clone',
help = 'clone the contents of the current branch',
action = 'store_true'),
+ make_option('--convert',
+ help = 'switch between old and new format branches',
+ action = 'store_true'),
make_option('--delete',
help = 'delete an existing development branch',
action = 'store_true'),
make_option('--delete',
help = 'delete an existing development branch',
action = 'store_true'),
@@
-119,10
+124,9
@@
def func(parser, options, args):
tree_id = None
if len(args) == 2:
tree_id = None
if len(args) == 2:
- tree_id = args[1]
-
- git.create_branch(args[0], tree_id)
- stack.Series(args[0]).init()
+ tree_id = git_id(args[1])
+
+ stack.Series(args[0]).init(create_at = tree_id)
print 'Branch "%s" created.' % args[0]
return
print 'Branch "%s" created.' % args[0]
return
@@
-148,6
+152,14
@@
def func(parser, options, args):
return
return
+ elif options.convert:
+
+ if len(args) != 0:
+ parser.error('incorrect number of arguments')
+
+ crt_series.convert()
+ return
+
elif options.delete:
if len(args) != 1:
elif options.delete:
if len(args) != 1:
@@
-160,13
+172,19
@@
def func(parser, options, args):
if len(args) != 0:
parser.error('incorrect number of arguments')
if len(args) != 0:
parser.error('incorrect number of arguments')
- branches = os.listdir(os.path.join(git.get_base_dir(), 'refs', 'heads'))
+ branches = []
+ basepath = os.path.join(basedir.get(), 'refs', 'heads')
+ for path, files, dirs in walk_tree(basepath):
+ branches += [os.path.join(path, f) for f in files]
branches.sort()
branches.sort()
- max_len = max([len(i) for i in branches])
- print 'Available branches:'
- for i in branches:
- __print_branch(i, max_len)
+ if branches:
+ print 'Available branches:'
+ max_len = max([len(i) for i in branches])
+ for i in branches:
+ __print_branch(i, max_len)
+ else:
+ print 'No branches'
return
elif options.protect:
return
elif options.protect: