flash_flow 1.2.2 → 1.2.3.alpha

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: 480c4ebd2a6e87fca847937c52df8d2bcce3fe1b
4
- data.tar.gz: 17458d805ba1ff604dcab78567ff3c2d6b774db7
3
+ metadata.gz: 73df87f225f53804b6f04bc3974e7ad50a2e7593
4
+ data.tar.gz: 36469747a24560104ed64c357b64412ef7a0ef33
5
5
  SHA512:
6
- metadata.gz: f9c5c8288f8c367a4ec7bbe0b74f62bab3c3a446b1ade5a8d17486b2ff3c67463c4dcb496e2b1eeba8681391370a408c12642efdf5c01d271873c122e7c2be03
7
- data.tar.gz: 46b479386cd464a43668c16e231141754db19f49c5477bfe7daf44681d4b0aa3f15a9db0f65288c54ae7cf9a99297acfb55bc4c6e9ddbd001764de0875d1f901
6
+ metadata.gz: e6f194f1021154559949b9a1256d792aa90a2b385a96f0a6577bddad4b3d829e7a2ebd37a07e2073fc8e6feca552908f2a758b56a47805c0e5cf5605469477d6
7
+ data.tar.gz: 5ac260eae49b4b4d5d57a00a3a88956cb3c7368eb675b7331ea57af87c0c0e4d449b9e6421bab009512586b8d90ff713f477f58b43884555f267eb7dc9d32a72
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- flash_flow (1.2.2)
4
+ flash_flow (1.2.3.alpha)
5
5
  hipchat (~> 1.5)
6
6
  octokit (~> 4.1)
7
7
  pivotal-tracker (~> 0.5)
@@ -3,7 +3,11 @@ require 'open3'
3
3
 
4
4
  module FlashFlow
5
5
  class CmdRunner
6
- attr_reader :dry_run, :dir, :last_command, :last_stderr, :last_stdout
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
7
11
 
8
12
  def initialize(opts={})
9
13
  @dir = opts[:dir] || '.'
@@ -11,7 +15,7 @@ module FlashFlow
11
15
  @logger = opts[:logger] || Logger.new('/dev/null')
12
16
  end
13
17
 
14
- def run(cmd)
18
+ def run(cmd, opts={})
15
19
  @last_command = cmd
16
20
  if dry_run
17
21
  puts "#{dir}$ #{cmd}"
@@ -24,14 +28,26 @@ module FlashFlow
24
28
  @success = wait_thr.value.success?
25
29
  end
26
30
  end
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) }
31
+ log(cmd, opts[:log])
30
32
  end
31
33
  end
32
34
 
33
35
  def last_success?
34
36
  @success
35
37
  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
36
52
  end
37
53
  end
@@ -46,9 +46,7 @@ module FlashFlow
46
46
 
47
47
  def backwards_compatible_store
48
48
  @backwards_compatible_store ||= begin
49
- hash = in_shadow_repo do
50
- @store.get
51
- end
49
+ hash = @store.get
52
50
 
53
51
  hash.has_key?('branches') ? hash : { 'branches' => hash }
54
52
  end
@@ -57,14 +55,6 @@ module FlashFlow
57
55
  def saved_branches
58
56
  Collection.from_hash(@git.remotes, backwards_compatible_store['branches']).to_a
59
57
  end
60
-
61
- private
62
-
63
- def in_shadow_repo
64
- ShadowRepo.new(@git).in_dir do
65
- yield
66
- end
67
- end
68
58
  end
69
59
  end
70
60
  end
@@ -63,7 +63,7 @@ module FlashFlow
63
63
  branch = merged_branches[full_ref]
64
64
 
65
65
  branch.created_at = info.created_at
66
- branch.resolutions = branch.resolutions.to_h.merge(info.resolutions.to_h)
66
+ branch.resolutions = info.resolutions.to_h.merge(branch.resolutions.to_h)
67
67
  branch.stories = info.stories.to_a | merged_branches[full_ref].stories.to_a
68
68
  if branch.fail?
69
69
  branch.conflict_sha ||= info.conflict_sha
@@ -20,12 +20,14 @@ module FlashFlow
20
20
  end
21
21
 
22
22
  def write(branches, file=nil)
23
- @git.in_temp_merge_branch do
23
+ @git.in_dir do
24
24
  file ||= File.open(@filename, 'w')
25
25
  file.puts JSON.pretty_generate(sort_branches(branches))
26
26
  file.close
27
+ end
27
28
 
28
- @git.add_and_commit(@filename, 'Branch Info', add: { force: true })
29
+ @git.in_temp_merge_branch do
30
+ @git.add_and_commit(@filename, 'Branch Info', add: {force: true})
29
31
  end
30
32
  end
31
33
 
