X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/fe847176ac839e64d426e6bf8ab7ad67ba3129d6..254d99f846f3427d21bc9224cd693bb4806d2d31:/stgit/commands/branch.py diff --git a/stgit/commands/branch.py b/stgit/commands/branch.py index be501a8..d348409 100644 --- a/stgit/commands/branch.py +++ b/stgit/commands/branch.py @@ -125,12 +125,8 @@ def func(parser, options, args): tree_id = None if len(args) == 2: tree_id = git_id(args[1]) - - if git.branch_exists(args[0]): - raise CmdException, 'Branch "%s" already exists' % args[0] - stack.Series(args[0]).init() - git.create_branch(args[0], tree_id) + stack.Series(args[0]).init(create_at = tree_id) print 'Branch "%s" created.' % args[0] return @@ -176,13 +172,19 @@ def func(parser, options, args): if len(args) != 0: parser.error('incorrect number of arguments') - branches = os.listdir(os.path.join(basedir.get(), '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() - 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: