flash_flow 1.2.2.a → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3aab35b80fc7adc67ef12b0833d6434f49c6ec52
4
- data.tar.gz: 4c400dc91f4caf0c10c2f15adbec98d00861fa6a
3
+ metadata.gz: 480c4ebd2a6e87fca847937c52df8d2bcce3fe1b
4
+ data.tar.gz: 17458d805ba1ff604dcab78567ff3c2d6b774db7
5
5
  SHA512:
6
- metadata.gz: 324c1d564582f90976a185bc6fc5491b6b4f7003694609c17b73cb42ebb5fc9533d78e4c04618b2bbebccc1e540c3ba04cfb4f3776b385f2c754abdb24b12d8e
7
- data.tar.gz: 4d96b4211dea4aed6d7b6c7bb89a0b2c39bd61f0e33cfdbd701e60b30930f58231782e53f80fcf1728220c3c93e48938765098960a1b899467c63c41f1cfbff1
6
+ metadata.gz: f9c5c8288f8c367a4ec7bbe0b74f62bab3c3a446b1ade5a8d17486b2ff3c67463c4dcb496e2b1eeba8681391370a408c12642efdf5c01d271873c122e7c2be03
7
+ data.tar.gz: 46b479386cd464a43668c16e231141754db19f49c5477bfe7daf44681d4b0aa3f15a9db0f65288c54ae7cf9a99297acfb55bc4c6e9ddbd001764de0875d1f901
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- flash_flow (1.2.2.a)
4
+ flash_flow (1.2.2)
5
5
  hipchat (~> 1.5)
6
6
  octokit (~> 4.1)
7
7
  pivotal-tracker (~> 0.5)
@@ -3,11 +3,7 @@ require 'open3'
3
3
 
4
4
  module FlashFlow
5
5
  class CmdRunner
6
- LOG_NONE = :log_none
7
- LOG_CMD = :log_cmd
8
-
9
- attr_reader :dry_run, :last_command, :last_stderr, :last_stdout
10
- attr_accessor :dir
6
+ attr_reader :dry_run, :dir, :last_command, :last_stderr, :last_stdout
11
7
 
12
8
  def initialize(opts={})
13
9
  @dir = opts[:dir] || '.'
@@ -15,7 +11,7 @@ module FlashFlow
15
11
  @logger = opts[:logger] || Logger.new('/dev/null')
16
12
  end
17
13
 
18
- def run(cmd, opts={})
14
+ def run(cmd)
19
15
  @last_command = cmd
20
16
  if dry_run
21
17
  puts "#{dir}$ #{cmd}"
@@ -28,26 +24,14 @@ module FlashFlow
28
24
  @success = wait_thr.value.success?
29
25
  end
30
26
  end
31
- log(cmd, opts[:log])
27
+ @logger.debug("#{dir}$ #{cmd}")
28
+ last_stdout.split("\n").each { |line| @logger.debug(line) }
29
+ last_stderr.split("\n").each { |line| @logger.debug(line) }
32
30
  end
33
31
  end
34
32
 
35
33
  def last_success?
36
34
  @success
37
35
  end
38
-
39
- private
40
-
41
- def log(cmd, log_what)
42
- if log_what == LOG_NONE
43
- # Do nothing
44
- else
45
- @logger.debug("#{dir}$ #{cmd}")
46
- unless log_what == LOG_CMD
47
- last_stdout.split("\n").each { |line| @logger.debug(line) }
48
- last_stderr.split("\n").each { |line| @logger.debug(line) }
49
- end
50
- end
51
- end
52
36
  end
53
37
  end
@@ -46,7 +46,9 @@ module FlashFlow
46
46
 
47
47
  def backwards_compatible_store
48
48
  @backwards_compatible_store ||= begin
49
- hash = @store.get
49
+ hash = in_shadow_repo do
50
+ @store.get
51
+ end
50
52
 
51
53
  hash.has_key?('branches') ? hash : { 'branches' => hash }
52
54
  end
@@ -55,6 +57,14 @@ module FlashFlow
55
57
  def saved_branches