@@ -18,7 +18,8 @@ module FlashFlow
18
18
  @rerere_forget = opts[:rerere_forget]
19
19
  @stories = [opts[:stories]].flatten.compact
20
20
 
21
- @git = Git.new(Config.configuration.git, logger)
21
+ @local_git = Git.new(Config.configuration.git, logger)
22
+ @git = ShadowGit.new(Config.configuration.git, logger)
22
23
  @lock = Lock::Base.new(Config.configuration.lock)
23
24
  @notifier = Notifier::Base.new(Config.configuration.notifier)
24
25
  @data = Data::Base.new(Config.configuration.branches, Config.configuration.branch_info_file, @git, logger: logger)
@@ -31,45 +32,42 @@ module FlashFlow
31
32
  def run
32
33
  check_version
33
34
  check_repo
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
-
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"
37
37
 
38
38
  begin
39
39
  open_pull_request
40
40
 
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
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
58
52
  end
53
+
54
+ @git.copy_temp_to_merge_branch
55
+ @git.delete_temp_merge_branch
56
+ @git.push_merge_branch
59
57
  end
60
58
 
61
59
  print_errors
62
- logger.info "### Finished #{@git.merge_branch} merge ###"
60
+ logger.info "### Finished #{@local_git.merge_branch} merge ###"
63
61
  rescue Lock::Error, OutOfSyncWithRemote => e
64
62
  puts 'Failure!'
65
63
  puts e.message
66
64
  ensure
67
- @git.run("checkout #{@git.working_branch}")
65
+ @local_git.run("checkout #{@local_git.working_branch}")
68
66
  end
69
67
  end
70
68
 
71
69
  def check_repo
72
- if @git.staged_and_working_dir_files.any?
70
+ if @local_git.staged_and_working_dir_files.any?
73
71
  raise RuntimeError.new('You have changes in your working directory. Please stash and try again')
74
72
  end
75
73
  end
@@ -112,7 +110,7 @@ module FlashFlow
112
110
  raise RuntimeError.new("No remote found for #{branch.remote_url}. Please run 'git remote add *your_remote_name* #{branch.remote_url}' and try again.")
113
111
  end
114
112
 
115
- fetch(branch.remote)
113
+ @git.fetch(branch.remote)
116
114
  git_merge(branch, branch.ref == @git.working_branch)
117
115
  end
118
116
  end
@@ -142,17 +140,17 @@ module FlashFlow
142
140
  end
143
141
 
144
142
  def open_pull_request
145
- return false if [@git.master_branch, @git.merge_branch].include?(@git.working_branch)
143
+ return false if [@local_git.master_branch, @local_git.merge_branch].include?(@local_git.working_branch)
146
144
 
147
145
  # TODO - This should use the actual remote for the branch we're on
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?
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?
150
148
 
151
149
  # TODO - This should use the actual remote for the branch we're on
152
150
  if @do_not_merge
153
- @data.remove_from_merge(@git.merge_remote, @git.working_branch)
151
+ @data.remove_from_merge(@local_git.merge_remote, @local_git.working_branch)
154
152
  else
155
- @data.add_to_merge(@git.merge_remote, @git.working_branch)
153
+ @data.add_to_merge(@local_git.merge_remote, @local_git.working_branch)
156
154
  end
157
155
  end
158
156
 
@@ -164,10 +162,10 @@ module FlashFlow
164
162
  errors = []
165
163
  branch_not_merged = nil
166
164
  @data.failures.each do |full_ref, failure|
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"
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"
169
167
  else
170
- errors << "WARNING: Unable to merge branch #{failure.remote}/#{failure.ref} to #{@git.merge_branch} due to conflicts."
168
+ errors << "WARNING: Unable to merge branch #{failure.remote}/#{failure.ref} to #{@local_git.merge_branch} due to conflicts."
171
169
  end
172
170
  end
173
171
  errors << branch_not_merged if branch_not_merged
@@ -179,20 +177,5 @@ module FlashFlow
179
177
  end
180
178
  end
181
179
 
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
197
180
  end
198
181
  end
@@ -1,4 +1,5 @@
1
1
  require 'flash_flow/cmd_runner'
2
+ require 'shellwords'
2
3
 
3
4
  module FlashFlow
4
5
  class Git
@@ -22,6 +23,12 @@ module FlashFlow
22
23
  @working_branch = current_branch
23
24
  end
24
25
 
26
+ def in_dir
27
+ Dir.chdir(@cmd_runner.dir) do
28
+ yield
29
+ end
30
+ end
31
+
25
32
  def last_stdout
26
33
  @cmd_runner.last_stdout
27
34
  end
@@ -34,8 +41,8 @@ module FlashFlow
34
41
  @cmd_runner.last_success?
