git-contest 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/.travis.yml +21 -3
- data/README.md +5 -0
- data/Rakefile +8 -0
- data/appveyor.yml +21 -0
- data/bin/git-contest +4 -33
- data/bin/git-contest-config +4 -241
- data/bin/git-contest-finish +4 -151
- data/bin/git-contest-init +4 -65
- data/bin/git-contest-list +4 -64
- data/bin/git-contest-rebase +4 -64
- data/bin/git-contest-start +4 -57
- data/bin/git-contest-submit +4 -183
- data/git-contest.gemspec +2 -1
- data/lib/contest/driver/base.rb +7 -4
- data/lib/git/contest/command_line.rb +10 -0
- data/lib/git/contest/command_line/command.rb +117 -0
- data/lib/git/contest/command_line/main_command.rb +56 -0
- data/lib/git/contest/command_line/sub_commands.rb +35 -0
- data/lib/git/contest/command_line/sub_commands/config_command.rb +258 -0
- data/lib/git/contest/command_line/sub_commands/finish_command.rb +161 -0
- data/lib/git/contest/command_line/sub_commands/init_command.rb +79 -0
- data/lib/git/contest/command_line/sub_commands/list_command.rb +89 -0
- data/lib/git/contest/command_line/sub_commands/rebase_command.rb +87 -0
- data/lib/git/contest/command_line/sub_commands/start_command.rb +77 -0
- data/lib/git/contest/command_line/sub_commands/submit_command.rb +220 -0
- data/lib/git/contest/common.rb +6 -6
- data/lib/git/contest/git.rb +160 -156
- data/lib/git/contest/version.rb +1 -1
- data/spec/command/t004_git_contest_submit_spec.rb +254 -0
- data/spec/command/t005_git_contest_branching_spec.rb +90 -0
- data/spec/command/t007_git_contest_start_spec.rb +95 -0
- data/spec/command/t008_git_contest_finish_spec.rb +171 -0
- data/spec/command/t009_git_contest_init_spec.rb +85 -0
- data/spec/command/t012_git_contest_list_spec.rb +123 -0
- data/spec/command/t013_git_contest_config_spec.rb +186 -0
- data/spec/{lib/contest/driver → contest_driver}/t001_aizu_online_judge_spec.rb +1 -1
- data/spec/{lib/contest/driver → contest_driver}/t002_codeforces_spec.rb +1 -1
- data/spec/{lib/contest/driver → contest_driver}/t003_uva_online_judge_spec.rb +1 -1
- data/spec/{lib/contest/driver → contest_driver}/t010_kattis_spec.rb +1 -1
- data/spec/{lib/contest/driver → contest_driver}/t011_utils_spec.rb +0 -0
- data/spec/spec_helper.rb +18 -12
- data/spec/t006_config_spec.rb +37 -31
- metadata +57 -33
- data/spec/bin/t004_git_contest_submit_spec.rb +0 -223
- data/spec/bin/t005_git_contest_branching_spec.rb +0 -70
- data/spec/bin/t007_git_contest_start_spec.rb +0 -88
- data/spec/bin/t008_git_contest_finish_spec.rb +0 -162
- data/spec/bin/t009_git_contest_init_spec.rb +0 -55
- data/spec/bin/t012_git_contest_list_spec.rb +0 -99
- data/spec/bin/t013_git_contest_config_spec.rb +0 -149
- data/spec/spec_list.txt +0 -1
@@ -1,223 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "T004: git-contest-submit command" do
|
4
|
-
before do
|
5
|
-
ENV['GIT_CONTEST_CONFIG'] = "#{@temp_dir}/config.yml"
|
6
|
-
File.open "#{@temp_dir}/config.yml", 'w' do |file|
|
7
|
-
file.write <<EOF
|
8
|
-
sites:
|
9
|
-
test_dummy:
|
10
|
-
driver: dummy
|
11
|
-
user: dummy
|
12
|
-
password: dummy
|
13
|
-
test_11111:
|
14
|
-
driver: codeforces
|
15
|
-
user: dummy
|
16
|
-
password: dummy
|
17
|
-
test_22222:
|
18
|
-
driver: aizu_online_judge
|
19
|
-
user: dummy
|
20
|
-
password: dummy
|
21
|
-
test_33333:
|
22
|
-
driver: uva_online_judge
|
23
|
-
user: dummy
|
24
|
-
password: dummy
|
25
|
-
EOF
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
context "A001: --version" do
|
30
|
-
it "git-contest-submit --version" do
|
31
|
-
ret = `#{bin_path("git-contest-submit")} --version`
|
32
|
-
expect(ret).to match /git-contest [0-9]+\.[0-9]+\.[0-9]+/
|
33
|
-
end
|
34
|
-
|
35
|
-
it "git-contest submit --version" do
|
36
|
-
ret = `#{bin_path("git-contest submit")} --version`
|
37
|
-
expect(ret).to match /git-contest [0-9]+\.[0-9]+\.[0-9]+/
|
38
|
-
end
|
39
|
-
|
40
|
-
it "git contest submit --version" do
|
41
|
-
ret = `git contest submit --version`
|
42
|
-
expect(ret).to match /git-contest [0-9]+\.[0-9]+\.[0-9]+/
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
context "A002: --help" do
|
47
|
-
before do
|
48
|
-
Dir.mkdir 'working'
|
49
|
-
Dir.chdir 'working'
|
50
|
-
File.open 'main.cpp', 'w' do |file|
|
51
|
-
file.write 'ac-code'
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
context "B001: dummy driver available only test-mode" do
|
56
|
-
it "git-contest-submit --help" do
|
57
|
-
ret = `#{bin_path('git-contest-submit')} --help`
|
58
|
-
expect(ret).to include 'test_dummy'
|
59
|
-
expect(ret).to include 'test_11111'
|
60
|
-
expect(ret).to include 'test_22222'
|
61
|
-
expect(ret).to include 'test_33333'
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
context "A003: after init git repo" do
|
67
|
-
before do
|
68
|
-
Dir.mkdir 'working'
|
69
|
-
Dir.chdir 'working'
|
70
|
-
File.open 'main.cpp', 'w' do |file|
|
71
|
-
file.write 'ac-code'
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
before do
|
76
|
-
`#{bin_path("git-contest")} init --defaults`
|
77
|
-
end
|
78
|
-
|
79
|
-
it "git-contest-submit test_dummy -c 100 -p A" do
|
80
|
-
ret_submit = `#{bin_path("git-contest-submit")} test_dummy -c 100 -p A 2>&1`
|
81
|
-
expect(ret_submit).to include '99999'
|
82
|
-
expect(ret_submit).to include 'Accepted'
|
83
|
-
ret_git = `git log --oneline --decorate --graph`
|
84
|
-
expect(ret_git).to include "Dummy 100A: Accepted"
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
context "A004: with commit message" do
|
89
|
-
before do
|
90
|
-
Dir.mkdir 'working'
|
91
|
-
Dir.chdir 'working'
|
92
|
-
File.open 'main.cpp', 'w' do |file|
|
93
|
-
file.write 'ac-code'
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
before do
|
98
|
-
bin_exec "init --defaults"
|
99
|
-
end
|
100
|
-
|
101
|
-
it "git contest submit test_dummy -c 100 -p A -m '...'" do
|
102
|
-
bin_exec "submit test_dummy -c 100 -p A -m 'this is commit message'"
|
103
|
-
ret = git_do "log --oneline"
|
104
|
-
expect(ret).to include "this is commit message"
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
context 'A005: normal submit' do
|
109
|
-
before do
|
110
|
-
Dir.mkdir 'working'
|
111
|
-
Dir.chdir 'working'
|
112
|
-
File.open 'main.cpp', 'w' do |file|
|
113
|
-
file.write 'ac-code'
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
it "git-contest-submit test_dummy" do
|
118
|
-
ret = `#{bin_path('git-contest-submit')} test_dummy 2>&1`
|
119
|
-
expect(ret).to include 'Error'
|
120
|
-
end
|
121
|
-
|
122
|
-
it "git-contest-submit test_dummy -c 100" do
|
123
|
-
ret = `#{bin_path('git-contest-submit')} test_dummy -c 100 2>&1`
|
124
|
-
expect(ret).to include 'Error'
|
125
|
-
end
|
126
|
-
|
127
|
-
it "git-contest-submit test_dummy -c 100 -p A" do
|
128
|
-
ret = `#{bin_path('git-contest-submit')} test_dummy -c 100 -p A 2>&1`
|
129
|
-
expect(ret).to include '99999'
|
130
|
-
expect(ret).to include 'Accepted'
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
context 'A006: --source' do
|
135
|
-
before do
|
136
|
-
Dir.mkdir 'working'
|
137
|
-
Dir.chdir 'working'
|
138
|
-
end
|
139
|
-
|
140
|
-
context "B001: submit single file" do
|
141
|
-
before do
|
142
|
-
File.open 'ac.cpp', 'w' do |file|
|
143
|
-
file.write 'ac-code'
|
144
|
-
end
|
145
|
-
File.open 'wa.cpp', 'w' do |file|
|
146
|
-
file.write 'wa-code'
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
it "git contest submit test_dummy -c 100 -p A --source ac.cpp" do
|
151
|
-
ret = bin_exec "submit test_dummy -c 100 -p A --source ac.cpp"
|
152
|
-
expect(ret).to include '99999'
|
153
|
-
expect(ret).to include 'Accepted'
|
154
|
-
end
|
155
|
-
|
156
|
-
it "git contest submit test_dummy -c 100 -p A -s ac.cpp" do
|
157
|
-
ret = bin_exec "submit test_dummy -c 100 -p A -s ac.cpp"
|
158
|
-
expect(ret).to include '99999'
|
159
|
-
expect(ret).to include 'Accepted'
|
160
|
-
end
|
161
|
-
|
162
|
-
it "git contest submit test_dummy -c 100 -p A --source wa.cpp" do
|
163
|
-
ret = bin_exec "submit test_dummy -c 100 -p A --source wa.cpp"
|
164
|
-
expect(ret).to include '99999'
|
165
|
-
expect(ret).to include 'Wrong Answer'
|
166
|
-
end
|
167
|
-
|
168
|
-
it "git contest submit test_dummy -c 100 -p A -s wa.cpp" do
|
169
|
-
ret = bin_exec "submit test_dummy -c 100 -p A -s wa.cpp"
|
170
|
-
expect(ret).to include '99999'
|
171
|
-
expect(ret).to include 'Wrong Answer'
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
context "B002: submit multiple files" do
|
176
|
-
before do
|
177
|
-
File.open '1.cpp', 'w' do |file|
|
178
|
-
file.write 'wa-code'
|
179
|
-
end
|
180
|
-
File.open '2.cpp', 'w' do |file|
|
181
|
-
file.write 'ac-code'
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
it "git contest submit test_dummy -c 100 -p A --source 1.cpp,2.cpp" do
|
186
|
-
ret = bin_exec "submit test_dummy -c 100 -p A --source 1.cpp,2.cpp"
|
187
|
-
expect(ret).to include '99999'
|
188
|
-
expect(ret).to include 'Wrong Answer'
|
189
|
-
end
|
190
|
-
|
191
|
-
it "git contest submit test_dummy -c 100 -p A --source 2.cpp,1.cpp" do
|
192
|
-
ret = bin_exec "submit test_dummy -c 100 -p A --source 2.cpp,1.cpp"
|
193
|
-
expect(ret).to include '99999'
|
194
|
-
expect(ret).to include 'Accepted'
|
195
|
-
end
|
196
|
-
|
197
|
-
it "git contest submit test_dummy -c 100 -p A -s 1.cpp,2.cpp" do
|
198
|
-
ret = bin_exec "submit test_dummy -c 100 -p A -s 1.cpp,2.cpp"
|
199
|
-
expect(ret).to include '99999'
|
200
|
-
expect(ret).to include 'Wrong Answer'
|
201
|
-
end
|
202
|
-
|
203
|
-
it "git contest submit test_dummy -c 100 -p A -s 2.cpp,1.cpp" do
|
204
|
-
ret = bin_exec "submit test_dummy -c 100 -p A -s 2.cpp,1.cpp"
|
205
|
-
expect(ret).to include '99999'
|
206
|
-
expect(ret).to include 'Accepted'
|
207
|
-
end
|
208
|
-
|
209
|
-
it "git contest submit test_dummy -c 100 -p A -s 1.*,2.*" do
|
210
|
-
ret = bin_exec "submit test_dummy -c 100 -p A -s 1.*,2.*"
|
211
|
-
expect(ret).to include '99999'
|
212
|
-
expect(ret).to include 'Wrong Answer'
|
213
|
-
end
|
214
|
-
|
215
|
-
it "git contest submit test_dummy -c 100 -p A -s 2.*,1.*" do
|
216
|
-
ret = bin_exec "submit test_dummy -c 100 -p A -s 2.*,1.*"
|
217
|
-
expect(ret).to include '99999'
|
218
|
-
expect(ret).to include 'Accepted'
|
219
|
-
end
|
220
|
-
end
|
221
|
-
end
|
222
|
-
end
|
223
|
-
|
@@ -1,70 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "T005: branching" do
|
4
|
-
context "A001" do
|
5
|
-
before do
|
6
|
-
ENV['GIT_CONTEST_CONFIG'] = "#{@temp_dir}/home/config.yml"
|
7
|
-
File.open ENV['GIT_CONTEST_CONFIG'], "w" do |file|
|
8
|
-
file.write <<EOF
|
9
|
-
sites:
|
10
|
-
test_dummy:
|
11
|
-
driver: dummy
|
12
|
-
user: dummy
|
13
|
-
password: dummy
|
14
|
-
EOF
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
context 'B001' do
|
19
|
-
it '001: init -> start -> submit -> submit -> finish' do
|
20
|
-
Dir.mkdir 'test1'
|
21
|
-
Dir.chdir 'test1'
|
22
|
-
|
23
|
-
# Init
|
24
|
-
bin_exec "init --defaults"
|
25
|
-
expect(git_current_branch).to eq 'master'
|
26
|
-
ret = git_do "log --oneline"
|
27
|
-
expect(ret).to include 'Initial commit'
|
28
|
-
|
29
|
-
# Start
|
30
|
-
bin_exec "start contest1"
|
31
|
-
expect(git_current_branch).to eq 'contest/contest1'
|
32
|
-
|
33
|
-
# Edit.1
|
34
|
-
File.open 'main.c', 'w' do |file|
|
35
|
-
file.write 'wa-code'
|
36
|
-
end
|
37
|
-
|
38
|
-
# Submit.1
|
39
|
-
bin_exec "submit test_dummy -c 1000 -p A"
|
40
|
-
ret = git_do "log --oneline"
|
41
|
-
expect(ret).to include 'Dummy 1000A: Wrong Answer'
|
42
|
-
|
43
|
-
ret = git_do "ls-files"
|
44
|
-
expect(ret).to include 'main.c'
|
45
|
-
|
46
|
-
# Edit.2 fixed
|
47
|
-
File.open 'main.c', 'w' do |file|
|
48
|
-
file.write 'ac-code'
|
49
|
-
end
|
50
|
-
|
51
|
-
# Submit.2
|
52
|
-
bin_exec "submit test_dummy -c 1000 -p A"
|
53
|
-
ret = git_do "log --oneline"
|
54
|
-
expect(ret).to include 'Dummy 1000A: Accepted'
|
55
|
-
|
56
|
-
ret = git_do "ls-files"
|
57
|
-
expect(ret).to include 'main.c'
|
58
|
-
|
59
|
-
# Finish
|
60
|
-
bin_exec "finish --no-edit"
|
61
|
-
expect(git_current_branch).to eq 'master'
|
62
|
-
|
63
|
-
ret = git_do "log --oneline"
|
64
|
-
expect(ret).to include 'Dummy 1000A: Wrong Answer'
|
65
|
-
expect(ret).to include 'Dummy 1000A: Accepted'
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
@@ -1,88 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "T007: git-contest-start" do
|
4
|
-
context "A001: specify based branch" do
|
5
|
-
before do
|
6
|
-
bin_exec "init --defaults"
|
7
|
-
end
|
8
|
-
|
9
|
-
it "001" do
|
10
|
-
git_do "checkout -b base1"
|
11
|
-
git_do "commit --allow-empty -m 'this is commit'"
|
12
|
-
git_do "checkout master"
|
13
|
-
bin_exec "start test1"
|
14
|
-
ret1 = git_do "log --oneline"
|
15
|
-
expect(ret1).not_to include "this is commit"
|
16
|
-
bin_exec "start test2 base1"
|
17
|
-
ret2 = git_do "log --oneline"
|
18
|
-
expect(ret2).to include "this is commit"
|
19
|
-
end
|
20
|
-
|
21
|
-
it "002" do
|
22
|
-
git_do "checkout -b base1"
|
23
|
-
git_do "commit --allow-empty -m 'this is commit'"
|
24
|
-
git_do "checkout master"
|
25
|
-
bin_exec "start test1 base1"
|
26
|
-
ret1 = git_do "log --oneline"
|
27
|
-
expect(ret1).to include "this is commit"
|
28
|
-
bin_exec "start test2"
|
29
|
-
ret2 = git_do "log --oneline"
|
30
|
-
expect(ret2).not_to include "this is commit"
|
31
|
-
end
|
32
|
-
|
33
|
-
it "003" do
|
34
|
-
git_do "checkout -b base1"
|
35
|
-
git_do "commit --allow-empty -m 'this is commit'"
|
36
|
-
bin_exec "start test1 base1"
|
37
|
-
ret1 = git_do "log --oneline"
|
38
|
-
expect(ret1).to include "this is commit"
|
39
|
-
bin_exec "start test2"
|
40
|
-
ret2 = git_do "log --oneline"
|
41
|
-
expect(ret2).not_to include "this is commit"
|
42
|
-
end
|
43
|
-
|
44
|
-
it "004" do
|
45
|
-
git_do "checkout -b base1"
|
46
|
-
git_do "commit --allow-empty -m 'this is commit'"
|
47
|
-
bin_exec "start test1"
|
48
|
-
ret1 = git_do "log --oneline"
|
49
|
-
expect(ret1).not_to include "this is commit"
|
50
|
-
bin_exec "start test2 base1"
|
51
|
-
ret2 = git_do "log --oneline"
|
52
|
-
expect(ret2).to include "this is commit"
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
context "A002: --fetch" do
|
57
|
-
it "001" do
|
58
|
-
Dir.mkdir "test1"
|
59
|
-
Dir.chdir "test1"
|
60
|
-
bin_exec "init --defaults"
|
61
|
-
Dir.chdir ".."
|
62
|
-
git_do "clone test1 test2"
|
63
|
-
Dir.chdir "test1"
|
64
|
-
10.times {|x| git_do "commit --allow-empty -m 'this is commit'" }
|
65
|
-
ret1 = git_do "log --oneline master"
|
66
|
-
expect(ret1).to include "this is commit"
|
67
|
-
|
68
|
-
Dir.chdir ".."
|
69
|
-
Dir.chdir "test2"
|
70
|
-
# init
|
71
|
-
bin_exec "init --defaults"
|
72
|
-
# fetch
|
73
|
-
ret2 = git_do "log --oneline origin/master"
|
74
|
-
expect(ret2).not_to include "this is commit"
|
75
|
-
|
76
|
-
ret_start1 = bin_exec "start branch1 --fetch"
|
77
|
-
expect(ret_start1).not_to include "Summary of actions:"
|
78
|
-
|
79
|
-
ret3 = git_do "log --oneline origin/master"
|
80
|
-
expect(ret3).to include "this is commit"
|
81
|
-
|
82
|
-
git_do "pull origin master"
|
83
|
-
ret_start2 = bin_exec "start branch2 --fetch"
|
84
|
-
expect(ret_start2).to include "Summary of actions:"
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
@@ -1,162 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
# Do not forget --no-edit option
|
4
|
-
|
5
|
-
describe "T008: git-contest-finish" do
|
6
|
-
context "A001: --keep" do
|
7
|
-
it "001: init -> start -> empty-commits -> finish" do
|
8
|
-
bin_exec "init --defaults"
|
9
|
-
bin_exec "start branch1"
|
10
|
-
git_do "commit --allow-empty -m 'this is commit'"
|
11
|
-
bin_exec "finish --no-edit"
|
12
|
-
ret1 = git_do "branch"
|
13
|
-
ret_log1 = git_do "log --oneline master"
|
14
|
-
expect(ret1).not_to include "branch1"
|
15
|
-
expect(ret_log1).to include "this is commit"
|
16
|
-
end
|
17
|
-
|
18
|
-
it "002: init -> start -> empty-commits -> finish --keep" do
|
19
|
-
bin_exec "init --defaults"
|
20
|
-
bin_exec "start branch1"
|
21
|
-
git_do "commit --allow-empty -m 'this is commit'"
|
22
|
-
bin_exec "finish --no-edit --keep"
|
23
|
-
ret1 = git_do "branch"
|
24
|
-
ret_log1 = git_do "log --oneline master"
|
25
|
-
expect(ret1).to include "branch1"
|
26
|
-
expect(ret_log1).to include "this is commit"
|
27
|
-
end
|
28
|
-
|
29
|
-
it "003: init -> start -> empty-commits -> finish -k" do
|
30
|
-
bin_exec "init --defaults"
|
31
|
-
bin_exec "start branch1"
|
32
|
-
git_do "commit --allow-empty -m 'this is commit'"
|
33
|
-
bin_exec "finish --no-edit -k"
|
34
|
-
ret1 = git_do "branch"
|
35
|
-
ret_log1 = git_do "log --oneline master"
|
36
|
-
expect(ret1).to include "branch1"
|
37
|
-
expect(ret_log1).to include "this is commit"
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
context "A002: --rebase" do
|
43
|
-
it "001: init -> start -> empty-commits -> finish --rebase" do
|
44
|
-
# create branches: branch1(normal) -> branch2(rebase) -> branch3(normal)
|
45
|
-
bin_exec "init --defaults"
|
46
|
-
bin_exec "start branch1"
|
47
|
-
10.times {|x|
|
48
|
-
name = "test-1.#{x}"
|
49
|
-
FileUtils.touch name
|
50
|
-
git_do "add #{name}"
|
51
|
-
git_do "commit -m 'Add #{name}'"
|
52
|
-
}
|
53
|
-
bin_exec "start branch2"
|
54
|
-
10.times {|x|
|
55
|
-
name = "test-2.#{x}"
|
56
|
-
FileUtils.touch name
|
57
|
-
git_do "add #{name}"
|
58
|
-
git_do "commit -m 'Add #{name}'"
|
59
|
-
}
|
60
|
-
bin_exec "start branch3"
|
61
|
-
10.times {|x|
|
62
|
-
name = "test-3.#{x}"
|
63
|
-
FileUtils.touch name
|
64
|
-
git_do "add #{name}"
|
65
|
-
git_do "commit -m 'Add #{name}'"
|
66
|
-
}
|
67
|
-
# finish branches
|
68
|
-
ret_branch_1 = git_do "branch"
|
69
|
-
bin_exec "finish branch1 --no-edit"
|
70
|
-
bin_exec "finish branch2 --no-edit --rebase"
|
71
|
-
bin_exec "finish branch3 --no-edit"
|
72
|
-
ret_branch_2 = git_do "branch"
|
73
|
-
ret_log = git_do "log --oneline"
|
74
|
-
expect(ret_branch_1).to include "branch1"
|
75
|
-
expect(ret_branch_1).to include "branch2"
|
76
|
-
expect(ret_branch_1).to include "branch3"
|
77
|
-
expect(ret_branch_2).not_to include "branch1"
|
78
|
-
expect(ret_branch_2).not_to include "branch2"
|
79
|
-
expect(ret_branch_2).not_to include "branch3"
|
80
|
-
(!!ret_log.match(/test-2.*test-3.*test-1/m)).should === true
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
|
-
|
85
|
-
context "A003: --force-delete" do
|
86
|
-
# TODO: recheck
|
87
|
-
it "001: init -> start -> trigger merge error -> finish --force-delete" do
|
88
|
-
# make conflict
|
89
|
-
bin_exec "init --defaults"
|
90
|
-
FileUtils.touch "test.txt"
|
91
|
-
git_do "add test.txt"
|
92
|
-
git_do "commit -m 'Add test.txt'"
|
93
|
-
bin_exec "start branch1"
|
94
|
-
bin_exec "start branch2"
|
95
|
-
git_do "checkout contest/branch1"
|
96
|
-
File.open "test.txt", "w" do |file|
|
97
|
-
file.write "test1"
|
98
|
-
end
|
99
|
-
# git_do "add test.txt"
|
100
|
-
# git_do "commit -m 'Edit test.txt @ branch1'"
|
101
|
-
git_do "checkout contest/branch2"
|
102
|
-
File.open "test.txt", "w" do |file|
|
103
|
-
file.write "test2"
|
104
|
-
end
|
105
|
-
git_do "add test.txt"
|
106
|
-
git_do "commit -m 'Edit test.txt @ branch2'"
|
107
|
-
# finish
|
108
|
-
bin_exec "finish branch1 --no-edit"
|
109
|
-
bin_exec "finish branch2 --force-delete --no-edit"
|
110
|
-
ret_branch = git_do "branch"
|
111
|
-
expect(ret_branch).not_to include "contest/branch1"
|
112
|
-
expect(ret_branch).not_to include "contest/branch2"
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
context "A004: --squash" do
|
117
|
-
it "001: init -> start -> empty-commits -> finish --squash" do
|
118
|
-
bin_exec "init --defaults"
|
119
|
-
bin_exec "start branch1"
|
120
|
-
10.times {|x|
|
121
|
-
filename = "test#{x}.txt"
|
122
|
-
FileUtils.touch filename
|
123
|
-
git_do "add #{filename}"
|
124
|
-
git_do "commit -m 'this is commit #{x}'"
|
125
|
-
}
|
126
|
-
bin_exec "finish --no-edit --squash branch1"
|
127
|
-
ret_log1 = git_do "log --oneline"
|
128
|
-
ret_branch1 = git_do "branch"
|
129
|
-
expect(ret_branch1).not_to include "branch1"
|
130
|
-
expect(ret_log1).to include "this is commit"
|
131
|
-
expect(ret_log1).to include "Squashed commit"
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
context "A005: --fetch" do
|
136
|
-
before do
|
137
|
-
Dir.mkdir "src"
|
138
|
-
Dir.chdir "src"
|
139
|
-
bin_exec "init --defaults"
|
140
|
-
bin_exec "start branch1"
|
141
|
-
10.times {|x| git_do "commit --allow-empty -m 'this is commit #{x}'" }
|
142
|
-
Dir.chdir ".."
|
143
|
-
git_do "clone src dest"
|
144
|
-
Dir.chdir "dest"
|
145
|
-
end
|
146
|
-
|
147
|
-
it "001: init -> start -> clone -> checkout@dest -> empty-commits@dest -> finish@dest" do
|
148
|
-
git_do "checkout -b master origin/master"
|
149
|
-
bin_exec "init --defaults"
|
150
|
-
bin_exec "start --fetch branch1"
|
151
|
-
bin_exec "finish --fetch branch1 --no-edit"
|
152
|
-
ret_branch2 = git_do "branch"
|
153
|
-
Dir.chdir ".."
|
154
|
-
Dir.chdir "src"
|
155
|
-
ret_branch1 = git_do "branch"
|
156
|
-
git_do "checkout master"
|
157
|
-
expect(ret_branch1).to include 'branch1'
|
158
|
-
expect(ret_branch2).not_to include 'branch1'
|
159
|
-
end
|
160
|
-
end
|
161
|
-
end
|
162
|
-
|