56
58
  Collection.from_hash(@git.remotes, backwards_compatible_store['branches']).to_a
57
59
  end
60
+
61
+ private
62
+
63
+ def in_shadow_repo
64
+ ShadowRepo.new(@git).in_dir do
65
+ yield
66
+ end
67
+ end
58
68
  end
59
69
  end
60
70
  end
@@ -20,14 +20,12 @@ module FlashFlow
20
20
  end
21
21
 
22
22
  def write(branches, file=nil)
23
- @git.in_dir do
23
+ @git.in_temp_merge_branch do
24
24
  file ||= File.open(@filename, 'w')
25
25
  file.puts JSON.pretty_generate(sort_branches(branches))
26
26
  file.close
27
- end
28
27
 
29
- @git.in_temp_merge_branch do
30
- @git.add_and_commit(@filename, 'Branch Info', add: {force: true})
28
+ @git.add_and_commit(@filename, 'Branch Info', add: { force: true })
31
29
  end
32
30
  end
33
31
 
@@ -18,8 +18,7 @@ module FlashFlow
18
18
  @rerere_forget = opts[:rerere_forget]
19
19
  @stories = [opts[:stories]].flatten.compact
20
20
 
21
- @local_git = Git.new(Config.configuration.git, logger)
22
- @git = ShadowGit.new(Config.configuration.git, logger)
21
+ @git = Git.new(Config.configuration.git, logger)
23
22
  @lock = Lock::Base.new(Config.configuration.lock)
24
23
  @notifier = Notifier::Base.new(Config.configuration.notifier)
25
24
  @data = Data::Base.new(Config.configuration.branches, Config.configuration.branch_info_file, @git, logger: logger)
@@ -32,42 +31,45 @@ module FlashFlow
32
31
  def run
33
32
  check_version
34
33
  check_repo
35
- puts "Building #{@local_git.merge_branch}... Log can be found in #{FlashFlow::Config.configuration.log_file}"
36
- logger.info "\n\n### Beginning #{@local_git.merge_branch} merge ###\n\n"
34
+ puts "Building #{@git.merge_branch}... Log can be found in #{FlashFlow::Config.configuration.log_file}"
35
+ logger.info "\n\n### Beginning #{@git.merge_branch} merge ###\n\n"
36
+
37
37
 
38
38
  begin
39
39
  open_pull_request
40
40
 
41
- @lock.with_lock do
42
- @git.fetch(@git.merge_remote)
43
- @git.in_original_merge_branch do
44
- @git.initialize_rerere
45
- end
46
-
47
- @git.reset_temp_merge_branch
48
- @git.in_temp_merge_branch do
49
- merge_branches
50
- commit_branch_info
51
- commit_rerere
41
+ in_shadow_repo do
42
+ @lock.with_lock do
43
+ fetch(@git.merge_remote)
44
+ @git.in_original_merge_branch do
45
+ @git.initialize_rerere
46
+ end
47
+
48
+ @git.reset_temp_merge_branch
49
+ @git.in_temp_merge_branch do
50
+ merge_branches
51
+ commit_branch_info
52
+ commit_rerere
53
+ end
54
+
55
+ @git.copy_temp_to_merge_branch
56
+ @git.delete_temp_merge_branch
57
+ @git.push_merge_branch
52
58
  end
53
-
54
- @git.copy_temp_to_merge_branch
55
- @git.delete_temp_merge_branch
56
- @git.push_merge_branch
57
59
  end
58
60
 
59
61
  print_errors
60
- logger.info "### Finished #{@local_git.merge_branch} merge ###"
62
+ logger.info "### Finished #{@git.merge_branch} merge ###"
61
63
  rescue Lock::Error, OutOfSyncWithRemote => e
62
64
  puts 'Failure!'
63
65
  puts e.message
64
66
  ensure
65
- @local_git.run("checkout #{@local_git.working_branch}")
67
+ @git.run("checkout #{@git.working_branch}")
66
68
  end
67
69
  end
68
70
 
69
71
  def check_repo
70
- if @local_git.staged_and_working_dir_files.any?
72
+ if @git.staged_and_working_dir_files.any?
71
73
  raise RuntimeError.new('You have changes in your working directory. Please stash and try again')
