git_compound 0.0.10 → 0.1.0
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e127d67e2392d65dea06cf967be3770cba4144bc
|
4
|
+
data.tar.gz: 46dd79cde5f328dd213e7a072cf27b7b69b95fc6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16e0fdc430743a2812def344af9efdae345886414853e0fe4f4566a51f3ff92828403d1c1921ee9d7413a1f6a106a6f3edd7adff96872f1dedad8054581569d8
|
7
|
+
data.tar.gz: d17fba0fdfc018cebfd5fe0c7fcad60e5d9a42c334c3e58f9b345cc45b32ab2e3a32e0bb69740305aec26519308d3d994e5a410ec00921c432e7c9d53edda598
|
data/README.md
CHANGED
@@ -4,10 +4,6 @@ Compose your project using git repositories and Ruby tasks.
|
|
4
4
|
|
5
5
|
GitCompound combines features of Git submodules and common dependency managers like Bundler or Composer.
|
6
6
|
|
7
|
-
## Status
|
8
|
-
|
9
|
-
This project is in alpha phase
|
10
|
-
|
11
7
|
## Overview
|
12
8
|
|
13
9
|
Create `Compoundfile` or `.gitcompound` manifest:
|
@@ -15,26 +11,26 @@ Create `Compoundfile` or `.gitcompound` manifest:
|
|
15
11
|
```ruby
|
16
12
|
name :base_component
|
17
13
|
|
18
|
-
component :
|
14
|
+
component :vendor_1 do
|
19
15
|
version '~>1.1'
|
20
16
|
source 'git@github.com:/user/repository'
|
21
17
|
destination 'src/component_1'
|
22
18
|
end
|
23
19
|
|
24
|
-
component :
|
20
|
+
component :second_component do
|
25
21
|
version '>=2.0'
|
26
22
|
source 'git@github.com:/user/repository_2'
|
27
23
|
destination 'src/component_2'
|
28
24
|
end
|
29
25
|
|
30
|
-
component :
|
26
|
+
component :my_component do
|
31
27
|
branch 'feature/new-feature'
|
32
28
|
source '/my/component_3/repository'
|
33
29
|
destination 'src/component_3'
|
34
30
|
end
|
35
31
|
|
36
|
-
task '
|
37
|
-
|
32
|
+
task 'print details', :each do |_path, component|
|
33
|
+
puts "Component `#{component.name}` installed in #{component.path}"
|
38
34
|
end
|
39
35
|
```
|
40
36
|
|
@@ -138,6 +134,10 @@ and name constraints
|
|
138
134
|
|
139
135
|
* `sha` -- use explicitly set commit **SHA**
|
140
136
|
|
137
|
+
If SHA points to HEAD of some existing branch, this branch will be checked out instead of SHA.
|
138
|
+
This will prevent going into detached state. If SHA does not point to any HEAD of existing branch,
|
139
|
+
component destination repository will be left in detached state.
|
140
|
+
|
141
141
|
4. Provide path to **source** repository using `source` method of manifest domain specific language.
|
142
142
|
|
143
143
|
It will be used as source to clone repository into destination directory.
|
@@ -6,7 +6,7 @@ module GitCompound
|
|
6
6
|
#
|
7
7
|
class Component < Node
|
8
8
|
extend Forwardable
|
9
|
-
delegate [:sha, :ref, :origin, :
|
9
|
+
delegate [:sha, :ref, :origin, :version] => :@source
|
10
10
|
delegate [:path, :exists?, :repository] => :@destination
|
11
11
|
|
12
12
|
attr_reader :name
|
@@ -44,7 +44,7 @@ module GitCompound
|
|
44
44
|
@destination.repository do |repo|
|
45
45
|
repo.fetch
|
46
46
|
repo.checkout(@source.ref)
|
47
|
-
repo.merge
|
47
|
+
repo.merge if repo.branches.include?(@source.ref)
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -9,8 +9,13 @@ module GitCompound
|
|
9
9
|
@sha = sha
|
10
10
|
end
|
11
11
|
|
12
|
+
# If @sha matches ref in remote repository then
|
13
|
+
# this ref should be returned
|
14
|
+
# else return @sha.
|
15
|
+
#
|
12
16
|
def ref
|
13
|
-
@sha
|
17
|
+
ref = @repository.refs.find { |refs_a| refs_a.include?(@sha) }
|
18
|
+
ref ? ref.last : @sha
|
14
19
|
end
|
15
20
|
|
16
21
|
def sha # rubocop:disable Style/TrivialAccessors
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
|
1
3
|
module GitCompound
|
2
4
|
module Repository
|
3
5
|
# Local git repository implementation
|
@@ -5,8 +7,9 @@ module GitCompound
|
|
5
7
|
class RepositoryLocal < GitRepository
|
6
8
|
def initialize(source)
|
7
9
|
super
|
10
|
+
@source = Pathname.new(@source).expand_path.to_s
|
8
11
|
raise RepositoryUnreachableError unless
|
9
|
-
|
12
|
+
File.directory?("#{@source}/.git")
|
10
13
|
end
|
11
14
|
|
12
15
|
def clone(destination, options = nil)
|
data/lib/git_compound/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_compound
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grzegorz Bizon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|