35
42
  end
36
43
 
37
- def run(cmd)
38
- @cmd_runner.run("git #{cmd}")
44
+ def run(cmd, opts={})
45
+ @cmd_runner.run("git #{cmd}", opts)
39
46
  end
40
47
 
41
48
  def add_and_commit(files, message, opts={})
@@ -53,7 +60,11 @@ module FlashFlow
53
60
  end
54
61
 
55
62
  def fetch(remote)
56
- run("fetch #{remote}")
63
+ @fetched_remotes ||= {}
64
+ unless @fetched_remotes[remote]
65
+ run("fetch #{remote}")
66
+ @fetched_remotes[remote] = true
67
+ end
57
68
  end
58
69
 
59
70
  def master_branch_contains?(ref)
@@ -73,7 +84,7 @@ module FlashFlow
73
84
  end
74
85
 
75
86
  def read_file_from_merge_branch(filename)
76
- run("show #{merge_remote}/#{merge_branch}:#{filename}")
87
+ run("show #{merge_remote}/#{merge_branch}:#{filename}", log: CmdRunner::LOG_CMD)
77
88
  last_stdout
78
89
  end
79
90
 
@@ -113,9 +124,11 @@ module FlashFlow
113
124
  end
114
125
 
115
126
  def unresolved_conflicts
116
- conflicted_files.map do |file|
117
- File.open(file) { |f| f.grep(/>>>>/) }.empty? ? nil : file
118
- end.compact
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
119
132
  end
120
133
 
121
134
  def resolutions(files)
@@ -128,10 +141,10 @@ module FlashFlow
128
141
 
129
142
  # git rerere doesn't give you a deterministic way to determine which resolution was used
130
143
  def resolution_candidates(file)
131
- @cmd_runner.run("diff -q --from-file #{file} .git/rr-cache/*/postimage")
144
+ @cmd_runner.run("diff -q --from-file #{file} .git/rr-cache/*/postimage", log: CmdRunner::LOG_CMD)
132
145
  different_files = split_diff_lines(@cmd_runner.last_stdout)
133
146
 
134
- @cmd_runner.run('ls -la .git/rr-cache/*/postimage')
147
+ @cmd_runner.run('ls -la .git/rr-cache/*/postimage', log: CmdRunner::LOG_CMD)
135
148
  all_files = split_diff_lines(@cmd_runner.last_stdout)
136
149
 
137
150
  all_files - different_files
@@ -237,14 +250,15 @@ module FlashFlow
237
250
 
238
251
  def squash_commits
239
252
  # There are three commits created by flash flow that we don't need in the message
240
- run("log #{merge_remote}/#{merge_branch}..#{merge_branch}~3")
253
+ run("log #{merge_remote}/#{merge_branch}..#{merge_branch}~3", log: CmdRunner::LOG_CMD)
241
254
  log = last_stdout
242
255
 
243
256
  # Get all the files that differ between existing acceptance and new acceptance
244
257
  run("diff --name-only #{merge_remote}/#{merge_branch} #{merge_branch}")
245
258
  files = last_stdout.split("\n")
246
259
  run("reset #{merge_remote}/#{merge_branch}")
247
- run("add #{files.map { |f| "'#{f}'" }.join(" ")}")
260
+
261
+ run("add -f #{files.map { |f| "\"#{Shellwords.escape(f)}\"" }.join(" ")}")
248
262
 
249
263
  run("commit -m '#{commit_message(log)}'")
250
264
  end
@@ -55,7 +55,7 @@ module FlashFlow
55
55
  private
56
56
 
57
57
  def git