72
74
  end
73
75
  end
@@ -110,7 +112,7 @@ module FlashFlow
110
112
  raise RuntimeError.new("No remote found for #{branch.remote_url}. Please run 'git remote add *your_remote_name* #{branch.remote_url}' and try again.")
111
113
  end
112
114
 
113
- @git.fetch(branch.remote)
115
+ fetch(branch.remote)
114
116
  git_merge(branch, branch.ref == @git.working_branch)
115
117
  end
116
118
  end
@@ -140,17 +142,17 @@ module FlashFlow
140
142
  end
141
143
 
142
144
  def open_pull_request
143
- return false if [@local_git.master_branch, @local_git.merge_branch].include?(@local_git.working_branch)
145
+ return false if [@git.master_branch, @git.merge_branch].include?(@git.working_branch)
144
146
 
145
147
  # TODO - This should use the actual remote for the branch we're on
146
- @local_git.push(@local_git.working_branch, force: @force)
147
- raise OutOfSyncWithRemote.new("Your branch is out of sync with the remote. If you want to force push, run 'flash_flow -f'") unless @local_git.last_success?
148
+ @git.push(@git.working_branch, force: @force)
149
+ raise OutOfSyncWithRemote.new("Your branch is out of sync with the remote. If you want to force push, run 'flash_flow -f'") unless @git.last_success?
148
150
 
149
151
  # TODO - This should use the actual remote for the branch we're on
150
152
  if @do_not_merge
151
- @data.remove_from_merge(@local_git.merge_remote, @local_git.working_branch)
153
+ @data.remove_from_merge(@git.merge_remote, @git.working_branch)
152
154
  else
153
- @data.add_to_merge(@local_git.merge_remote, @local_git.working_branch)
155
+ @data.add_to_merge(@git.merge_remote, @git.working_branch)
154
156
  end
155
157
  end
156
158
 
@@ -162,10 +164,10 @@ module FlashFlow
162
164
  errors = []
163
165
  branch_not_merged = nil
164
166
  @data.failures.each do |full_ref, failure|
165
- if failure.ref == @local_git.working_branch
166
- branch_not_merged = "ERROR: Your branch did not merge to #{@local_git.merge_branch}. Run 'flash_flow --resolve', fix the merge conflict(s) and then re-run this script\n"
167
+ if failure.ref == @git.working_branch
168
+ branch_not_merged = "ERROR: Your branch did not merge to #{@git.merge_branch}. Run 'flash_flow --resolve', fix the merge conflict(s) and then re-run this script\n"
167
169
  else
168
- errors << "WARNING: Unable to merge branch #{failure.remote}/#{failure.ref} to #{@local_git.merge_branch} due to conflicts."
170
+ errors << "WARNING: Unable to merge branch #{failure.remote}/#{failure.ref} to #{@git.merge_branch} due to conflicts."
169
171
  end
170
172
  end
171
173
  errors << branch_not_merged if branch_not_merged
@@ -177,5 +179,20 @@ module FlashFlow
177
179
  end
178
180
  end
179
181
 
182
+ private
183
+
184
+ def in_shadow_repo
185
+ ShadowRepo.new(@git, logger: logger).in_dir do
186
+ yield
187
+ end
188
+ end
189
+
190
+ def fetch(remote)
191
+ @fetched_remotes ||= {}
192
+ unless @fetched_remotes[remote]
193
+ @git.fetch(remote)
194
+ @fetched_remotes[remote] = true
195
+ end
196
+ end
180
197
  end
181
198
  end
@@ -1,5 +1,4 @@
1
1
  require 'flash_flow/cmd_runner'
2
- require 'shellwords'
3
2
 
4
3
  module FlashFlow
5
4
  class Git
@@ -23,12 +22,6 @@ module FlashFlow
23
22
  @working_branch = current_branch
24
23
  end
25
24
 
26
- def in_dir
27
- Dir.chdir(@cmd_runner.dir) do
28
- yield
29
- end
30
- end
31
-
32
25
  def last_stdout
