flash_flow 1.2.2.a → 1.2.2

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 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