commit - 3a6b87604592c583079227ea995f50eb3ec74121
commit + eac1df479eff0a068548f94b188529f0249fd9be
blob - 1edb356b8da783560a7d0691d12708ca5376fb29
blob + 51bedeed3942da484d0dfe4614307f848dcbd5ed
--- got/got.c
+++ got/got.c
goto done;
nbranches++;
}
+ } else if (nbranches == 0) {
+ for (i = 0; i < remote->nsend_branches; i++) {
+ got_pathlist_append(&branches,
+ remote->send_branches[i], NULL);
+ }
}
if (send_all_tags) {
blob - 2c2112b0a45b7a3317cd276452aa270633f87995
blob + ce7b085beed403260f19800f8e25f6d484e5e1d5
--- regress/cmdline/send.sh
+++ regress/cmdline/send.sh
fi
test_done "$testroot" "$ret"
+}
+
+test_send_config() {
+ local testroot=`test_init send_fetch_conf`
+ local testurl=ssh://127.0.0.1/$testroot
+ local commit_id=`git_show_head $testroot/repo`
+
+ got clone -q $testurl/repo $testroot/repo-clone
+ ret="$?"
+ if [ "$ret" != "0" ]; then
+ echo "got clone command failed unexpectedly" >&2
+ test_done "$testroot" "$ret"
+ return 1
+ fi
+
+ cat > $testroot/repo/.git/got.conf <<EOF
+remote "origin" {
+ protocol ssh
+ server 127.0.0.1
+ branch foo
+ repository "$testroot/repo-clone"
}
+EOF
+ got ref -l -r $testroot/repo-clone > $testroot/stdout
+ if [ "$ret" != "0" ]; then
+ echo "got ref command failed unexpectedly" >&2
+ test_done "$testroot" "$ret"
+ return 1
+ fi
+ echo "HEAD: refs/heads/master" > $testroot/stdout.expected
+ echo "refs/heads/master: $commit_id" >> $testroot/stdout.expected
+ echo "refs/remotes/origin/HEAD: refs/remotes/origin/master" \
+ >> $testroot/stdout.expected
+ echo "refs/remotes/origin/master: $commit_id" \
+ >> $testroot/stdout.expected
+
+ cmp -s $testroot/stdout $testroot/stdout.expected
+ ret="$?"
+ if [ "$ret" != "0" ]; then
+ diff -u $testroot/stdout.expected $testroot/stdout
+ test_done "$testroot" "$ret"
+ return 1
+ fi
+
+ got branch -r $testroot/repo foo
+
+ got send -q -r $testroot/repo > $testroot/stdout 2> $testroot/stderr
+ ret="$?"
+ if [ "$ret" != "0" ]; then
+ echo "got send command failed unexpectedly" >&2
+ test_done "$testroot" "$ret"
+ return 1
+ fi
+
+ got ref -l -r $testroot/repo-clone > $testroot/stdout
+ if [ "$ret" != "0" ]; then
+ echo "got ref command failed unexpectedly" >&2
+ test_done "$testroot" "$ret"
+ return 1
+ fi
+
+ echo "HEAD: refs/heads/master" > $testroot/stdout.expected
+ echo "refs/heads/foo: $commit_id" >> $testroot/stdout.expected
+ echo "refs/heads/master: $commit_id" >> $testroot/stdout.expected
+ echo "refs/remotes/origin/HEAD: refs/remotes/origin/master" \
+ >> $testroot/stdout.expected
+ echo "refs/remotes/origin/master: $commit_id" \
+ >> $testroot/stdout.expected
+
+ cmp -s $testroot/stdout $testroot/stdout.expected
+ ret="$?"
+ if [ "$ret" != "0" ]; then
+ diff -u $testroot/stdout.expected $testroot/stdout
+ fi
+ test_done "$testroot" "$ret"
+}
+
test_parseargs "$@"
run_test test_send_basic
run_test test_send_rebase_required
run_test test_send_all_branches
run_test test_send_to_empty_repo
run_test test_send_and_fetch_config
+run_test test_send_config