git-bundle 1.0.12 → 1.0.13
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.lock +1 -1
- data/lib/git_bundle.rb +2 -0
- data/lib/git_bundle/branch_config.rb +38 -0
- data/lib/git_bundle/cli.rb +12 -10
- data/lib/git_bundle/commands/checkout.rb +10 -20
- data/lib/git_bundle/commands/generate.rb +18 -0
- data/lib/git_bundle/project.rb +4 -0
- data/lib/git_bundle/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3be318a54723d942310503e63607c65c123d90c6523f8112bc9a33e47682f0de
|
4
|
+
data.tar.gz: dac2dade83c04bac6f2e716b5c2b0eab2c85ebd0d2d0faf078cf89fa641a23a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d0b2b23d325b0e0abc79016868c998862234f8f029c0d171693883595706deec34ff2807a91d2eac39c786f48a4b72e1fa3354f8b04ee99bef7f4b8b32e5389
|
7
|
+
data.tar.gz: 5563b33d87947c8dc0861fb37c5101b4fc162b1d053f6939dcc75b8a5c1a57ff9c434065f1ef87e76ec4f2a22ea4557527ba71e76a7b4e176d4b09a0e4752ff6
|
data/Gemfile.lock
CHANGED
data/lib/git_bundle.rb
CHANGED
@@ -6,7 +6,9 @@ require 'git_bundle/shell'
|
|
6
6
|
require 'git_bundle/cli'
|
7
7
|
require 'git_bundle/repository'
|
8
8
|
require 'git_bundle/project'
|
9
|
+
require 'git_bundle/branch_config'
|
9
10
|
require 'git_bundle/commands/generic'
|
10
11
|
require 'git_bundle/commands/push'
|
11
12
|
require 'git_bundle/commands/checkout'
|
13
|
+
require 'git_bundle/commands/generate'
|
12
14
|
require 'git_bundle/commands/version'
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module GitBundle
|
2
|
+
class BranchConfig
|
3
|
+
include GitBundle::Console
|
4
|
+
BRANCH_CONFIG_FILE = '.gitb.yml'
|
5
|
+
|
6
|
+
attr_reader :filename
|
7
|
+
|
8
|
+
def initialize(filename = nil)
|
9
|
+
@filename = filename || BRANCH_CONFIG_FILE
|
10
|
+
end
|
11
|
+
|
12
|
+
def path
|
13
|
+
File.join(Dir.pwd, filename)
|
14
|
+
end
|
15
|
+
|
16
|
+
def current
|
17
|
+
return @current if defined?(@current)
|
18
|
+
@current = read
|
19
|
+
end
|
20
|
+
|
21
|
+
def read
|
22
|
+
File.exists?(path) ? YAML.load_file(path) || {} : nil
|
23
|
+
end
|
24
|
+
|
25
|
+
def changed?
|
26
|
+
current != read
|
27
|
+
end
|
28
|
+
|
29
|
+
def save
|
30
|
+
File.open(path, 'w') {|file| file.write(current.to_yaml.lines[1..-1].join)}
|
31
|
+
if File.exists?(path)
|
32
|
+
puts "\t#{colorize('update', 34, bold: true)}\t#{filename}"
|
33
|
+
else
|
34
|
+
puts "\t#{colorize('create', 32, bold: true)}\t#{filename}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/git_bundle/cli.rb
CHANGED
@@ -9,16 +9,18 @@ module GitBundle
|
|
9
9
|
|
10
10
|
def invoke(args)
|
11
11
|
case args[0]
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
12
|
+
when nil, '--help', 'help'
|
13
|
+
puts `git #{args.join(' ')}`.gsub('git', 'gitb')
|
14
|
+
when 'push'
|
15
|
+
GitBundle::Commands::Push.new(@project, args[1..-1]).invoke
|
16
|
+
when 'checkout'
|
17
|
+
GitBundle::Commands::Checkout.new(@project, args[1..-1]).invoke
|
18
|
+
when 'generate', 'g'
|
19
|
+
GitBundle::Commands::Generate.new(@project, args[1..-1]).invoke
|
20
|
+
when '--version'
|
21
|
+
GitBundle::Commands::Version.new.invoke
|
22
|
+
else
|
23
|
+
GitBundle::Commands::Generic.new(@project, args).invoke
|
22
24
|
end
|
23
25
|
rescue Bundler::GemfileNotFound => e
|
24
26
|
puts_error("Could not find Gemfile in the current directory")
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module GitBundle
|
2
2
|
module Commands
|
3
3
|
class Checkout
|
4
|
-
BRANCH_CONFIG_FILE = '.gitb.yml'
|
5
4
|
include GitBundle::Console
|
6
5
|
|
7
6
|
def initialize(project, args)
|
@@ -19,13 +18,18 @@ module GitBundle
|
|
19
18
|
if checkout(@project.main_repository, @args.first)
|
20
19
|
checkout_parallel(@project.dependant_repositories, @args.first)
|
21
20
|
end
|
22
|
-
|
23
21
|
elsif @args.size == 2 && @args.first == '-b'
|
24
22
|
if checkout(@project.main_repository, @args.last, create_new: true, force: true)
|
25
23
|
@project.dependant_repositories.each {|r| checkout(r, @args.last, create_new: true)}
|
26
24
|
end
|
25
|
+
@project.branch_config.save if @project.branch_config.changed?
|
26
|
+
elsif @args.size == 2 && (@args.first == '-a' || @args.first == '--all')
|
27
|
+
if checkout(@project.main_repository, @args.last)
|
28
|
+
@project.dependant_repositories.each {|r| checkout(r, @args.last)}
|
29
|
+
end
|
30
|
+
@project.branch_config.save if @project.branch_config.changed?
|
27
31
|
else
|
28
|
-
puts_error "Invalid arguments for checkout. Usage: \n\tgitb checkout\n\tgitb checkout <branch>\n\tgitb checkout -b <
|
32
|
+
puts_error "Invalid arguments for checkout. Usage: \n\tgitb checkout\n\tgitb checkout <branch>\n\tgitb checkout -b <new branch>\n\tgitb checkout -a <force branch all repositories>"
|
29
33
|
end
|
30
34
|
end
|
31
35
|
|
@@ -46,33 +50,19 @@ module GitBundle
|
|
46
50
|
repo.refresh_branch
|
47
51
|
puts_repo_heading(repo) unless create_new && !force
|
48
52
|
success ? puts(output) : puts_error(output)
|
49
|
-
if
|
50
|
-
branch_config[repo.name] = branch
|
51
|
-
write_branch_config
|
53
|
+
if success && !repo.main && @project.branch_config.current && @project.branch_config.current[repo.name] != branch
|
54
|
+
@project.branch_config.current[repo.name] = branch
|
52
55
|
end
|
53
56
|
success
|
54
57
|
end
|
55
58
|
|
56
59
|
def checkout_parallel(repositories, fallback_branch)
|
57
60
|
parallel(repositories) do |repo|
|
58
|
-
output = repo.execute_git(['checkout', branch_config&.dig(repo.name) || fallback_branch], color: true)
|
61
|
+
output = repo.execute_git(['checkout', @project.branch_config.current&.dig(repo.name) || fallback_branch], color: true)
|
59
62
|
repo.refresh_branch
|
60
63
|
ExecutionResult.new($?.exitstatus != 0, output)
|
61
64
|
end
|
62
65
|
end
|
63
|
-
|
64
|
-
def branch_config
|
65
|
-
return @branch_config if defined?(@branch_config)
|
66
|
-
@branch_config ||= File.exists?(config_file) ? YAML.load_file(config_file) || {} : nil
|
67
|
-
end
|
68
|
-
|
69
|
-
def config_file
|
70
|
-
File.join(Dir.pwd, BRANCH_CONFIG_FILE)
|
71
|
-
end
|
72
|
-
|
73
|
-
def write_branch_config
|
74
|
-
File.open(File.join(Dir.pwd, BRANCH_CONFIG_FILE), 'w') {|file| file.write(branch_config.to_yaml.lines[1..-1].join)}
|
75
|
-
end
|
76
66
|
end
|
77
67
|
end
|
78
68
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module GitBundle
|
2
|
+
module Commands
|
3
|
+
class Generate
|
4
|
+
include GitBundle::Console
|
5
|
+
|
6
|
+
def initialize(project, args)
|
7
|
+
@project = project
|
8
|
+
@args = args
|
9
|
+
end
|
10
|
+
|
11
|
+
def invoke
|
12
|
+
@project.load_dependant_repositories
|
13
|
+
@project.repositories.each {|p| @project.branch_config.current[p.name] = p.branch}
|
14
|
+
@project.branch_config.save
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/git_bundle/project.rb
CHANGED
data/lib/git_bundle/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git-bundle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pierre Pretorius
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -43,8 +43,10 @@ files:
|
|
43
43
|
- bin/gitb
|
44
44
|
- git-bundle.gemspec
|
45
45
|
- lib/git_bundle.rb
|
46
|
+
- lib/git_bundle/branch_config.rb
|
46
47
|
- lib/git_bundle/cli.rb
|
47
48
|
- lib/git_bundle/commands/checkout.rb
|
49
|
+
- lib/git_bundle/commands/generate.rb
|
48
50
|
- lib/git_bundle/commands/generic.rb
|
49
51
|
- lib/git_bundle/commands/push.rb
|
50
52
|
- lib/git_bundle/commands/version.rb
|