33
26
  @cmd_runner.last_stdout
34
27
  end
@@ -41,8 +34,8 @@ module FlashFlow
41
34
  @cmd_runner.last_success?
42
35
  end
43
36
 
44
- def run(cmd, opts={})
45
- @cmd_runner.run("git #{cmd}", opts)
37
+ def run(cmd)
38
+ @cmd_runner.run("git #{cmd}")
46
39
  end
47
40
 
48
41
  def add_and_commit(files, message, opts={})
@@ -60,11 +53,7 @@ module FlashFlow
60
53
  end
61
54
 
62
55
  def fetch(remote)
63
- @fetched_remotes ||= {}
64
- unless @fetched_remotes[remote]
65
- run("fetch #{remote}")
66
- @fetched_remotes[remote] = true
67
- end
56
+ run("fetch #{remote}")
68
57
  end
69
58
 
70
59
  def master_branch_contains?(ref)
@@ -84,7 +73,7 @@ module FlashFlow
84
73
  end
85
74
 
86
75
  def read_file_from_merge_branch(filename)
87
- run("show #{merge_remote}/#{merge_branch}:#{filename}", log: CmdRunner::LOG_CMD)
76
+ run("show #{merge_remote}/#{merge_branch}:#{filename}")
88
77
  last_stdout
89
78
  end
90
79
 
@@ -124,11 +113,9 @@ module FlashFlow
124
113
  end
125
114
 
126
115
  def unresolved_conflicts
127
- in_dir do
128
- conflicted_files.map do |file|
129
- File.open(file) { |f| f.grep(/>>>>/) }.empty? ? nil : file
130
- end.compact
131
- end
116
+ conflicted_files.map do |file|
117
+ File.open(file) { |f| f.grep(/>>>>/) }.empty? ? nil : file
118
+ end.compact
132
119
  end
133
120
 
134
121
  def resolutions(files)
@@ -141,10 +128,10 @@ module FlashFlow
141
128
 
142
129
  # git rerere doesn't give you a deterministic way to determine which resolution was used
143
130
  def resolution_candidates(file)
144
- @cmd_runner.run("diff -q --from-file #{file} .git/rr-cache/*/postimage", log: CmdRunner::LOG_CMD)
131
+ @cmd_runner.run("diff -q --from-file #{file} .git/rr-cache/*/postimage")
145
132
  different_files = split_diff_lines(@cmd_runner.last_stdout)
146
133
 
147
- @cmd_runner.run('ls -la .git/rr-cache/*/postimage', log: CmdRunner::LOG_CMD)
134
+ @cmd_runner.run('ls -la .git/rr-cache/*/postimage')
148
135
  all_files = split_diff_lines(@cmd_runner.last_stdout)
149
136
 
150
137
  all_files - different_files
@@ -250,15 +237,14 @@ module FlashFlow
250
237
 
251
238
  def squash_commits
252
239
  # There are three commits created by flash flow that we don't need in the message
253
- run("log #{merge_remote}/#{merge_branch}..#{merge_branch}~3", log: CmdRunner::LOG_CMD)
240
+ run("log #{merge_remote}/#{merge_branch}..#{merge_branch}~3")
254
241
  log = last_stdout
255
242
 
256
243
  # Get all the files that differ between existing acceptance and new acceptance
257
244
  run("diff --name-only #{merge_remote}/#{merge_branch} #{merge_branch}")
258
245
  files = last_stdout.split("\n")
259
246
  run("reset #{merge_remote}/#{merge_branch}")
260
-
261
- run("add -f #{files.map { |f| "\"#{Shellwords.escape(f)}\"" }.join(" ")}")
247
+ run("add #{files.map { |f| "'#{f}'" }.join(" ")}")
262
248
 
263
249
  run("commit -m '#{commit_message(log)}'")
264
250
  end
@@ -55,7 +55,7 @@ module FlashFlow
55
55
  private
56
56
 
57
57
  def git
58
- @git ||= ShadowGit.new(Config.configuration.git, Config.configuration.logger)
58
+ @git ||= Git.new(Config.configuration.git, Config.configuration.logger)
59
59
  end
