Commit | Line | Data |
---|---|---|
e9fcd1e2 IL |
1 | #!/bin/sh |
2 | ||
3 | test_description='push with --set-upstream' | |
4 | . ./test-lib.sh | |
8ac3ed27 | 5 | . "$TEST_DIRECTORY"/lib-terminal.sh |
e9fcd1e2 | 6 | |
2d59ced1 TRC |
7 | ensure_fresh_upstream() { |
8 | rm -rf parent && git init --bare parent | |
9 | } | |
10 | ||
e9fcd1e2 | 11 | test_expect_success 'setup bare parent' ' |
2d59ced1 | 12 | ensure_fresh_upstream && |
e9fcd1e2 IL |
13 | git remote add upstream parent |
14 | ' | |
15 | ||
16 | test_expect_success 'setup local commit' ' | |
17 | echo content >file && | |
18 | git add file && | |
19 | git commit -m one | |
20 | ' | |
21 | ||
22 | check_config() { | |
23 | (echo $2; echo $3) >expect.$1 | |
24 | (git config branch.$1.remote | |
25 | git config branch.$1.merge) >actual.$1 | |
26 | test_cmp expect.$1 actual.$1 | |
27 | } | |
28 | ||
29 | test_expect_success 'push -u master:master' ' | |
30 | git push -u upstream master:master && | |
31 | check_config master upstream refs/heads/master | |
32 | ' | |
33 | ||
34 | test_expect_success 'push -u master:other' ' | |
35 | git push -u upstream master:other && | |
36 | check_config master upstream refs/heads/other | |
37 | ' | |
38 | ||
39 | test_expect_success 'push -u --dry-run master:otherX' ' | |
40 | git push -u --dry-run upstream master:otherX && | |
41 | check_config master upstream refs/heads/other | |
42 | ' | |
43 | ||
44 | test_expect_success 'push -u master2:master2' ' | |
45 | git branch master2 && | |
46 | git push -u upstream master2:master2 && | |
47 | check_config master2 upstream refs/heads/master2 | |
48 | ' | |
49 | ||
50 | test_expect_success 'push -u master2:other2' ' | |
51 | git push -u upstream master2:other2 && | |
52 | check_config master2 upstream refs/heads/other2 | |
53 | ' | |
54 | ||
55 | test_expect_success 'push -u :master2' ' | |
56 | git push -u upstream :master2 && | |
57 | check_config master2 upstream refs/heads/other2 | |
58 | ' | |
59 | ||
60 | test_expect_success 'push -u --all' ' | |
61 | git branch all1 && | |
62 | git branch all2 && | |
63 | git push -u --all && | |
64 | check_config all1 upstream refs/heads/all1 && | |
65 | check_config all2 upstream refs/heads/all2 | |
66 | ' | |
67 | ||
68 | test_expect_success 'push -u HEAD' ' | |
69 | git checkout -b headbranch && | |
70 | git push -u upstream HEAD && | |
71 | check_config headbranch upstream refs/heads/headbranch | |
72 | ' | |
73 | ||
8ac3ed27 TRC |
74 | test_expect_success TTY 'progress messages go to tty' ' |
75 | ensure_fresh_upstream && | |
76 | ||
77 | test_terminal git push -u upstream master >out 2>err && | |
1edbaac3 | 78 | test_i18ngrep "Writing objects" err |
8ac3ed27 TRC |
79 | ' |
80 | ||
d7c411b7 | 81 | test_expect_success 'progress messages do not go to non-tty' ' |
8ac3ed27 TRC |
82 | ensure_fresh_upstream && |
83 | ||
84 | # skip progress messages, since stderr is non-tty | |
85 | git push -u upstream master >out 2>err && | |
a1347dc0 | 86 | test_i18ngrep ! "Writing objects" err |
8ac3ed27 TRC |
87 | ' |
88 | ||
d7c411b7 | 89 | test_expect_success 'progress messages go to non-tty (forced)' ' |
8ac3ed27 TRC |
90 | ensure_fresh_upstream && |
91 | ||
92 | # force progress messages to stderr, even though it is non-tty | |
93 | git push -u --progress upstream master >out 2>err && | |
1edbaac3 | 94 | test_i18ngrep "Writing objects" err |
8ac3ed27 TRC |
95 | ' |
96 | ||
97 | test_expect_success TTY 'push -q suppresses progress' ' | |
98 | ensure_fresh_upstream && | |
99 | ||
100 | test_terminal git push -u -q upstream master >out 2>err && | |
a1347dc0 | 101 | test_i18ngrep ! "Writing objects" err |
8ac3ed27 TRC |
102 | ' |
103 | ||
01fdc21f | 104 | test_expect_success TTY 'push --no-progress suppresses progress' ' |
8ac3ed27 TRC |
105 | ensure_fresh_upstream && |
106 | ||
107 | test_terminal git push -u --no-progress upstream master >out 2>err && | |
a1347dc0 VA |
108 | test_i18ngrep ! "Unpacking objects" err && |
109 | test_i18ngrep ! "Writing objects" err | |
8ac3ed27 TRC |
110 | ' |
111 | ||
c207e34f CB |
112 | test_expect_success TTY 'quiet push' ' |
113 | ensure_fresh_upstream && | |
114 | ||
115 | test_terminal git push --quiet --no-progress upstream master 2>&1 | tee output && | |
116 | test_cmp /dev/null output | |
117 | ' | |
118 | ||
e9fcd1e2 | 119 | test_done |