From: Chuck Lever Date: Thu, 6 Oct 2005 10:19:22 +0000 (+0100) Subject: Add the ability to rename a git branch X-Git-Tag: v0.14.3~625 X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/commitdiff_plain/72594233910a7f3ae988020702de20d8703a2ffb?hp=6f48e5f8db212cc241511aa03ed47534580357b2 Add the ability to rename a git branch To keep StGit-specific functionality separate from git functionality, create a git.rename_branch function to do appropriate sanity checking and rename branch heads. Signed-off-by: Chuck Lever --- diff --git a/stgit/git.py b/stgit/git.py index 7bb41c5..55f06c1 100644 --- a/stgit/git.py +++ b/stgit/git.py @@ -315,6 +315,20 @@ def delete_branch(name): raise GitException, 'Branch "%s" does not exist' % name os.remove(os.path.join(base_dir, branch_head)) +def rename_branch(from_name, to_name): + """Rename a git branch + """ + from_head = os.path.join(base_dir, 'refs', 'heads', from_name) + if not branch_exists(from_head): + raise GitException, 'Branch "%s" does not exist' % from_name + to_head = os.path.join(base_dir, 'refs', 'heads', to_name) + if branch_exists(to_head): + raise GitException, 'Branch "%s" already exists' % to_name + + if get_head_file() == from_name: + set_head_file(os.path.join('refs', 'heads', to_name)) + os.rename(from_head, to_head) + def add(names): """Add the files or recursively add the directory contents """