60
60
 
61
61
  def get_branches
@@ -7,7 +7,7 @@ module FlashFlow
7
7
 
8
8
  def initialize(issue_tracker_config, branches_config, branch_info_file, git_config, opts={})
9
9
  @issue_tracker = IssueTracker::Base.new(issue_tracker_config)
10
- @collection = Data::Base.new(branches_config, branch_info_file, ShadowGit.new(git_config)).merged_branches
10
+ @collection = Data::Base.new(branches_config, branch_info_file, Git.new(git_config)).merged_branches
11
11
  end
12
12
 
13
13
  def status(filename=nil)
@@ -12,7 +12,7 @@ module FlashFlow
12
12
  @logger = opts[:logger]
13
13
  @branch_info_file = branch_info_file
14
14
  @cmd_runner = CmdRunner.new(logger: @logger)
15
- @git = ShadowGit.new(git_config, @logger)
15
+ @git = Git.new(git_config, @logger)
16
16
  end
17
17
 
18
18
  def manual_instructions
@@ -23,22 +23,24 @@ module FlashFlow
23
23
  def start
24
24
  check_for_conflict
25
25
 
26
- in_working_branch do
27
- merge_conflicted
26
+ in_shadow_repo do
27
+ in_working_branch do
28
+ merge_conflicted
28
29
 
29
- if unresolved_conflicts.empty?
30
- puts "You have already resolved all conflicts."
31
- else
32
- launch_bash
30
+ if unresolved_conflicts.empty?
31
+ puts "You have already resolved all conflicts."
32
+ else
33
+ launch_bash
33
34
 
34
- rerere
35
+ rerere
35
36
 
36
- unless unresolved_conflicts.empty?
37
- puts "There are still unresolved conflicts in these files:\n#{unresolved_conflicts.join("\n")}\n\n"
37
+ unless unresolved_conflicts.empty?
38
+ puts "There are still unresolved conflicts in these files:\n#{unresolved_conflicts.join("\n")}\n\n"
39
+ end
38
40
  end
39
- end
40
41
 
41
- git_reset
42
+ git_reset
43
+ end
42
44
  end
43
45
  end
44
46
 
@@ -100,27 +102,42 @@ Run the following commands to fix the merge conflict and then re-run flash_flow:
100
102
  private
101
103
 
102
104
  def data
103
- @data ||= Data::Base.new({}, @branch_info_file, @git, logger: @logger)
105
+ return @data if @data
106
+
107
+ in_shadow_repo do
108
+ @data = Data::Base.new({}, @branch_info_file, @git, logger: @logger)
109
+ end
110
+
111
+ @data
112
+
104
113
  end
105
114
 
106
115
  def branch
107
116
  @branch ||= data.saved_branches.detect { |branch| branch.ref == working_branch }
108
117
  end
109
118
 
119
+ def shadow_repo
120
+ @shadow_repo ||= ShadowRepo.new(@git, logger: @logger)
121
+ end
122
+
123
+ def in_shadow_repo
124
+ shadow_repo.in_dir do
125
+ yield
126
+ end
127
+ end
128
+
110
129
  def working_branch
111
130
  @git.working_branch
112
131
  end
113
132
 
114
133
  def in_working_branch
115
- @git.in_dir do
116
- @git.in_branch(working_branch) do
117
- yield
118
- end
134
+ @git.in_branch(working_branch) do
135
+ yield
119
136
  end
120
137
  end
121
138
 
122
139
  def flash_flow_directory
123
- @git.flash_flow_dir
140
+ shadow_repo.flash_flow_dir
124
141
  end
125
142
 
126
143
  def init_file_contents
@@ -3,17 +3,24 @@ require 'logger'
3
3
  require 'flash_flow/git'
4
4
 
5
5
  module FlashFlow
6
- class ShadowGit < Git
6
+ class ShadowRepo
7
7
 
8
- def initialize(config, logger=nil)
9
- super
10
8
 