58
- @git ||= Git.new(Config.configuration.git, Config.configuration.logger)
58
+ @git ||= ShadowGit.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, Git.new(git_config)).merged_branches
10
+ @collection = Data::Base.new(branches_config, branch_info_file, ShadowGit.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 = Git.new(git_config, @logger)
15
+ @git = ShadowGit.new(git_config, @logger)
16
16
  end
17
17
 
18
18
  def manual_instructions
@@ -23,24 +23,22 @@ module FlashFlow
23
23
  def start
24
24
  check_for_conflict
25
25
 
26
- in_shadow_repo do
27
- in_working_branch do
28
- merge_conflicted
26
+ in_working_branch do
27
+ merge_conflicted
29
28
 
30
- if unresolved_conflicts.empty?
31
- puts "You have already resolved all conflicts."
32
- else
33
- launch_bash
29
+ if unresolved_conflicts.empty?
30
+ puts "You have already resolved all conflicts."
31
+ else
32
+ launch_bash
34
33
 
35
- rerere
34
+ rerere
36
35
 
37
- unless unresolved_conflicts.empty?
38
- puts "There are still unresolved conflicts in these files:\n#{unresolved_conflicts.join("\n")}\n\n"
39
- end
36
+ unless unresolved_conflicts.empty?
37
+ puts "There are still unresolved conflicts in these files:\n#{unresolved_conflicts.join("\n")}\n\n"
40
38
  end
41
-
42
- git_reset
43
39
  end
40
+
41
+ git_reset
44
42
  end
45
43
  end
46
44
 
@@ -102,42 +100,27 @@ Run the following commands to fix the merge conflict and then re-run flash_flow:
102
100
  private
103
101
 
104
102
  def data
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
-
103
+ @data ||= Data::Base.new({}, @branch_info_file, @git, logger: @logger)
113
104
  end
114
105
 
115
106
  def branch
116
107
  @branch ||= data.saved_branches.detect { |branch| branch.ref == working_branch }
117
108
  end
118
109
 
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
-
129
110
  def working_branch
130
111
  @git.working_branch
131
112
  end
132
113
 
133
114
  def in_working_branch
134
- @git.in_branch(working_branch) do
135
- yield
115
+ @git.in_dir do
116
+ @git.in_branch(working_branch) do
117
+ yield
118
+ end
136
119
  end
137
120
  end
138
121
 
139
122
  def flash_flow_directory
140
- shadow_repo.flash_flow_dir
123
+ @git.flash_flow_dir
141
124
  end
142
125
 
143
126
  def init_file_contents
@@ -3,24 +3,17 @@ require 'logger'
3
3
  require 'flash_flow/git'
4
4
 
5
5
  module FlashFlow
6
- class ShadowRepo
6
+ class ShadowGit < Git
7
7
 
8
+ def initialize(config, logger=nil)
9
+ super
8
10
 
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)
16
11
  create_shadow_repo
12
+ @cmd_runner.dir = flash_flow_dir
17
13
 
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
14
+ run("clean -x -f")
15
+ fetch(merge_remote)
16
+ run("reset --hard HEAD")
24
17
  end
25
18
 
26
19
  def create_shadow_repo
@@ -1,3 +1,3 @@
1
1
  module FlashFlow
2
- VERSION = "1.2.2"
2
+ VERSION = "1.2.3.alpha"
3
3
  end
@@ -63,6 +63,9 @@ 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
66
69
  def in_temp_merge_branch
67
70
  yield
68
71
  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('@git'.to_sym).stub(:working_branch, 'pushing_branch') do
62
+ @deploy.instance_variable_get('@local_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,12 +73,10 @@ module FlashFlow
73
73
  end
74
74
 
75
75
  def test_check_out_to_working_branch
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
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 }
82
80
  end
83
81
  end
84
82
  end
@@ -137,7 +135,7 @@ module FlashFlow
137
135
 
138
136
  def test_ignore_pushing_master_or_acceptance
139
137
  ['test_master', 'test_acceptance'].each do |branch|
140
- @deploy.instance_variable_get('@git'.to_sym).stub(:working_branch, branch) do
138
+ @deploy.instance_variable_get('@local_git'.to_sym).stub(:working_branch, branch) do
141
139
  refute(@deploy.open_pull_request)
142
140
  end
143
141
  end
@@ -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"])
51
+ @cmd_runner.expect(:run, true, ["git show origin/acceptance:SomeFilename.txt", log: CmdRunner::LOG_CMD])
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,10 +4,6 @@ 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
-
11
7
  def in_working_branch
12
8
  yield
13
9
  end
@@ -71,30 +67,5 @@ module FlashFlow
71
67
  end
72
68
  end
73
69
 
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
99
70
  end
100
71
  end
@@ -7,11 +7,13 @@ 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
+
10
13
  def initialize(opts={}); super(); end
11
- def run(_); end
12
- def last_success?
13
- true
14
- end
14
+ def run(_, opts={}); end
15
+ def last_success?; true; end
16
+ def dir=(other); other; end
15
17
  def last_stdout; ''; end
16
18
  def last_stderr; ''; end
17
19
  def last_command; ''; end
@@ -0,0 +1,5 @@
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
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
4
+ version: 1.2.3.alpha
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-16 00:00:00.000000000 Z
11
+ date: 2015-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit
@@ -201,6 +201,7 @@ 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
204
205
  homepage: https://github.com/FlashFunders/flash_flow
205
206
  licenses:
206
207
  - MIT
@@ -216,9 +217,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
217
  version: '0'
217
218
  required_rubygems_version: !ruby/object:Gem::Requirement
218
219
  requirements:
219
- - - ">="
220
+ - - ">"
220
221
  - !ruby/object:Gem::Version
221
- version: '0'
222
+ version: 1.3.1
222
223
  requirements: []
223
224
  rubyforge_project:
224
225
  rubygems_version: 2.2.2