git-process 1.1.4 → 2.0.0
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.
- data/CHANGELOG.md +14 -1
- data/LICENSE +193 -22
- data/README.md +212 -71
- data/man/git-process.1 +371 -0
- metadata +52 -140
- data/Gemfile +0 -20
- data/Gemfile.lock +0 -53
- data/Rakefile +0 -16
- data/bin/git-new-fb +0 -58
- data/bin/git-pull-request +0 -107
- data/bin/git-sync +0 -73
- data/bin/git-to-master +0 -133
- data/git-process.gemspec +0 -25
- data/lib/git-process/abstract_error_builder.rb +0 -53
- data/lib/git-process/changed_file_helper.rb +0 -115
- data/lib/git-process/git_abstract_merge_error_builder.rb +0 -146
- data/lib/git-process/git_branch.rb +0 -105
- data/lib/git-process/git_branches.rb +0 -73
- data/lib/git-process/git_config.rb +0 -153
- data/lib/git-process/git_lib.rb +0 -512
- data/lib/git-process/git_logger.rb +0 -84
- data/lib/git-process/git_merge_error.rb +0 -28
- data/lib/git-process/git_process.rb +0 -172
- data/lib/git-process/git_process_error.rb +0 -18
- data/lib/git-process/git_process_options.rb +0 -99
- data/lib/git-process/git_rebase_error.rb +0 -30
- data/lib/git-process/git_remote.rb +0 -256
- data/lib/git-process/git_status.rb +0 -108
- data/lib/git-process/github_configuration.rb +0 -298
- data/lib/git-process/github_pull_request.rb +0 -151
- data/lib/git-process/new_fb.rb +0 -50
- data/lib/git-process/parked_changes_error.rb +0 -41
- data/lib/git-process/pull_request.rb +0 -134
- data/lib/git-process/pull_request_error.rb +0 -25
- data/lib/git-process/rebase_to_master.rb +0 -148
- data/lib/git-process/sync.rb +0 -136
- data/lib/git-process/uncommitted_changes_error.rb +0 -23
- data/lib/git-process/version.rb +0 -22
- data/spec/FileHelpers.rb +0 -19
- data/spec/GitRepoHelper.rb +0 -123
- data/spec/changed_file_helper_spec.rb +0 -127
- data/spec/git_abstract_merge_error_builder_spec.rb +0 -126
- data/spec/git_branch_spec.rb +0 -123
- data/spec/git_config_spec.rb +0 -45
- data/spec/git_lib_spec.rb +0 -176
- data/spec/git_logger_spec.rb +0 -66
- data/spec/git_process_spec.rb +0 -208
- data/spec/git_remote_spec.rb +0 -227
- data/spec/git_status_spec.rb +0 -122
- data/spec/github_configuration_spec.rb +0 -152
- data/spec/github_pull_request_spec.rb +0 -96
- data/spec/github_test_helper.rb +0 -49
- data/spec/new_fb_spec.rb +0 -130
- data/spec/pull_request_helper.rb +0 -94
- data/spec/pull_request_spec.rb +0 -128
- data/spec/rebase_to_master_spec.rb +0 -429
- data/spec/spec_helper.rb +0 -21
- data/spec/sync_spec.rb +0 -304
data/spec/sync_spec.rb
DELETED
@@ -1,304 +0,0 @@
|
|
1
|
-
require 'git-process/sync'
|
2
|
-
require 'GitRepoHelper'
|
3
|
-
|
4
|
-
describe Sync do
|
5
|
-
include GitRepoHelper
|
6
|
-
|
7
|
-
before(:each) do
|
8
|
-
create_files(%w(.gitignore))
|
9
|
-
gitlib.commit('initial')
|
10
|
-
end
|
11
|
-
|
12
|
-
|
13
|
-
after(:each) do
|
14
|
-
rm_rf(gitlib.workdir)
|
15
|
-
end
|
16
|
-
|
17
|
-
|
18
|
-
def log_level
|
19
|
-
Logger::ERROR
|
20
|
-
end
|
21
|
-
|
22
|
-
|
23
|
-
def create_process(base = gitlib, opts = {})
|
24
|
-
GitProc::Sync.new(base, opts.merge({:rebase => false, :force => false}))
|
25
|
-
end
|
26
|
-
|
27
|
-
|
28
|
-
it 'should work when pushing with fast-forward' do
|
29
|
-
change_file_and_commit('a', '')
|
30
|
-
|
31
|
-
gitlib.branch('fb', :base_branch => 'master')
|
32
|
-
|
33
|
-
clone_repo('fb') do |gl|
|
34
|
-
change_file_and_commit('a', 'hello', gl)
|
35
|
-
gl.branches.include?('origin/fb').should be_true
|
36
|
-
GitProc::Sync.new(gl, :rebase => false, :force => false, :log_level => log_level).runner
|
37
|
-
gl.branches.include?('origin/fb').should be_true
|
38
|
-
gitlib.branches.include?('fb').should be_true
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
|
43
|
-
it "should work with a different remote server name" do
|
44
|
-
change_file_and_commit('a', '')
|
45
|
-
|
46
|
-
gitlib.branch('fb', :base_branch => 'master')
|
47
|
-
|
48
|
-
clone_repo('fb', 'a_remote') do |gl|
|
49
|
-
change_file_and_commit('a', 'hello', gl)
|
50
|
-
gl.branches.include?('a_remote/fb').should be_true
|
51
|
-
GitProc::Sync.new(gl, :rebase => false, :force => false, :log_level => log_level).runner
|
52
|
-
gl.branches.include?('a_remote/fb').should be_true
|
53
|
-
gitlib.branches.include?('fb').should be_true
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
|
58
|
-
describe 'when forcing the push' do
|
59
|
-
|
60
|
-
def create_process(gitlib, opts)
|
61
|
-
GitProc::Sync.new(gitlib, opts.merge({:rebase => false, :force => true}))
|
62
|
-
end
|
63
|
-
|
64
|
-
|
65
|
-
it "should work when pushing with non-fast-forward" do
|
66
|
-
change_file_and_commit('a', '')
|
67
|
-
|
68
|
-
gitlib.branch('fb', :base_branch => 'master')
|
69
|
-
|
70
|
-
clone_repo('fb') do |gl|
|
71
|
-
gitlib.checkout('fb') do
|
72
|
-
change_file_and_commit('a', 'hello', gitlib)
|
73
|
-
end
|
74
|
-
|
75
|
-
expect {
|
76
|
-
GitProc::Sync.new(gl, :rebase => false, :force => true, :log_level => log_level).runner
|
77
|
-
}.to_not raise_error GitExecuteError
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
82
|
-
|
83
|
-
|
84
|
-
describe "when changes are made upstream" do
|
85
|
-
|
86
|
-
def create_process(base, opts = {})
|
87
|
-
GitProc::Sync.new(base, opts.merge({:rebase => false, :force => false}))
|
88
|
-
end
|
89
|
-
|
90
|
-
|
91
|
-
it "should work when pushing with non-fast-forward by merging" do
|
92
|
-
change_file_and_commit('a', '')
|
93
|
-
|
94
|
-
gitlib.branch('fb', :base_branch => 'master')
|
95
|
-
|
96
|
-
clone_repo('fb') do |gl|
|
97
|
-
gitlib.checkout('fb') do
|
98
|
-
change_file_and_commit('a', 'hello', gitlib)
|
99
|
-
end
|
100
|
-
|
101
|
-
expect {
|
102
|
-
create_process(gl).runner
|
103
|
-
}.to_not raise_error GitExecuteError
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
end
|
108
|
-
|
109
|
-
|
110
|
-
describe "when rebasing" do
|
111
|
-
|
112
|
-
def create_process(gitlib, opts = {})
|
113
|
-
GitProc::Sync.new(gitlib, opts.merge({:rebase => true, :force => false}))
|
114
|
-
end
|
115
|
-
|
116
|
-
|
117
|
-
it "should work when pushing (non-fast-forward)" do
|
118
|
-
change_file_and_commit('a', '')
|
119
|
-
|
120
|
-
clone_repo do |gl|
|
121
|
-
gl.checkout('fb', :new_branch => 'master')
|
122
|
-
|
123
|
-
expect { create_process(gl).runner }.to_not raise_error GitExecuteError
|
124
|
-
|
125
|
-
change_file_and_commit('a', 'hello', gitlib)
|
126
|
-
|
127
|
-
expect { create_process(gl).runner }.to_not raise_error GitExecuteError
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
|
132
|
-
it "should merge and then rebase if remote feature branch changed" do
|
133
|
-
change_file_and_commit('a', '')
|
134
|
-
|
135
|
-
gitlib.checkout('fb', :new_branch => 'master')
|
136
|
-
|
137
|
-
clone_repo do |gl|
|
138
|
-
gl.checkout('fb', :new_branch => 'origin/master')
|
139
|
-
|
140
|
-
change_file_and_commit('b', 'hello', gl)
|
141
|
-
change_file_and_commit('a', 'hello', gitlib)
|
142
|
-
change_file_and_commit('b', 'goodbye', gl)
|
143
|
-
change_file_and_commit('a', 'goodbye', gitlib)
|
144
|
-
gitlib.checkout('master')
|
145
|
-
|
146
|
-
expect { create_process(gl).runner }.to_not raise_error GitExecuteError
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
end
|
151
|
-
|
152
|
-
|
153
|
-
describe "when forcing local-only" do
|
154
|
-
|
155
|
-
def create_process(dir, opts)
|
156
|
-
GitProc::Sync.new(dir, opts.merge({:rebase => true, :force => false, :local => true}))
|
157
|
-
end
|
158
|
-
|
159
|
-
|
160
|
-
it "should not try to push" do
|
161
|
-
change_file_and_commit('a', '')
|
162
|
-
|
163
|
-
gitlib.branch('fb', :base_branch => 'master')
|
164
|
-
|
165
|
-
clone_repo('fb') do |gl|
|
166
|
-
gitlib.checkout('fb')
|
167
|
-
change_file_and_commit('a', 'hello', gitlib)
|
168
|
-
|
169
|
-
sp = GitProc::Sync.new(gl, :rebase => true, :force => false, :local => true, :log_level => log_level)
|
170
|
-
gl.should_receive(:fetch) # want to get remote changes
|
171
|
-
gl.should_not_receive(:push) # ...but not push any
|
172
|
-
|
173
|
-
sp.runner
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
end
|
178
|
-
|
179
|
-
|
180
|
-
describe "when there is no remote" do
|
181
|
-
|
182
|
-
def create_process(base, opts)
|
183
|
-
GitProc::Sync.new(base, opts.merge({:rebase => true, :force => false, :local => false}))
|
184
|
-
end
|
185
|
-
|
186
|
-
|
187
|
-
it "should not try to fetch or push" do
|
188
|
-
change_file_and_commit('a', '')
|
189
|
-
|
190
|
-
gitlib.branch('fb', :base_branch => 'master')
|
191
|
-
|
192
|
-
sp = GitProc::Sync.new(gitlib, :rebase => true, :force => false, :local => true, :log_level => log_level)
|
193
|
-
gitlib.should_not_receive(:fetch)
|
194
|
-
gitlib.should_not_receive(:push)
|
195
|
-
|
196
|
-
sp.runner
|
197
|
-
end
|
198
|
-
|
199
|
-
end
|
200
|
-
|
201
|
-
|
202
|
-
describe "when default rebase flag is used" do
|
203
|
-
|
204
|
-
def create_process(base = gitlib, opts = {})
|
205
|
-
GitProc::Sync.new(base, opts.merge({:rebase => false, :force => false, :local => false}))
|
206
|
-
end
|
207
|
-
|
208
|
-
|
209
|
-
it "should try to rebase by flag" do
|
210
|
-
change_file_and_commit('a', '', gitlib)
|
211
|
-
|
212
|
-
gitlib.branch('fb', :base_branch => 'master')
|
213
|
-
|
214
|
-
sp = GitProc::Sync.new(gitlib, :rebase => true, :force => false, :local => true, :log_level => log_level)
|
215
|
-
gitlib.should_receive(:rebase)
|
216
|
-
gitlib.should_not_receive(:merge)
|
217
|
-
|
218
|
-
sp.runner
|
219
|
-
end
|
220
|
-
|
221
|
-
|
222
|
-
it "should try to rebase by config" do
|
223
|
-
change_file_and_commit('a', '', gitlib)
|
224
|
-
|
225
|
-
gitlib.branch('fb', :base_branch => 'master')
|
226
|
-
gitlib.config['gitProcess.defaultRebaseSync'] = 'true'
|
227
|
-
|
228
|
-
sp = GitProc::Sync.new(gitlib, :rebase => false, :force => false, :local => true, :log_level => log_level)
|
229
|
-
gitlib.should_receive(:rebase)
|
230
|
-
gitlib.should_not_receive(:merge)
|
231
|
-
|
232
|
-
sp.runner
|
233
|
-
end
|
234
|
-
|
235
|
-
|
236
|
-
it "should not try to rebase by false config" do
|
237
|
-
change_file_and_commit('a', '', gitlib)
|
238
|
-
|
239
|
-
gitlib.branch('fb', :base_branch => 'master')
|
240
|
-
gitlib.config['gitProcess.defaultRebaseSync'] = 'false'
|
241
|
-
|
242
|
-
sp = GitProc::Sync.new(gitlib, :rebase => false, :force => false, :local => true, :log_level => log_level)
|
243
|
-
gitlib.should_not_receive(:rebase)
|
244
|
-
gitlib.should_receive(:merge)
|
245
|
-
|
246
|
-
sp.runner
|
247
|
-
end
|
248
|
-
|
249
|
-
|
250
|
-
it "should not try to rebase by false config" do
|
251
|
-
change_file_and_commit('a', '', gitlib)
|
252
|
-
|
253
|
-
gitlib.branch('fb', :base_branch => 'master')
|
254
|
-
gitlib.config['gitProcess.defaultRebaseSync'] = 'false'
|
255
|
-
|
256
|
-
sp = GitProc::Sync.new(gitlib, :rebase => false, :force => false, :local => true, :log_level => log_level)
|
257
|
-
gitlib.should_not_receive(:rebase)
|
258
|
-
gitlib.should_receive(:merge)
|
259
|
-
|
260
|
-
sp.runner
|
261
|
-
end
|
262
|
-
|
263
|
-
|
264
|
-
it "should try to rebase by true config" do
|
265
|
-
change_file_and_commit('a', '', gitlib)
|
266
|
-
|
267
|
-
gitlib.branch('fb', :base_branch => 'master')
|
268
|
-
gitlib.config['gitProcess.defaultRebaseSync'] = 'true'
|
269
|
-
|
270
|
-
sp = GitProc::Sync.new(gitlib, :rebase => false, :force => false, :local => true, :log_level => log_level)
|
271
|
-
gitlib.should_receive(:rebase)
|
272
|
-
gitlib.should_not_receive(:merge)
|
273
|
-
|
274
|
-
sp.runner
|
275
|
-
end
|
276
|
-
|
277
|
-
end
|
278
|
-
|
279
|
-
|
280
|
-
it "should work with a different remote server name than 'origin'" do
|
281
|
-
change_file_and_commit('a', '')
|
282
|
-
|
283
|
-
gitlib.branch('fb', :base_branch => 'master')
|
284
|
-
|
285
|
-
clone_repo('fb', 'a_remote') do |gl|
|
286
|
-
change_file_and_commit('a', 'hello', gl)
|
287
|
-
gl.branches.include?('a_remote/fb').should be_true
|
288
|
-
|
289
|
-
GitProc::Sync.new(gl, :rebase => false, :force => false, :log_level => log_level).runner
|
290
|
-
|
291
|
-
gl.branches.include?('a_remote/fb').should be_true
|
292
|
-
gitlib.branches.include?('fb').should be_true
|
293
|
-
end
|
294
|
-
end
|
295
|
-
|
296
|
-
|
297
|
-
it 'should fail when removing current feature while on _parking_' do
|
298
|
-
gitlib.checkout('_parking_', :new_branch => 'master')
|
299
|
-
change_file_and_commit('a', '')
|
300
|
-
|
301
|
-
expect { gitprocess.verify_preconditions }.to raise_error ParkedChangesError
|
302
|
-
end
|
303
|
-
|
304
|
-
end
|