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
This commit is contained in:
commit
2d4eb71c6c
@ -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
Executable file
40
t/t5404-tracking-branches.sh
Executable file
@ -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…
Reference in New Issue
Block a user