9
+ def initialize(git, opts={})
10
+ @git = git
11
+ @cmd_runner = CmdRunner.new(logger: opts[:logger])
12
+ end
13
+
14
+ def in_dir(opts={})
15
+ opts = { reset: true, go_back: true }.merge(opts)
11
16
  create_shadow_repo
12
- @cmd_runner.dir = flash_flow_dir
13
17
 
14
- run("clean -x -f")
15
- fetch(merge_remote)
16
- run("reset --hard HEAD")
18
+ Dir.chdir(flash_flow_dir) do
19
+ @git.fetch(@git.merge_remote)
20
+ @git.run("reset --hard HEAD") if opts[:reset]
21
+
22
+ yield
23
+ end
17
24
  end
18
25
 
19
26
  def create_shadow_repo
@@ -1,3 +1,3 @@
1
1
  module FlashFlow
2
- VERSION = "1.2.2.a"
2
+ VERSION = "1.2.2"
3
3
  end
@@ -63,9 +63,6 @@ module FlashFlow
63
63
  def read_file_from_merge_branch; end
64
64
  def add_and_commit(_,_,_=nil); end
65
65
 
66
- def in_dir
67
- yield
68
- end
69
66
  def in_temp_merge_branch
70
67
  yield
71
68
  end
@@ -59,7 +59,7 @@ module FlashFlow
59
59
 
60
60
  current_branch_error = "ERROR: Your branch did not merge to test_acceptance. Run 'flash_flow --resolve', fix the merge conflict(s) and then re-run this script\n"
61
61
 
62
- @deploy.instance_variable_get('@local_git'.to_sym).stub(:working_branch, 'pushing_branch') do
62
+ @deploy.instance_variable_get('@git'.to_sym).stub(:working_branch, 'pushing_branch') do
63
63
  assert_equal(current_branch_error, @deploy.format_errors)
64
64
  end
65
65
  end
@@ -73,10 +73,12 @@ module FlashFlow
73
73
  end
74
74
 
75
75
  def test_check_out_to_working_branch
76
- @deploy.stub(:check_repo, true) do
77
- @deploy.stub(:check_version, true) do
78
- Lock::Base.stub_any_instance(:with_lock, -> { raise Lock::Error }) do
79
- assert_output(/Failure!/) { @deploy.run }
76
+ @deploy.stub(:in_shadow_repo, true) do
77
+ @deploy.stub(:check_repo, true) do
78
+ @deploy.stub(:check_version, true) do
79
+ Lock::Base.stub_any_instance(:with_lock, -> { raise Lock::Error }) do
80
+ assert_output(/Failure!/) { @deploy.run }
81
+ end
80
82
  end
81
83
  end
82
84
  end
@@ -135,7 +137,7 @@ module FlashFlow
135
137
 
136
138
  def test_ignore_pushing_master_or_acceptance
137
139
  ['test_master', 'test_acceptance'].each do |branch|
138
- @deploy.instance_variable_get('@local_git'.to_sym).stub(:working_branch, branch) do
140
+ @deploy.instance_variable_get('@git'.to_sym).stub(:working_branch, branch) do
139
141
  refute(@deploy.open_pull_request)
140
142
  end
141
143
  end
data/test/lib/test_git.rb CHANGED
@@ -40,15 +40,15 @@ module FlashFlow
40
40
  @cmd_runner.expect(:run, true, ['rm -rf rr-cache/*'])
41
41
  @cmd_runner.expect(:run, true, ['cp -R .git/rr-cache/xyz rr-cache/'])
42
42
  @cmd_runner.expect(:run, true, ['cp -R .git/rr-cache/abc rr-cache/'])
43
- @cmd_runner.expect(:run, true, ['git add rr-cache/', {}])
44
- @cmd_runner.expect(:run, true, ["git commit -m 'Update rr-cache'", {}])
43
+ @cmd_runner.expect(:run, true, ['git add rr-cache/'])
44
+ @cmd_runner.expect(:run, true, ["git commit -m 'Update rr-cache'"])
45
45
 
46
46
  instance.commit_rerere(['xyz', 'abc'])
47
47
  @cmd_runner.verify
48
48
  end
49
49
 
