eac_git 0.10.0 → 0.12.1
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/lib/eac_git/local/branch.rb +27 -0
- data/lib/eac_git/local/commit.rb +1 -0
- data/lib/eac_git/local/remote.rb +2 -2
- data/lib/eac_git/local/remotes.rb +20 -0
- data/lib/eac_git/local.rb +19 -1
- data/lib/eac_git/version.rb +1 -1
- metadata +8 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74b934533947081e1c45fe9df4b42e0758722aee669f1bf5bd45325e3c5cfe44
|
4
|
+
data.tar.gz: 4cf3f4691f9fe8108fcebc63ba34bf85457dfab4cb56190ed3153f2a92640d89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eed35716f990d17643d46afb8ddd174060da67063207b5eeecd008a5388cf8b9dd408b4f7b243cc758694c575a8bbf0f7ca5e6ceb16a5f9ba1ae162216531e5d
|
7
|
+
data.tar.gz: 13f589a6dacaf16bba3ac44eaaa4bb921ec2ac1117aaae0e71ad56aa27a7ba932476809a0753b15c3061d2f3e9337416cbba3d7526c2f8a128fe3460a27bec33
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module EacGit
|
6
|
+
class Local
|
7
|
+
class Branch
|
8
|
+
REFS_PREFIX = 'refs/heads/'
|
9
|
+
|
10
|
+
common_constructor :local, :name
|
11
|
+
|
12
|
+
# @return [String]
|
13
|
+
def current_commit_id
|
14
|
+
local.rev_parse(full_ref_name, true)
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [Boolean]
|
18
|
+
def exist?
|
19
|
+
local.command('show-ref', '--quiet', full_ref_name).execute.fetch(:exit_code).zero?
|
20
|
+
end
|
21
|
+
|
22
|
+
def full_ref_name
|
23
|
+
"#{REFS_PREFIX}#{name}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/eac_git/local/commit.rb
CHANGED
@@ -13,6 +13,7 @@ module EacGit
|
|
13
13
|
author_name: '%an', author_email: '%ae', author_date: '%ai',
|
14
14
|
subject: '%s',
|
15
15
|
author_all: '%an <%ae>, %ai',
|
16
|
+
commit_hash: '%H', abbreviated_commit_hash: '%h',
|
16
17
|
commiter_name: '%cn', commiter_email: '%ce', commiter_date: '%ci',
|
17
18
|
commiter_all: '%cn <%ce>, %ci',
|
18
19
|
raw_body: '%B'
|
data/lib/eac_git/local/remote.rb
CHANGED
@@ -19,8 +19,8 @@ module EacGit
|
|
19
19
|
# @return [String, nil]
|
20
20
|
def url
|
21
21
|
local.command('remote', 'get-url', name)
|
22
|
-
|
23
|
-
|
22
|
+
.execute!(exit_outputs: { NO_SUCH_REMOTE_CODE => nil })
|
23
|
+
.if_present(nil, &:strip)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_git/local/remote'
|
5
|
+
|
6
|
+
module EacGit
|
7
|
+
class Local
|
8
|
+
module Remotes
|
9
|
+
def remote(name)
|
10
|
+
::EacGit::Local::Remote.new(self, name)
|
11
|
+
end
|
12
|
+
|
13
|
+
def remotes
|
14
|
+
command('remote').execute!.each_line.map(&:strip).reject(&:blank?).map do |name|
|
15
|
+
remote(name)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/eac_git/local.rb
CHANGED
@@ -30,6 +30,14 @@ module EacGit
|
|
30
30
|
root_path <=> other.root_path
|
31
31
|
end
|
32
32
|
|
33
|
+
# Retrieves a local branch.
|
34
|
+
#
|
35
|
+
# @param name [String] Ex.: for "refs/heads/master", name should be "master".
|
36
|
+
# @return [EacGit::Local::Branch]
|
37
|
+
def branch(name)
|
38
|
+
::EacGit::Local::Branch.new(self, name)
|
39
|
+
end
|
40
|
+
|
33
41
|
def commit(ref, required = false)
|
34
42
|
rev_parse(ref, required).if_present { |v| ::EacGit::Local::Commit.new(self, v) }
|
35
43
|
end
|
@@ -44,6 +52,16 @@ module EacGit
|
|
44
52
|
source.to_s.strip.if_present(nil) { |v| ::EacGit::Local::Commit.new(self, v) }
|
45
53
|
end
|
46
54
|
|
55
|
+
# Retrieves the current local branch.
|
56
|
+
#
|
57
|
+
# @return [EacGit::Local::Branch, nil]
|
58
|
+
def current_branch
|
59
|
+
command('symbolic-ref', '--quiet', HEAD_REFERENCE)
|
60
|
+
.execute!(exit_outputs: { 256 => '' })
|
61
|
+
.gsub(%r{\Arefs/heads/}, '').strip
|
62
|
+
.if_present { |v| branch(v) }
|
63
|
+
end
|
64
|
+
|
47
65
|
def descendant?(descendant, ancestor)
|
48
66
|
base = merge_base(descendant, ancestor)
|
49
67
|
return false if base.blank?
|
@@ -92,7 +110,7 @@ module EacGit
|
|
92
110
|
# @return [Array<EacGit::Local::Subrepo>]
|
93
111
|
def subrepos
|
94
112
|
command('subrepo', '-q', 'status').execute!.split("\n").map(&:strip).select(&:present?)
|
95
|
-
|
113
|
+
.map { |subpath| subrepo(subpath) }
|
96
114
|
end
|
97
115
|
|
98
116
|
def to_s
|
data/lib/eac_git/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eac_git
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Put here the authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eac_ruby_utils
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.83'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.83'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: parseconfig
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,20 +70,14 @@ dependencies:
|
|
70
70
|
requirements:
|
71
71
|
- - "~>"
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 0.3.2
|
73
|
+
version: 0.5.1
|
77
74
|
type: :development
|
78
75
|
prerelease: false
|
79
76
|
version_requirements: !ruby/object:Gem::Requirement
|
80
77
|
requirements:
|
81
78
|
- - "~>"
|
82
79
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
84
|
-
- - ">="
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: 0.3.2
|
80
|
+
version: 0.5.1
|
87
81
|
description:
|
88
82
|
email:
|
89
83
|
executables: []
|
@@ -93,6 +87,7 @@ files:
|
|
93
87
|
- lib/eac_git.rb
|
94
88
|
- lib/eac_git/executables.rb
|
95
89
|
- lib/eac_git/local.rb
|
90
|
+
- lib/eac_git/local/branch.rb
|
96
91
|
- lib/eac_git/local/commit.rb
|
97
92
|
- lib/eac_git/local/commit/archive.rb
|
98
93
|
- lib/eac_git/local/commit/changed_file.rb
|
@@ -100,6 +95,7 @@ files:
|
|
100
95
|
- lib/eac_git/local/dirty_files.rb
|
101
96
|
- lib/eac_git/local/log.rb
|
102
97
|
- lib/eac_git/local/remote.rb
|
98
|
+
- lib/eac_git/local/remotes.rb
|
103
99
|
- lib/eac_git/local/subrepo.rb
|
104
100
|
- lib/eac_git/local/subrepo/config.rb
|
105
101
|
- lib/eac_git/remote.rb
|