gollum-rjgit_adapter 0.6.1-java → 1.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/gollum-rjgit_adapter.gemspec +1 -1
- data/lib/rjgit_adapter/git_layer_rjgit.rb +60 -29
- data/lib/rjgit_adapter/version.rb +1 -1
- metadata +7 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6bdbce54e2c9a4776e5f86ca0a2b549d35e3be6d816afb83e3ac028af24b9756
|
4
|
+
data.tar.gz: 5373306b3d9279ab924eede20362ea9ee9aea96f875a1b17f0bbc31d9cd936f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7467a015e62e23f710f0fe8e9e6e0a2a9e9216966cb9a57d2883d95ee000ae35087932624495e6a76569a849981f3523d62d4f4ae13776a5564b467f652f1216
|
7
|
+
data.tar.gz: 4f0b0910be9ecf5767a65a99f730c609062b8bedda96759c7dc27d80f8c07035aa143e26938544feb5404c808927af1e101fc02fab27554fae77223354ba6ba3
|
@@ -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", "
|
15
|
+
s.add_runtime_dependency "rjgit", "~> 6.1"
|
16
16
|
s.add_development_dependency "rspec", "3.4.0"
|
17
17
|
|
18
18
|
s.files = Dir['lib/**/*.rb'] + ["README.md", "Gemfile"]
|
@@ -15,15 +15,40 @@ module Gollum
|
|
15
15
|
|
16
16
|
import 'org.eclipse.jgit.revwalk.RevWalk'
|
17
17
|
import 'org.eclipse.jgit.lib.ObjectId'
|
18
|
+
import org.eclipse.jgit.lib.ConfigConstants
|
18
19
|
|
19
|
-
|
20
|
+
BACKUP_DEFAULT_REF = 'refs/heads/master'
|
21
|
+
|
22
|
+
def self.head_ref_name(repo)
|
23
|
+
r = RJGit.repository_type(repo)
|
24
|
+
begin
|
25
|
+
# Mimic rugged's behavior: if HEAD points at a given ref, but that ref has no commits yet, return nil
|
26
|
+
r.resolve('HEAD') ? r.getFullBranch : nil
|
27
|
+
rescue Java::OrgEclipseJgitApiErrors::RefNotFoundException
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.global_default_branch
|
33
|
+
org.eclipse.jgit.util.SystemReader.getInstance().getUserConfig().getString(ConfigConstants::CONFIG_INIT_SECTION, nil, ConfigConstants::CONFIG_KEY_DEFAULT_BRANCH)
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.default_ref_for_repo(repo)
|
37
|
+
self.head_ref_name(repo) || self.global_default_branch || BACKUP_DEFAULT_REF
|
38
|
+
end
|
39
|
+
|
40
|
+
# Don't touch if ref is a SHA or Git::Ref, otherwise convert it to jgit canonical form
|
20
41
|
def self.canonicalize(ref)
|
21
|
-
return ref if sha?(ref)
|
22
|
-
return 'refs/heads/master' if ref.nil?
|
42
|
+
return ref if ref.is_a?(String) and sha?(ref)
|
23
43
|
result = ref.is_a?(Gollum::Git::Ref) ? ref.name : ref
|
24
44
|
(result =~ /^refs\/heads\// || result.upcase == 'HEAD') ? result : "refs/heads/#{result}"
|
25
45
|
end
|
26
46
|
|
47
|
+
def self.decanonicalize(ref_name)
|
48
|
+
match = /^refs\/heads\/(.*)/.match(ref_name)
|
49
|
+
match ? match[1] : nil
|
50
|
+
end
|
51
|
+
|
27
52
|
def self.sha?(str)
|
28
53
|
!!(str =~ /^[0-9a-f]{40}$/)
|
29
54
|
end
|
@@ -176,7 +201,7 @@ module Gollum
|
|
176
201
|
end
|
177
202
|
|
178
203
|
def grep(query, options={}, &block)
|
179
|
-
ref = Gollum::Git.canonicalize(options[:ref])
|
204
|
+
ref = options[:ref] ? Gollum::Git.canonicalize(options[:ref]) : Gollum::Git.default_ref_for_repo(@git.jrepo)
|
180
205
|
results = []
|
181
206
|
walk = RevWalk.new(@git.jrepo)
|
182
207
|
RJGit::Porcelain.ls_tree(@git.jrepo, options[:path], ref, {:recursive => true}).each do |item|
|
@@ -193,10 +218,13 @@ module Gollum
|
|
193
218
|
end
|
194
219
|
|
195
220
|
def checkout(path, ref, options = {})
|
196
|
-
|
221
|
+
options[:commit] = if ref == 'HEAD'
|
222
|
+
"#{Gollum::Git.default_ref_for_repo(@git.jrepo)}"
|
223
|
+
else
|
224
|
+
"#{Gollum::Git.canonicalize(ref)}}"
|
225
|
+
end
|
197
226
|
options[:paths] = [path]
|
198
227
|
options[:force] = true
|
199
|
-
options[:commit] = "#{ref}^{commit}"
|
200
228
|
@git.checkout(ref, options)
|
201
229
|
end
|
202
230
|
|
@@ -213,16 +241,16 @@ module Gollum
|
|
213
241
|
end
|
214
242
|
end
|
215
243
|
|
216
|
-
def revert_path(path, sha1, sha2, ref =
|
244
|
+
def revert_path(path, sha1, sha2, ref = Gollum::Git.default_ref_for_repo(@git.jrepo))
|
217
245
|
result, _paths = revert(path, sha1, sha2, ref)
|
218
246
|
result
|
219
247
|
end
|
220
248
|
|
221
|
-
def revert_commit(sha1, sha2, ref =
|
249
|
+
def revert_commit(sha1, sha2, ref = Gollum::Git.default_ref_for_repo(@git.jrepo))
|
222
250
|
revert(nil, sha1, sha2, ref)
|
223
251
|
end
|
224
252
|
|
225
|
-
def revert(path, sha1, sha2, ref)
|
253
|
+
def revert(path, sha1, sha2, ref = Gollum::Git.default_ref_for_repo(@git.jrepo))
|
226
254
|
patch = generate_patch(sha1, sha2, path)
|
227
255
|
return false unless patch
|
228
256
|
begin
|
@@ -238,10 +266,9 @@ module Gollum
|
|
238
266
|
@git.cat_file(options, sha)
|
239
267
|
end
|
240
268
|
|
241
|
-
def log(ref =
|
242
|
-
ref = Gollum::Git.canonicalize(ref)
|
269
|
+
def log(ref = Gollum::Git.default_ref_for_repo(@git.jrepo), path = nil, options = {})
|
243
270
|
options[:list_renames] = true if path && options[:follow]
|
244
|
-
@git.log(path, ref, options).map {|commit| Gollum::Git::Commit.new(commit)}
|
271
|
+
@git.log(path, Gollum::Git.canonicalize(ref), options).map {|commit| Gollum::Git::Commit.new(commit)}
|
245
272
|
end
|
246
273
|
|
247
274
|
def versions_for_path(path, ref, options)
|
@@ -283,11 +310,10 @@ module Gollum
|
|
283
310
|
@index.add(path, data)
|
284
311
|
end
|
285
312
|
|
286
|
-
def commit(message, parents = nil, actor = nil, last_tree = nil, ref =
|
287
|
-
ref = Gollum::Git.canonicalize(ref)
|
313
|
+
def commit(message, parents = nil, actor = nil, last_tree = nil, ref = Gollum::Git.default_ref_for_repo(@index.jrepo))
|
288
314
|
actor = actor ? actor.actor : RJGit::Actor.new('Gollum', 'gollum@wiki')
|
289
315
|
parents = parents.map{|parent| parent.commit} if parents
|
290
|
-
commit_data = @index.commit(message, actor, parents, ref)
|
316
|
+
commit_data = @index.commit(message, actor, parents, Gollum::Git.canonicalize(ref))
|
291
317
|
return false if !commit_data
|
292
318
|
commit_data[2]
|
293
319
|
end
|
@@ -313,8 +339,8 @@ module Gollum
|
|
313
339
|
end
|
314
340
|
|
315
341
|
class Ref
|
316
|
-
def initialize(
|
317
|
-
@
|
342
|
+
def initialize(commit, name)
|
343
|
+
@commit, @name = commit, name
|
318
344
|
end
|
319
345
|
|
320
346
|
def name
|
@@ -367,8 +393,7 @@ module Gollum
|
|
367
393
|
end
|
368
394
|
|
369
395
|
def commit(ref)
|
370
|
-
|
371
|
-
objectid = @repo.jrepo.resolve(ref)
|
396
|
+
objectid = @repo.jrepo.resolve(Gollum::Git.canonicalize(ref))
|
372
397
|
return nil if objectid.nil?
|
373
398
|
id = objectid.name
|
374
399
|
commit = @repo.find(id, :commit)
|
@@ -378,8 +403,7 @@ module Gollum
|
|
378
403
|
raise Gollum::Git::NoSuchShaFound
|
379
404
|
end
|
380
405
|
|
381
|
-
def commits(ref =
|
382
|
-
ref = Gollum::Git.canonicalize(ref)
|
406
|
+
def commits(ref = Gollum::Git.default_ref_for_repo(@repo), max_count = 10, skip = 0)
|
383
407
|
@repo.commits(ref, max_count).map{|commit| Gollum::Git::Commit.new(commit)}
|
384
408
|
end
|
385
409
|
|
@@ -391,16 +415,15 @@ module Gollum
|
|
391
415
|
# @wiki.repo.head.commit.sha
|
392
416
|
def head
|
393
417
|
return nil unless @repo.head
|
394
|
-
Gollum::Git::Ref.new(
|
418
|
+
Gollum::Git::Ref.new(@repo.head, Gollum::Git.head_ref_name(@repo))
|
395
419
|
end
|
396
420
|
|
397
421
|
def index
|
398
422
|
@index ||= Gollum::Git::Index.new(RJGit::Plumbing::Index.new(@repo))
|
399
423
|
end
|
400
424
|
|
401
|
-
def log(ref =
|
402
|
-
|
403
|
-
git.log(ref, path, options)
|
425
|
+
def log(ref = Gollum::Git.default_ref_for_repo(@repo), path = nil, options = {})
|
426
|
+
git.log(Gollum::Git.canonicalize(ref), path, options)
|
404
427
|
end
|
405
428
|
|
406
429
|
def lstree(sha, options={})
|
@@ -416,16 +439,24 @@ module Gollum
|
|
416
439
|
@repo.path
|
417
440
|
end
|
418
441
|
|
419
|
-
def update_ref(ref
|
420
|
-
ref = Gollum::Git.canonicalize(head)
|
442
|
+
def update_ref(ref, commit_sha)
|
421
443
|
cm = self.commit(commit_sha)
|
422
|
-
@repo.update_ref(cm.commit, true, ref)
|
444
|
+
@repo.update_ref(cm.commit, true, Gollum::Git.canonicalize(ref))
|
423
445
|
end
|
424
446
|
|
425
447
|
def diff(sha1, sha2, path = nil)
|
426
448
|
RJGit::Porcelain.diff(@repo, {:old_rev => sha1, :new_rev => sha2, :file_path => path, :patch => true}).inject("") {|result, diff| result << diff[:patch]}
|
427
449
|
end
|
428
|
-
|
450
|
+
|
451
|
+
# Find the first existing branch in an Array of branch names of the form ['main', ...] and return its String name.
|
452
|
+
def find_branch(search_list)
|
453
|
+
search_list.find do |branch_name|
|
454
|
+
@repo.branches.find do |canonical_name|
|
455
|
+
Gollum::Git.decanonicalize(canonical_name) == branch_name
|
456
|
+
end
|
457
|
+
end
|
458
|
+
end
|
459
|
+
|
429
460
|
end
|
430
461
|
|
431
462
|
class Tree
|
metadata
CHANGED
@@ -1,35 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gollum-rjgit_adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0
|
4
|
+
version: '1.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: 2022-09-12 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.7.0
|
19
16
|
- - "~>"
|
20
17
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
18
|
+
version: '6.1'
|
22
19
|
name: rjgit
|
23
|
-
type: :runtime
|
24
20
|
prerelease: false
|
21
|
+
type: :runtime
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - ">"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 5.7.0
|
30
24
|
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
26
|
+
version: '6.1'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
requirement: !ruby/object:Gem::Requirement
|
35
29
|
requirements:
|
@@ -37,8 +31,8 @@ dependencies:
|
|
37
31
|
- !ruby/object:Gem::Version
|
38
32
|
version: 3.4.0
|
39
33
|
name: rspec
|
40
|
-
type: :development
|
41
34
|
prerelease: false
|
35
|
+
type: :development
|
42
36
|
version_requirements: !ruby/object:Gem::Requirement
|
43
37
|
requirements:
|
44
38
|
- - '='
|
@@ -77,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
71
|
- !ruby/object:Gem::Version
|
78
72
|
version: '0'
|
79
73
|
requirements: []
|
80
|
-
rubygems_version: 3.
|
74
|
+
rubygems_version: 3.2.29
|
81
75
|
signing_key:
|
82
76
|
specification_version: 4
|
83
77
|
summary: Adapter for Gollum to use RJGit at the backend.
|