Skip to content

Commit

Permalink
Merge branch 'ar/send-pack-remote-track' into jk/send-pack
Browse files Browse the repository at this point in the history
* ar/send-pack-remote-track:
  Update the tracking references only if they were succesfully updated on remote
  Add a test checking if send-pack updated local tracking branches correctly
  • Loading branch information
Junio C Hamano committed Nov 14, 2007
2 parents a108e53 + ed31df3 commit 2d4eb71
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 1 deletion.
3 changes: 2 additions & 1 deletion builtin-send-pack.c
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,8 @@ static int do_send_pack(int in, int out, struct remote *remote, int nr_refspec,

if (!args.dry_run && remote && ret == 0) {
for (ref = remote_refs; ref; ref = ref->next)
update_tracking_ref(remote, ref);
if (!is_null_sha1(ref->new_sha1))
update_tracking_ref(remote, ref);
}

if (!new_refs && ret == 0)
Expand Down
40 changes: 40 additions & 0 deletions t/t5404-tracking-branches.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/sh

test_description='tracking branch update checks for git push'

. ./test-lib.sh

test_expect_success 'setup' '
echo 1 >file &&
git add file &&
git commit -m 1 &&
git branch b1 &&
git branch b2 &&
git clone . aa &&
git checkout b1 &&
echo b1 >>file &&
git commit -a -m b1 &&
git checkout b2 &&
echo b2 >>file &&
git commit -a -m b2
'

test_expect_success 'check tracking branches updated correctly after push' '
cd aa &&
b1=$(git rev-parse origin/b1) &&
b2=$(git rev-parse origin/b2) &&
git checkout -b b1 origin/b1 &&
echo aa-b1 >>file &&
git commit -a -m aa-b1 &&
git checkout -b b2 origin/b2 &&
echo aa-b2 >>file &&
git commit -a -m aa-b2 &&
git checkout master &&
echo aa-master >>file &&
git commit -a -m aa-master &&
git push &&
test "$(git rev-parse origin/b1)" = "$b1" &&
test "$(git rev-parse origin/b2)" = "$b2"
'

test_done

0 comments on commit 2d4eb71

Please sign in to comment.