diff options
| author | Carlos Martín Nieto <cmn@dwim.me> | 2015-03-18 05:04:12 +0100 |
|---|---|---|
| committer | Carlos Martín Nieto <cmn@dwim.me> | 2015-03-18 05:04:12 +0100 |
| commit | 03b51b5d945355260bd34971a31ba8d6958cfb99 (patch) | |
| tree | 9549910832482ab736b52e48cd340381edf78e02 /src/push.c | |
| parent | 83ad46f7269aa9768c768a366f5cc3912f84a421 (diff) | |
| parent | 1034f1b583e4bfe39d46243568aafb27e725f2fa (diff) | |
| download | libgit2-03b51b5d945355260bd34971a31ba8d6958cfb99.tar.gz | |
Merge pull request #2955 from git-up/update_tips_fixes
Update tips fixes
Diffstat (limited to 'src/push.c')
| -rw-r--r-- | src/push.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/push.c b/src/push.c index c6a93ba2f..d4171bbd6 100644 --- a/src/push.c +++ b/src/push.c @@ -180,6 +180,10 @@ int git_push_update_tips(git_push *push) git_vector_foreach(&push->status, i, status) { int fire_callback = 1; + /* Skip unsuccessful updates which have non-empty messages */ + if (status->msg) + continue; + /* Find the corresponding remote ref */ fetch_spec = git_remote__matching_refspec(push->remote, status->ref); if (!fetch_spec) @@ -198,21 +202,18 @@ int git_push_update_tips(git_push *push) if (j == push->specs.length) continue; - /* If this ref update was successful (ok, not ng), it will have an empty message */ - if (status->msg == NULL) { - /* Update the remote ref */ - if (git_oid_iszero(&push_spec->loid)) { - error = git_reference_lookup(&remote_ref, push->remote->repo, git_buf_cstr(&remote_ref_name)); + /* Update the remote ref */ + if (git_oid_iszero(&push_spec->loid)) { + error = git_reference_lookup(&remote_ref, push->remote->repo, git_buf_cstr(&remote_ref_name)); - if (error >= 0) { - error = git_reference_delete(remote_ref); - git_reference_free(remote_ref); - } - } else { - error = git_reference_create(NULL, push->remote->repo, - git_buf_cstr(&remote_ref_name), &push_spec->loid, 1, - "update by push"); + if (error >= 0) { + error = git_reference_delete(remote_ref); + git_reference_free(remote_ref); } + } else { + error = git_reference_create(NULL, push->remote->repo, + git_buf_cstr(&remote_ref_name), &push_spec->loid, 1, + "update by push"); } if (error < 0) { |