50
50
  def test_read_file_from_merge_branch
51
- @cmd_runner.expect(:run, true, ["git show origin/acceptance:SomeFilename.txt", log: CmdRunner::LOG_CMD])
51
+ @cmd_runner.expect(:run, true, ["git show origin/acceptance:SomeFilename.txt"])
52
52
  @cmd_runner.expect(:last_stdout, 'some_json', [])
53
53
  @git_args['use_rerere'] = false
54
54
 
@@ -65,7 +65,7 @@ module FlashFlow
65
65
 
66
66
  def setup_cmd_runner
67
67
  cmd_runner = Minitest::Mock.new
68
- cmd_runner.expect(:run, true, ['git rev-parse --abbrev-ref HEAD', {}])
68
+ cmd_runner.expect(:run, true, ['git rev-parse --abbrev-ref HEAD'])
69
69
  cmd_runner.expect(:last_stdout, 'current_branch', [])
70
70
  cmd_runner
71
71
  end
@@ -4,6 +4,10 @@ module FlashFlow
4
4
  class TestResolve< Minitest::Test
5
5
 
6
6
  class ResolveTester < Resolve
7
+ def in_shadow_repo
8
+ yield
9
+ end
10
+
7
11
  def in_working_branch
8
12
  yield
9
13
  end
@@ -67,5 +71,30 @@ module FlashFlow
67
71
  end
68
72
  end
69
73
 
74
+
75
+
76
+ # def start
77
+ # if unresolved_conflicts.empty?
78
+ # puts "You have already resolved all conflicts."
79
+ # else
80
+ # launch_bash
81
+ # @git.run("rerere")
82
+ #
83
+ # unless unresolved_conflicts.empty?
84
+ # puts "There are still unresolved conflicts in these files:\n#{unresolved_conflicts.join("\n")}\n\n"
85
+ # end
86
+ # end
87
+ #
88
+ # @git.run("reset --hard HEAD")
89
+ # end
90
+ # end
91
+ # end
92
+
93
+
94
+ private
95
+
96
+ def shadow_repo
97
+ Minitest::Mock.new.expect(:in_dir, true)
98
+ end
70
99
  end
71
100
  end
@@ -7,13 +7,11 @@ ENV['GH_TOKEN'] = 'fake_token'
7
7
  class Minitest::Test
8
8
 
9
9
  class TestCmdRunner < Minitest::Mock
10
- LOG_NONE = :log_none
11
- LOG_CMD = :log_cmd
12
-
13
10
  def initialize(opts={}); super(); end
14
- def run(_, opts={}); end
15
- def last_success?; true; end
16
- def dir=(other); other; end
11
+ def run(_); end
12
+ def last_success?
13
+ true
14
+ end
17
15
  def last_stdout; ''; end
18
16
  def last_stderr; ''; end
19
17
  def last_command; ''; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flash_flow
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2.a
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flashfunders
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-25 00:00:00.000000000 Z
11
+ date: 2015-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit
@@ -201,7 +201,6 @@ files:
201
201
  - test/lib/test_notifier.rb
202
202
  - test/lib/test_resolve.rb
203
203
  - test/minitest_helper.rb
204
- - update_gem.sh
205
204
  homepage: https://github.com/FlashFunders/flash_flow
206
205
  licenses:
207
206
  - MIT
@@ -217,9 +216,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
216
  version: '0'
218
217
  required_rubygems_version: !ruby/object:Gem::Requirement
219
218
  requirements:
220
- - - ">"
219
+ - - ">="
221
220
  - !ruby/object:Gem::Version
222
- version: 1.3.1
221
+ version: '0'
223
222
  requirements: []
224
223
  rubyforge_project:
225
224
  rubygems_version: 2.2.2
data/update_gem.sh DELETED
@@ -1,5 +0,0 @@
1
- gem uninstall -x flash_flow
2
- gem build flash_flow.gemspec
3
- export VERSION=`ruby -r./lib/flash_flow/version -e "puts FlashFlow::VERSION"`
4
- gem install flash_flow-$VERSION.gem --no-ri --no-rdoc
5
- rbenv rehash