lolcommits 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ 0.3.3 (26 November 2012)
2
+ * BUG: prevent repeated firing of lolcommits capture during a git rebase.
3
+
1
4
  0.3.2 (3 October 2012)
2
5
  * Twitter posting support via the `twitter` plugin! (thx @coyboyrushforth!)
3
6
 
@@ -15,37 +15,10 @@ Feature: Bug regression testing
15
15
  #
16
16
  # issue #68, https://github.com/mroth/lolcommits/issues/68
17
17
  #
18
- #@focus
19
- #Scenario: Don't trigger capture during a git rebase
20
- # Given I am in a git repository named "yuh8history" with lolcommits enabled
21
- # And I do a git commit
22
- # And I successfully run `git tag 'vA'`
23
- # And I do a git commit
24
- # And I successfully run `git tag 'vB'`
25
- # And I do a git commit
26
- # And I successfully run `git tag 'vC'`
27
- # And I do a git commit
28
- # And I successfully run `git tag 'vD'`
29
- # And I do a git commit
30
- # And I successfully run `git tag 'vE'`
31
- # And I do a git commit
32
- # And I successfully run `git tag 'vF'`
33
- # And I successfully run `git checkout vB`
34
- # And I successfully run `git reset --soft master`
35
- # And I successfully run `git merge --squash vD`
36
- # When I successfully run `git rebase --onto $(cat .git/HEAD) vE vF`
37
- # # When I successfully run `git rebase placeholder`
38
- # Then there should be 4 commit entries in the git log
39
- # # But there should be exactly 5 jpgs in "../.lolcommits/yuh8history"
40
-
41
- # Given I am in a git repository named "yuh8history" with lolcommits enabled
42
- # And I do 2 git commits
43
- # And I successfully run `git branch middle`
44
- # And I do 2 git commits
45
- # And I successfully run `git branch placeholder`
46
- # And I successfully run `git checkout middle`
47
- # And I do 2 git commits
48
- # When I successfully run `git rebase placeholder`
49
- # Then there should be 6 commit entries in the git log
50
- # But there should be exactly 6 jpgs in "../.lolcommits/yuh8history"
51
-
18
+ @fake-interactive-rebase @slow_process
19
+ Scenario: Don't trigger capture during a git rebase
20
+ Given I am in a git repository named "yuh8history" with lolcommits enabled
21
+ And I do 6 git commits
22
+ When I successfully run `git rebase -i HEAD~5`
23
+ # Then there should be 4 commit entries in the git log
24
+ Then there should be exactly 6 jpgs in "../.lolcommits/yuh8history"
@@ -87,10 +87,12 @@ end
87
87
  When /^I do (\d+) git commits$/ do |n|
88
88
  n.to_i.times do
89
89
  step %{I do a git commit}
90
+ sleep 0.1
90
91
  end
91
92
  end
92
93
 
93
94
  Then /^there should be (\d+) commit entries in the git log$/ do |n|
94
- #sleep 1
95
+ sleep 1 #let the file writing catch up
95
96
  assert_equal n.to_i, `git shortlog | grep -E '^[ ]+\w+' | wc -l`.chomp.to_i
96
97
  end
98
+
@@ -35,3 +35,19 @@ After do
35
35
  ENV['HOME'] = @original_home
36
36
  ENV['LAUNCHY_DRY_RUN'] = nil
37
37
  end
38
+
39
+ Before('@fake-interactive-rebase') do
40
+ # in order to fake an interactive rebase,
41
+ # we replace the editor with a script that simply squashes a few random commits
42
+ @original_git_editor = ENV['GIT_EDITOR']
43
+ # ENV['GIT_EDITOR'] = "sed -i -e 'n;s/pick/squash/g'" #every other commit
44
+ ENV['GIT_EDITOR'] = "sed -i -e '3,5 s/pick/squash/g'" #lines 3-5
45
+ end
46
+
47
+ After('@fake-interactive-rebase') do
48
+ ENV['GIT_EDITOR'] = @original_git_editor
49
+ end
50
+
51
+ Before('@slow_process') do
52
+ @aruba_io_wait_seconds = 3
53
+ end
@@ -1,12 +1,13 @@
1
1
  module Lolcommits
2
2
  class GitInfo
3
- attr_accessor :sha, :message
3
+ attr_accessor :sha, :message, :repo_internal_path
4
4
  def initialize
5
- git = Git.open('.')
6
- commit = git.log.first
5
+ g = Git.open('.')
6
+ commit = g.log.first
7
7
 
8
8
  self.message = commit.message.split("\n").first
9
9
  self.sha = commit.sha[0..10]
10
+ self.repo_internal_path = g.repo.path
10
11
  end
11
12
  end
12
13
  end
@@ -4,7 +4,7 @@ module Lolcommits
4
4
 
5
5
  class Runner
6
6
  attr_accessor :capture_delay, :capture_device, :message, :sha,
7
- :snapshot_loc, :main_image, :repo, :config
7
+ :snapshot_loc, :main_image, :repo, :config, :repo_internal_path
8
8
 
9
9
  include ActiveSupport::Callbacks
10
10
  define_callbacks :run
@@ -27,10 +27,13 @@ module Lolcommits
27
27
  git_info = GitInfo.new
28
28
  self.sha = git_info.sha if self.sha.nil?
29
29
  self.message = git_info.message if self.message.nil?
30
+ self.repo_internal_path = git_info.repo_internal_path
30
31
  end
31
32
  end
32
33
 
33
34
  def run
35
+ die_if_rebasing!
36
+
34
37
  run_callbacks :run do
35
38
  puts "*** Preserving this moment in history."
36
39
  self.snapshot_loc = self.config.raw_image
@@ -47,6 +50,14 @@ module Lolcommits
47
50
  end
48
51
 
49
52
  protected
53
+ def die_if_rebasing!
54
+ if not self.repo_internal_path.nil?
55
+ mergeclue = File.join self.repo_internal_path, "rebase-merge"
56
+ if File.directory? mergeclue
57
+ exit 0
58
+ end
59
+ end
60
+ end
50
61
 
51
62
  def resize_snapshot!
52
63
  canvas = ImageList.new(self.snapshot_loc)
@@ -1,3 +1,3 @@
1
1
  module Lolcommits
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
27
27
 
28
28
  s.add_development_dependency('rdoc')
29
29
  s.add_development_dependency('aruba')
30
- s.add_development_dependency('rake','~> 0.9.2')
30
+ s.add_development_dependency('rake','~> 10.0.2')
31
31
  s.add_development_dependency('fivemat')
32
32
  s.add_development_dependency('faker')
33
33
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lolcommits
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-03 00:00:00.000000000 Z
12
+ date: 2012-11-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rmagick
@@ -146,7 +146,7 @@ dependencies:
146
146
  requirements:
147
147
  - - ~>
148
148
  - !ruby/object:Gem::Version
149
- version: 0.9.2
149
+ version: 10.0.2
150
150
  type: :development
151
151
  prerelease: false
152
152
  version_requirements: !ruby/object:Gem::Requirement
@@ -154,7 +154,7 @@ dependencies:
154
154
  requirements:
155
155
  - - ~>
156
156
  - !ruby/object:Gem::Version
157
- version: 0.9.2
157
+ version: 10.0.2
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: fivemat
160
160
  requirement: !ruby/object:Gem::Requirement
@@ -316,12 +316,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
316
316
  - - ! '>='
317
317
  - !ruby/object:Gem::Version
318
318
  version: '0'
319
+ segments:
320
+ - 0
321
+ hash: -395206904349173535
319
322
  required_rubygems_version: !ruby/object:Gem::Requirement
320
323
  none: false
321
324
  requirements:
322
325
  - - ! '>='
323
326
  - !ruby/object:Gem::Version
324
327
  version: '0'
328
+ segments:
329
+ - 0
330
+ hash: -395206904349173535
325
331
  requirements: []
326
332
  rubyforge_project: lolcommits
327
333
  rubygems_version: 1.8.24