gollum-rjgit_adapter 0.3.4-java → 0.4.0-java
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.
- checksums.yaml +4 -4
- data/Gemfile +1 -2
- data/README.md +2 -3
- data/gollum-rjgit_adapter.gemspec +1 -1
- data/lib/rjgit_adapter/git_layer_rjgit.rb +64 -29
- data/lib/rjgit_adapter/version.rb +1 -1
- metadata +11 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48f627d36cd5376254399d252034e79505e0e21dc125d04c77b3cabec3b4843c
|
4
|
+
data.tar.gz: de5904a088ff15a2509b3330594b2d6b9651b08541a1b8410eed820be929acd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4af0a30d70c46566ec318cfed08de9821097a91ed2e795988c461b3a8afa89aec61f48312ef2918adf5aa16744df4509145df6e2f322620491a0807fa6890cc9
|
7
|
+
data.tar.gz: 70cce95a94456a21952d22e2c9f3dbbaef7cd644d848eb9b5b80f31676f92c855557e2464eece5400a471946205ea27a46e76670a02b7daf9a3f2fca6e0c8e93
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
gollum-lib_rjgit_adapter
|
2
2
|
========================
|
3
3
|
[](http://badge.fury.io/rb/gollum-rjgit_adapter)
|
4
|
+
[](https://travis-ci.org/gollum/rjgit_adapter)
|
4
5
|
|
5
|
-
Adapter for Gollum to use [RJGit](https://github.com/repotag/rjgit) at the backend. This adapter is the default when your platform is JRuby, so you need only to `gem install gollum` and then use gollum normally.
|
6
|
-
|
7
|
-
Note: this adapter is new. Although it passes the full test suite for gollum (and gollum-lib), it might well still contain bugs. Please let us know if you encouter any!
|
6
|
+
Adapter for Gollum to use [RJGit](https://github.com/repotag/rjgit) at the backend. The adapter requires using [JRuby](https://www.jruby.org/). This adapter is the default when your platform is JRuby, so you need only to `gem install gollum` and then use gollum normally.
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = %q{Adapter for Gollum to use RJGit at the backend.}
|
13
13
|
s.description = %q{Adapter for Gollum to use RJGit at the backend.}
|
14
14
|
|
15
|
-
s.add_runtime_dependency "rjgit", "~> 5.0"
|
15
|
+
s.add_runtime_dependency "rjgit", "> 5.6.0", "~> 5.6.0"
|
16
16
|
s.add_development_dependency "rspec", "3.4.0"
|
17
17
|
|
18
18
|
s.files = Dir['lib/**/*.rb'] + ["README.md", "Gemfile"]
|
@@ -19,7 +19,7 @@ module Gollum
|
|
19
19
|
# Convert HEAD refspec to jgit canonical form
|
20
20
|
def self.canonicalize(ref)
|
21
21
|
return ref if sha?(ref)
|
22
|
-
return
|
22
|
+
return 'refs/heads/master' if ref.nil? || ref.to_s.upcase == 'HEAD'
|
23
23
|
result = ref.is_a?(Gollum::Git::Ref) ? ref.name : ref
|
24
24
|
result = "refs/heads/#{result}" unless result =~ /^refs\/heads\//
|
25
25
|
result
|
@@ -135,9 +135,28 @@ module Gollum
|
|
135
135
|
def stats
|
136
136
|
return @stats unless @stats.nil?
|
137
137
|
rjgit_stats = @commit.stats
|
138
|
-
|
139
|
-
|
140
|
-
|
138
|
+
|
139
|
+
files = rjgit_stats[:files].map do |file|
|
140
|
+
file[:new_file] == file[:old_file] if file[:new_file] == '/dev/null' # File is deleted, display only the original, deleted path.
|
141
|
+
file.delete(:old_file) if (file[:old_file] == '/dev/null') || (file[:old_file] == file[:new_file]) # Don't include an old path when the file is new, or it's a regular update
|
142
|
+
file
|
143
|
+
end
|
144
|
+
|
145
|
+
@stats = OpenStruct.new(
|
146
|
+
:additions => rjgit_stats[:total_additions],
|
147
|
+
:deletions => rjgit_stats[:total_deletions],
|
148
|
+
:total => rjgit_stats[:total_additions] + rjgit_stats[:total_deletions],
|
149
|
+
:files => files,
|
150
|
+
:id => id
|
151
|
+
)
|
152
|
+
end
|
153
|
+
|
154
|
+
def tracked_pathname
|
155
|
+
begin
|
156
|
+
@commit.tracked_pathname
|
157
|
+
rescue NoMethodError
|
158
|
+
nil
|
159
|
+
end
|
141
160
|
end
|
142
161
|
|
143
162
|
end
|
@@ -152,19 +171,17 @@ module Gollum
|
|
152
171
|
::File.exists?(@git.jrepo.getDirectory.to_s)
|
153
172
|
end
|
154
173
|
|
155
|
-
def grep(query, options={})
|
174
|
+
def grep(query, options={}, &block)
|
156
175
|
ref = Gollum::Git.canonicalize(options[:ref])
|
157
|
-
|
176
|
+
results = []
|
177
|
+
walk = RevWalk.new(@git.jrepo)
|
158
178
|
RJGit::Porcelain.ls_tree(@git.jrepo, options[:path], ref, {:recursive => true}).each do |item|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
blobs.each do |blob|
|
164
|
-
count = blob.data.downcase.scan(/#{query}/i).length
|
165
|
-
result << {:name => blob.path, :count => count} if count > 0
|
179
|
+
if item[:type] == 'blob'
|
180
|
+
blob = RJGit::Blob.new(@git.jrepo, item[:mode], item[:path], walk.lookup_blob(ObjectId.from_string(item[:id])))
|
181
|
+
results << yield(blob.path, blob.binary? ? nil : blob.data)
|
182
|
+
end
|
166
183
|
end
|
167
|
-
|
184
|
+
results.compact
|
168
185
|
end
|
169
186
|
|
170
187
|
def rm(path, options={})
|
@@ -181,34 +198,45 @@ module Gollum
|
|
181
198
|
|
182
199
|
# rev_list({:max_count=>1}, ref)
|
183
200
|
def rev_list(options, *refs)
|
184
|
-
raise
|
201
|
+
raise 'Not implemented'
|
185
202
|
end
|
186
203
|
|
187
204
|
def ls_files(query, options = {})
|
188
205
|
ref = Gollum::Git.canonicalize(options[:ref])
|
189
|
-
result = RJGit::Porcelain.ls_tree(@git.jrepo, options[:path], ref, {:recursive => true}).select {|object| object[:type] ==
|
206
|
+
result = RJGit::Porcelain.ls_tree(@git.jrepo, options[:path], ref, {:recursive => true}).select {|object| object[:type] == 'blob' && !!(::File.basename(object[:path]) =~ /#{query}/i) }
|
190
207
|
result.map do |r|
|
191
208
|
r[:path]
|
192
209
|
end
|
193
210
|
end
|
194
211
|
|
195
|
-
def
|
196
|
-
|
212
|
+
def revert_path(path, sha1, sha2, ref = 'HEAD^{commit}')
|
213
|
+
result, _paths = revert(path, sha1, sha2, ref)
|
214
|
+
result
|
215
|
+
end
|
216
|
+
|
217
|
+
def revert_commit(sha1, sha2, ref = 'HEAD^{commit}')
|
218
|
+
revert(nil, sha1, sha2, ref)
|
219
|
+
end
|
220
|
+
|
221
|
+
def revert(path, sha1, sha2, ref)
|
222
|
+
patch = generate_patch(sha1, sha2, path)
|
223
|
+
return false unless patch
|
197
224
|
begin
|
198
|
-
@git.
|
199
|
-
|
225
|
+
applier = RJGit::Plumbing::ApplyPatchToIndex.new(@git.jrepo, patch, ref)
|
226
|
+
applier.new_tree
|
227
|
+
rescue ::RJGit::PatchApplyException
|
200
228
|
false
|
201
229
|
end
|
202
|
-
Tree.new(RJGit::Tree.new(@git.jrepo, nil, nil, RevWalk.new(@git.jrepo).lookup_tree(@git.jrepo.resolve("HEAD^{tree}"))))
|
203
230
|
end
|
204
|
-
|
231
|
+
|
205
232
|
# @repo.git.cat_file({:p => true}, sha)
|
206
233
|
def cat_file(options, sha)
|
207
234
|
@git.cat_file(options, sha)
|
208
235
|
end
|
209
236
|
|
210
|
-
def log(
|
237
|
+
def log(ref = 'refs/heads/master', path = nil, options = {})
|
211
238
|
ref = Gollum::Git.canonicalize(ref)
|
239
|
+
options[:list_renames] = true if path && options[:follow]
|
212
240
|
@git.log(path, ref, options).map {|commit| Gollum::Git::Commit.new(commit)}
|
213
241
|
end
|
214
242
|
alias_method :versions_for_path, :log
|
@@ -225,6 +253,12 @@ module Gollum
|
|
225
253
|
@git.pull(remote, branch, options)
|
226
254
|
end
|
227
255
|
|
256
|
+
private
|
257
|
+
|
258
|
+
def generate_patch(sha1, sha2, path = nil)
|
259
|
+
RJGit::Plumbing::ApplyPatchToIndex.diffs_to_patch(RJGit::Porcelain.diff(@git.jrepo, patch: true, new_rev: sha1, old_rev: sha2, file_path: path))
|
260
|
+
end
|
261
|
+
|
228
262
|
end
|
229
263
|
|
230
264
|
class Index
|
@@ -242,9 +276,9 @@ module Gollum
|
|
242
276
|
@index.add(path, data)
|
243
277
|
end
|
244
278
|
|
245
|
-
def commit(message, parents = nil, actor = nil, last_tree = nil, ref =
|
279
|
+
def commit(message, parents = nil, actor = nil, last_tree = nil, ref = 'refs/heads/master')
|
246
280
|
ref = Gollum::Git.canonicalize(ref)
|
247
|
-
actor = actor ? actor.actor : RJGit::Actor.new(
|
281
|
+
actor = actor ? actor.actor : RJGit::Actor.new('Gollum', 'gollum@wiki')
|
248
282
|
parents = parents.map{|parent| parent.commit} if parents
|
249
283
|
commit_data = @index.commit(message, actor, parents, ref)
|
250
284
|
return false if !commit_data
|
@@ -349,16 +383,17 @@ module Gollum
|
|
349
383
|
|
350
384
|
# @wiki.repo.head.commit.sha
|
351
385
|
def head
|
352
|
-
|
386
|
+
return nil unless @repo.head
|
387
|
+
Gollum::Git::Ref.new('refs/heads/master', @repo.head)
|
353
388
|
end
|
354
389
|
|
355
390
|
def index
|
356
391
|
@index ||= Gollum::Git::Index.new(RJGit::Plumbing::Index.new(@repo))
|
357
392
|
end
|
358
393
|
|
359
|
-
def log(
|
394
|
+
def log(ref = 'refs/heads/master', path = nil, options = {})
|
360
395
|
commit = Gollum::Git.canonicalize(commit)
|
361
|
-
git.log(
|
396
|
+
git.log(ref, path, options)
|
362
397
|
end
|
363
398
|
|
364
399
|
def lstree(sha, options={})
|
@@ -374,7 +409,7 @@ module Gollum
|
|
374
409
|
@repo.path
|
375
410
|
end
|
376
411
|
|
377
|
-
def update_ref(ref =
|
412
|
+
def update_ref(ref = 'refs/heads/master', commit_sha)
|
378
413
|
ref = Gollum::Git.canonicalize(head)
|
379
414
|
cm = self.commit(commit_sha)
|
380
415
|
@repo.update_ref(cm.commit, true, ref)
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gollum-rjgit_adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Bart Kamphorst, Dawa Ometto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
|
+
- - ">"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: 5.6.0
|
16
19
|
- - "~>"
|
17
20
|
- !ruby/object:Gem::Version
|
18
|
-
version:
|
21
|
+
version: 5.6.0
|
19
22
|
name: rjgit
|
20
23
|
prerelease: false
|
21
24
|
type: :runtime
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
27
|
+
- - ">"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 5.6.0
|
24
30
|
- - "~>"
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: 5.6.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
requirement: !ruby/object:Gem::Requirement
|
29
35
|
requirements:
|
@@ -72,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
78
|
version: '0'
|
73
79
|
requirements: []
|
74
80
|
rubyforge_project:
|
75
|
-
rubygems_version: 2.6
|
81
|
+
rubygems_version: 2.7.6
|
76
82
|
signing_key:
|
77
83
|
specification_version: 4
|
78
84
|
summary: Adapter for Gollum to use RJGit at the backend.
|