gglog 0.0.1 → 0.0.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.
- 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 [](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:
|