gitcycle 0.2.13 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -146,6 +146,13 @@ Gitcycle automatically knows if you are checking out an upstream branch:
146
146
  Todo
147
147
  ----
148
148
 
149
+ * Conflict recording not working
150
+ * Add comment on lighthouse with issue URL
151
+ * Allow QA branches to be created from any branch and allow any issue to merge into it
152
+ * Collab fork should change gitc ready to auo merge to the parent fork. gitc pull should pull from br and parent fork. gitc push should push to your same fork.
153
+ Lighthouse ticket changes to pending-qa if ticket is not the same as the parent.
154
+ * Hook to run after gitc qa pass, so I can write a script for amit that will auto merge master into rc
155
+ * gitc merge chrisped/branch-with-reverts # to quickly revert changes
149
156
  * Label issues with ticket milestone
150
157
  * Issues aren't assigned to people
151
158
  * Add comment on lighthouse with issue URL
@@ -156,5 +163,8 @@ Todo
156
163
  * Instead of detecting CONFLICT, use error status $? != 0
157
164
  * gitc ready - possibly do syntax checks
158
165
  $ gitc st - shortcut
159
- * There's still a Tagging Issue I tried to fix parseLabel http://d.pr/8eOS , Pass should remove Pending *, but remove the Branch Name. Also, when I gitc reviewed failed [issue number] it marks it pending-qa and failed.. not correct. I'll take a look at this over the weekend -Tung
160
- * gitc qa pass # since we're changing this to pass all the tickets, we need to loop through all the merged issues and update the lighthouse state to pending-qa
166
+ * issues aren't assigned to people
167
+ * There's still a Tagging Issue I tried to fix parseLabel http://d.pr/8eOS , Pass should remove Pending, but remove the Branch Name
168
+ * gitc qa pass 1234 # doesnt update lighthouse and screws up git issue tags
169
+ * [issue number] it marks it pending-qa and failed.. not correct. I'll take a look at this over the weekend -Tung
170
+ * gitc qa pass # since we're changing this to pass all the tickets, we need to loop through all the merged issues and update the lighthouse state to pending-qa
@@ -183,9 +183,11 @@ Scenario: QA issue
183
183
  When I cd to the owner repo
184
184
  And I checkout master
185
185
  And I execute gitcycle with "qa issue.id"
186
+ And I enter "y"
186
187
  Then gitcycle runs
187
188
  And output includes
188
189
  """
190
+ Do you want to create a QA branch from 'master'? (y/n)
189
191
  Retrieving branch information from gitcycle.
190
192
  Deleting old QA branch 'qa_master_config.user'.
191
193
  Adding remote repo 'config.owner/config.repo'.
@@ -201,6 +203,22 @@ Scenario: QA issue
201
203
  Type 'gitc qa fail' to reject all issues in this branch.
202
204
  """
203
205
 
206
+ Scenario: QA issue pass
207
+ When I cd to the owner repo
208
+ And I checkout qa_master_config.user
209
+ And I execute gitcycle with "qa pass"
210
+ Then gitcycle runs
211
+ And output includes
212
+ """
213
+ Retrieving branch information from gitcycle.
214
+ Checking out branch 'master'.
215
+ Adding remote repo 'config.user/config.repo'.
216
+ Fetching remote 'config.user'.
217
+ Merging remote branch 'ticket.id' from 'config.user/config.repo'.
218
+ Pushing branch 'master'.
219
+ Labeling all issues as 'Pass'.
220
+ """
221
+
204
222
  Scenario: QA issue list
205
223
  When I cd to the owner repo
206
224
  And I checkout master
@@ -175,6 +175,12 @@ Then /^gitcycle runs$/ do
175
175
  end
176
176
  end
177
177
 
178
+ Then /^gitcycle runs with exit$/ do
179
+ $execute.each do |cmd|
180
+ lambda { run_gitcycle(cmd) }.should raise_error SystemExit
181
+ end
182
+ end
183
+
178
184
  Then /^gitcycle\.yml should be valid$/ do
179
185
  gitcycle = YAML.load(File.read(GITCYCLE))
180
186
 
@@ -6,7 +6,7 @@ $:.unshift lib unless $:.include?(lib)
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "gitcycle"
9
- s.version = '0.2.13'
9
+ s.version = '0.2.14'
10
10
  s.platform = Gem::Platform::RUBY
11
11
  s.authors = [ 'Winton Welsh' ]
12
12
  s.email = [ 'mail@wintoni.us' ]
@@ -595,8 +595,14 @@ class Gitcycle
595
595
  if options[:qa_branch]
596
596
  qa_branch = options[:qa_branch]
597
597
  else
598
+ source = branches(:current => true)
599
+
600
+ unless yes?("\nDo you want to create a QA branch from '#{source}'?")
601
+ source = q("What branch would you like to base this QA branch off of?")
602
+ end
603
+
598
604
  puts "\nRetrieving branch information from gitcycle.\n".green
599
- qa_branch = get('qa_branch', 'issues' => issues)
605
+ qa_branch = get('qa_branch', 'issues' => issues, 'source' => source)
600
606
  end
601
607
 
602
608
  source = qa_branch['source']
@@ -623,16 +629,22 @@ class Gitcycle
623
629
  puts "\n"
624
630
  end
625
631
 
632
+ warnings = {}
633
+
626
634
  qa_branch['branches'][range].each do |branch|
627
635
  issue = branch['issue']
628
636
  owner, repo = branch['repo'].split(':')
629
637
  home = branch['home']
630
- branch = branch['branch']
638
+
639
+ if source != branch['source']
640
+ warnings[branch['source']] ||= []
641
+ warnings[branch['source']] << branch['issue']
642
+ end
631
643
 
632
644
  output = merge_remote_branch(
633
645
  :owner => home,
634
646
  :repo => repo,
635
- :branch => branch,
647
+ :branch => branch['branch'],
636
648
  :issue => issue,
637
649
  :issues => qa_branch['branches'].collect { |b| b['issue'] },
638
650
  :type => :to_qa
@@ -641,6 +653,17 @@ class Gitcycle
641
653
 
642
654
  puts "\nType '".yellow + "gitc qa pass".green + "' to approve all issues in this branch.\n".yellow
643
655
  puts "Type '".yellow + "gitc qa fail".red + "' to reject all issues in this branch.\n".yellow
656
+
657
+ unless warnings.empty?
658
+ puts "\n#{"WARNING:".red} If you pass this QA branch, the following branches will merge into '#{source.yellow}':\n"
659
+
660
+ warnings.each do |(branch, issues)|
661
+ issues.collect! { |issue| "##{issue}" }
662
+ puts " #{branch.yellow} (#{issues.join(', ')})"
663
+ end
664
+
665
+ puts "\nBe sure this is correct!\n".yellow
666
+ end
644
667
  end
645
668
  end
646
669
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitcycle
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 13
10
- version: 0.2.13
9
+ - 14
10
+ version: 0.2.14
11
11
  platform: ruby
12
12
  authors:
13
13
  - Winton Welsh
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-02-07 00:00:00 -08:00
18
+ date: 2012-02-13 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency