gglog 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +9 -0
- data/CHANGELOG +5 -0
- data/Gemfile.lock +1 -1
- data/README.md +2 -3
- data/features/list.feature +2 -4
- data/features/register.feature +8 -2
- data/features/search.feature +3 -5
- data/features/show.feature +7 -5
- data/features/step_definitions/gglog_steps.rb +30 -3
- data/features/support/archived_test_repository.rb +14 -0
- data/features/support/data/gglog_test_repository.tar.gz +0 -0
- data/features/support/data/gglog_test_repository_no_master_branch.tar.gz +0 -0
- data/features/sync.feature +14 -0
- data/lib/gglog.rb +1 -1
- data/lib/gglog/command.rb +3 -4
- data/lib/gglog/commit_message_decorator.rb +0 -4
- data/lib/gglog/repository.rb +5 -4
- data/lib/gglog/version.rb +1 -1
- metadata +31 -22
data/.travis.yml
ADDED
data/CHANGELOG
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# gglog
|
1
|
+
# gglog [![Build Status](https://secure.travis-ci.org/snoozer05/gglog.png)](http://travis-ci.org/snoozer05/gglog)
|
2
2
|
|
3
3
|
gglog is your partner for finding a good commit message.
|
4
4
|
|
@@ -28,7 +28,7 @@ gglog is your partner for finding a good commit message.
|
|
28
28
|
|
29
29
|
## Usage
|
30
30
|
|
31
|
-
Register github projects to your
|
31
|
+
Register github projects to your search targets:
|
32
32
|
|
33
33
|
% gglog register https://github.com/rails/rails.git
|
34
34
|
|
@@ -60,7 +60,6 @@ I recommend you to use gglog in combination with [Clam.vim](https://github.com/s
|
|
60
60
|
## Todo
|
61
61
|
|
62
62
|
- Improve commit message filter
|
63
|
-
- Add diff to result of 'show'
|
64
63
|
- Translate Motivation section to English
|
65
64
|
|
66
65
|
---
|
data/features/list.feature
CHANGED
@@ -2,8 +2,6 @@
|
|
2
2
|
フィーチャ: 登録しているGitリポジトリを確認したい
|
3
3
|
|
4
4
|
シナリオ: 登録済みのGitリポジトリを一覧できること
|
5
|
-
前提
|
6
|
-
| URL |
|
7
|
-
| https://github.com/snoozer05/gglog.git |
|
5
|
+
前提 テスト用のGitリポジトリ"gglog_test_repository"が登録されている
|
8
6
|
もし list サブコマンドを実行する
|
9
|
-
ならば 一覧に"
|
7
|
+
ならば 一覧に"gglog_test_repository"が含まれていること
|
data/features/register.feature
CHANGED
@@ -2,5 +2,11 @@
|
|
2
2
|
フィーチャ: コミットメッセージに興味のあるGitリポジトリを登録したい
|
3
3
|
|
4
4
|
シナリオ: Gitリポジトリを登録できること
|
5
|
-
もし Gitリポジトリ"
|
6
|
-
ならば 登録リポジトリに"
|
5
|
+
もし テスト用のGitリポジトリ"gglog_test_repository"を登録する
|
6
|
+
ならば 登録リポジトリに"gglog_test_repository"が追加されていること
|
7
|
+
|
8
|
+
シナリオ: masterブランチのないGitリポジトリも登録できること
|
9
|
+
もし テスト用のGitリポジトリ"gglog_test_repository_no_master_branch"を登録する
|
10
|
+
ならば 登録リポジトリに"gglog_test_repository_no_master_branch"が追加されていること
|
11
|
+
|
12
|
+
|
data/features/search.feature
CHANGED
@@ -2,8 +2,6 @@
|
|
2
2
|
フィーチャ: 登録しているGitリポジトリのコミットメッセージを検索したい
|
3
3
|
|
4
4
|
シナリオ: 登録済みのGitリポジトリに含まれるコミットメッセージを検索できること
|
5
|
-
前提
|
6
|
-
|
7
|
-
|
8
|
-
もし キーワード".gitignore"で検索を行なう
|
9
|
-
ならば 検索結果にコミットメッセージ"Add .gitignore"が含まれていること
|
5
|
+
前提 テスト用のGitリポジトリ"gglog_test_repository"が登録されている
|
6
|
+
もし キーワード"Initial"で検索を行なう
|
7
|
+
ならば 検索結果にコミットメッセージ"Initial commit"が含まれていること
|
data/features/show.feature
CHANGED
@@ -2,8 +2,10 @@
|
|
2
2
|
フィーチャ: 登録しているGitリポジトリのコミットメッセージの詳細を閲覧したい
|
3
3
|
|
4
4
|
シナリオ: 登録済みのGitリポジトリに含まれるコミットメッセージの詳細を確認できること
|
5
|
-
前提
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
前提 テスト用のGitリポジトリ"gglog_test_repository"が登録されている
|
6
|
+
もし "gglog_test_repository 10eec585427e6e55b5ba03786440e5c1be79a906"のコミットメッセージの表示を行なう
|
7
|
+
ならば 詳細表示に"Initial commit"が含まれていること
|
8
|
+
|
9
|
+
シナリオ: show サブコマンド実行時に存在しないリポジトリ名が指定された場合
|
10
|
+
もし "gglog_test_repository 10eec585427e6e55b5ba03786440e5c1be79a906"のコミットメッセージの表示を行なう
|
11
|
+
ならば 結果表示に"Failed: repository name or sha is incorrect"が含まれていること
|
@@ -1,4 +1,5 @@
|
|
1
1
|
#coding: utf-8
|
2
|
+
|
2
3
|
前提 /^以下のGitリポジトリが登録されている:$/ do |table|
|
3
4
|
command = Gglog::Command.new([], {"gglog-home" => @gglog_home})
|
4
5
|
table.hashes.each do |row|
|
@@ -6,6 +7,12 @@
|
|
6
7
|
end
|
7
8
|
end
|
8
9
|
|
10
|
+
前提 /^テスト用のGitリポジトリ"(.*?)"が登録されている$/ do |repository_name|
|
11
|
+
test_repo = decompress_test_repository(repository_name)
|
12
|
+
git_url = File.join(test_repo, "#{repository_name}.git")
|
13
|
+
step %Q{Gitリポジトリ"#{git_url}"を登録する}
|
14
|
+
end
|
15
|
+
|
9
16
|
もし /^キーワード"(.*?)"で検索を行なう$/ do |keyword|
|
10
17
|
run_simple("gglog search #{unescape(keyword)} -h #{@gglog_home}", false)
|
11
18
|
end
|
@@ -22,18 +29,38 @@ end
|
|
22
29
|
run_simple("gglog register #{unescape(url)} -h #{@gglog_home}", false)
|
23
30
|
end
|
24
31
|
|
25
|
-
|
32
|
+
もし /^テスト用のGitリポジトリ"(.*?)"を登録する$/ do |repository_name|
|
33
|
+
step %Q{テスト用のGitリポジトリ"#{repository_name}"が登録されている}
|
34
|
+
end
|
35
|
+
|
36
|
+
もし /^sync サブコマンドを実行する$/ do
|
37
|
+
run_simple("gglog sync -h #{@gglog_home}", false)
|
38
|
+
end
|
39
|
+
|
40
|
+
ならば /^結果表示に"(.*?)"が含まれていること$/ do |expected|
|
26
41
|
assert_partial_output(expected, all_output)
|
27
42
|
end
|
28
43
|
|
44
|
+
ならば /^検索結果にコミットメッセージ"(.*?)"が含まれていること$/ do |expected|
|
45
|
+
step %Q{結果表示に"#{expected}"が含まれていること}
|
46
|
+
end
|
47
|
+
|
29
48
|
ならば /^一覧に"(.*?)"が含まれていること$/ do |expected|
|
30
|
-
|
49
|
+
step %Q{結果表示に"#{expected}"が含まれていること}
|
31
50
|
end
|
32
51
|
|
33
52
|
ならば /^詳細表示に"(.*?)"が含まれていること$/ do |expected|
|
34
|
-
|
53
|
+
step %Q{結果表示に"#{expected}"が含まれていること}
|
35
54
|
end
|
36
55
|
|
37
56
|
ならば /^登録リポジトリに"(.*?)"が追加されていること$/ do |expected|
|
38
57
|
Dir["#{@gglog_home}/repositories/*"].include?("#{@gglog_home}/repositories/#{expected}")
|
39
58
|
end
|
59
|
+
|
60
|
+
ならば /^"(.*?)"リポジトリの状態が最新になっていること$/ do |repository_name|
|
61
|
+
repo = File.join(@gglog_home, "repositories", repository_name)
|
62
|
+
Dir.chdir(repo) do
|
63
|
+
run_simple("git pull --force --quiet origin HEAD", false)
|
64
|
+
end
|
65
|
+
assert_partial_output("Already up-to-date.", all_output)
|
66
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#coding: utf-8
|
2
|
+
module ArchivedTestRepository
|
3
|
+
def archived_test_repository_path(repository_name)
|
4
|
+
File.join(File.expand_path(File.dirname(__FILE__)), "data", "#{repository_name}.tar.gz")
|
5
|
+
end
|
6
|
+
|
7
|
+
def decompress_test_repository(repository_name)
|
8
|
+
dest_dir = Dir.mktmpdir
|
9
|
+
system "tar", "xfz", archived_test_repository_path(repository_name), "-C", dest_dir
|
10
|
+
File.join(dest_dir, repository_name)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
World(ArchivedTestRepository)
|
Binary file
|
Binary file
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#language: ja
|
2
|
+
フィーチャ: 登録済みのGitリポジトリを最新の状態に更新したい
|
3
|
+
|
4
|
+
シナリオ: 登録済みのGitリポジトリを更新できること
|
5
|
+
前提 テスト用のGitリポジトリ"gglog_test_repository"を登録する
|
6
|
+
もし sync サブコマンドを実行する
|
7
|
+
ならば "gglog_test_repository"リポジトリの状態が最新になっていること
|
8
|
+
|
9
|
+
シナリオ: masterブランチのないGitリポジトリも更新できること
|
10
|
+
前提 テスト用のGitリポジトリ"gglog_test_repository_no_master_branch"を登録する
|
11
|
+
もし sync サブコマンドを実行する
|
12
|
+
ならば "gglog_test_repository_no_master_branch"リポジトリの状態が最新になっていること
|
13
|
+
|
14
|
+
|
data/lib/gglog.rb
CHANGED
data/lib/gglog/command.rb
CHANGED
@@ -58,12 +58,11 @@ module Gglog
|
|
58
58
|
desc 'show [REPOSITORY_NAME] [SHA]', 'Show commit message'
|
59
59
|
def show(repository_name, sha)
|
60
60
|
repository = Repository.new(repository_path(repository_name))
|
61
|
-
commit_message = repository.commit_message(sha).tap do |cm|
|
62
|
-
cm.extend CommitMessageDecorator
|
63
|
-
end
|
64
61
|
|
65
62
|
page
|
66
|
-
say
|
63
|
+
say repository.show(sha)
|
64
|
+
rescue
|
65
|
+
say "Failed: repository name or sha is incorrect"
|
67
66
|
end
|
68
67
|
|
69
68
|
desc 'sync', 'Sync git repositories of gglog target'
|
data/lib/gglog/repository.rb
CHANGED
@@ -29,15 +29,16 @@ module Gglog
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
def
|
33
|
-
|
34
|
-
|
32
|
+
def show(sha)
|
33
|
+
Dir.chdir(@path) do
|
34
|
+
system "git", "show", sha
|
35
|
+
end
|
35
36
|
end
|
36
37
|
|
37
38
|
def pull
|
38
39
|
Dir.chdir(@path) do
|
39
40
|
system "git", "reset", "--hard", "--quiet"
|
40
|
-
system "git", "pull", "--force", "--quiet", "origin", "
|
41
|
+
system "git", "pull", "--force", "--quiet", "origin", "HEAD"
|
41
42
|
end
|
42
43
|
end
|
43
44
|
|
data/lib/gglog/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gglog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &2154839620 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.16.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2154839620
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &2154838940 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '1.2'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2154838940
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rroonga
|
38
|
-
requirement: &
|
38
|
+
requirement: &2154837960 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 2.0.6
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2154837960
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rugged
|
49
|
-
requirement: &
|
49
|
+
requirement: &2154837480 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.16.0
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2154837480
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rainbow
|
60
|
-
requirement: &
|
60
|
+
requirement: &2154837080 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2154837080
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: pager
|
71
|
-
requirement: &
|
71
|
+
requirement: &2154836400 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2154836400
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rake
|
82
|
-
requirement: &
|
82
|
+
requirement: &2154835780 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2154835780
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rspec
|
93
|
-
requirement: &
|
93
|
+
requirement: &2154835360 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2154835360
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: cucumber
|
104
|
-
requirement: &
|
104
|
+
requirement: &2154834940 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2154834940
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: aruba
|
115
|
-
requirement: &
|
115
|
+
requirement: &2154834500 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,7 +120,7 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *2154834500
|
124
124
|
description: Your partner for finding a good commit message.
|
125
125
|
email:
|
126
126
|
- koji.shimada@enishi-tech.com
|
@@ -130,6 +130,7 @@ extensions: []
|
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
132
|
- .gitignore
|
133
|
+
- .travis.yml
|
133
134
|
- CHANGELOG
|
134
135
|
- Gemfile
|
135
136
|
- Gemfile.lock
|
@@ -142,7 +143,11 @@ files:
|
|
142
143
|
- features/search.feature
|
143
144
|
- features/show.feature
|
144
145
|
- features/step_definitions/gglog_steps.rb
|
146
|
+
- features/support/archived_test_repository.rb
|
147
|
+
- features/support/data/gglog_test_repository.tar.gz
|
148
|
+
- features/support/data/gglog_test_repository_no_master_branch.tar.gz
|
145
149
|
- features/support/env.rb
|
150
|
+
- features/sync.feature
|
146
151
|
- gglog.gemspec
|
147
152
|
- lib/gglog.rb
|
148
153
|
- lib/gglog/command.rb
|
@@ -181,5 +186,9 @@ test_files:
|
|
181
186
|
- features/search.feature
|
182
187
|
- features/show.feature
|
183
188
|
- features/step_definitions/gglog_steps.rb
|
189
|
+
- features/support/archived_test_repository.rb
|
190
|
+
- features/support/data/gglog_test_repository.tar.gz
|
191
|
+
- features/support/data/gglog_test_repository_no_master_branch.tar.gz
|
184
192
|
- features/support/env.rb
|
193
|
+
- features/sync.feature
|
185
194
|
has_rdoc:
|