Browse Source

Merge branch 'ar/send-pack-remote-track' into jk/send-pack

* 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
maint
Junio C Hamano 18 years ago
parent
commit
2d4eb71c6c
  1. 3
      builtin-send-pack.c
  2. 40
      t/t5404-tracking-branches.sh

3
builtin-send-pack.c

@ -348,7 +348,8 @@ static int do_send_pack(int in, int out, struct remote *remote, int nr_refspec, @@ -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)

40
t/t5404-tracking-branches.sh

@ -0,0 +1,40 @@ @@ -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
Loading…
Cancel
Save