diff options
| author | nulltoken <emeric.fermas@gmail.com> | 2012-04-09 03:22:14 +0200 |
|---|---|---|
| committer | nulltoken <emeric.fermas@gmail.com> | 2012-04-10 21:39:06 +0200 |
| commit | 4615f0f71ba849adef08f7a677842af3e0ee3d53 (patch) | |
| tree | d132b071c0ac313236401b4a2b71a5ee8aebf79d /src/branch.c | |
| parent | 555aa453baefec98dbd026592b68214048bedac3 (diff) | |
| download | libgit2-4615f0f71ba849adef08f7a677842af3e0ee3d53.tar.gz | |
branch: add git_branch_move()
Diffstat (limited to 'src/branch.c')
| -rw-r--r-- | src/branch.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/branch.c b/src/branch.c index c4dbc354d..5efb05b92 100644 --- a/src/branch.c +++ b/src/branch.c @@ -178,3 +178,21 @@ int git_branch_list(git_strarray *branch_names, git_repository *repo, unsigned i branch_names->count = branchlist.length; return 0; } + +int git_branch_move(git_repository *repo, const char *old_branch_name, const char *new_branch_name, int force) +{ + git_reference *reference; + git_buf old_reference_name = GIT_BUF_INIT, new_reference_name = GIT_BUF_INIT; + int error; + + if (git_buf_joinpath(&old_reference_name, GIT_REFS_HEADS_DIR, old_branch_name) < 0) + return -1; + + if (git_buf_joinpath(&new_reference_name, GIT_REFS_HEADS_DIR, new_branch_name) < 0) + return -1; + + if ((error = git_reference_lookup(&reference, repo, git_buf_cstr(&old_reference_name))) < 0) + return error; + + return git_reference_rename(reference, git_buf_cstr(&new_reference_name), force); +} |
