git_compound 0.0.9 → 0.0.10

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: 612c6d116fee9bcaaee021484a7679932bb3e675
4
- data.tar.gz: cdd8dc429c4481348cbbea8a98f9faeb103c463c
3
+ metadata.gz: 9364d9375f8d63441e365cf7ddcdbd841de74be3
4
+ data.tar.gz: 1f7d07c9aabc1626404e73dc6995749c952d48bc
5
5
  SHA512:
6
- metadata.gz: e7dbe4c61f12ccd94571ef2e44c55fce8b35f7c32ac0e9a05bc586d68708728a43157f7441c1d47bfb713e1c19cac367f1229a0177454495ad1a8619749d5fa5
7
- data.tar.gz: 8ba2126a8ea301f628bab615f0af411b4b13a1cecc1951cf321eb906d95e8a1ce556ba7175a19a674470641be8635e6fc35acb90b24b28ab92f43907963117d6
6
+ metadata.gz: f9455c25a7672dd3cff14035bddef0c697695a1378ce6e8f72bc40b4f6582113e9407a815b750d72bd09904bf18578191a39ffede8adeac79903ee84972980f3
7
+ data.tar.gz: 0911ffa0e74ec12bd5a1d97215eed5936d1e18a1ec3630fb9850ce171fba690a6cc101b7d869db146e6afbe85680b601528669811c8f9b8d751ebda1de5d6321
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
- # Git Compound
1
+ # GitCompound
2
2
 
3
- Compose your project using git repositories and ruby tasks
3
+ Compose your project using git repositories and Ruby tasks.
4
+
5
+ GitCompound combines features of Git submodules and common dependency managers like Bundler or Composer.
4
6
 
5
7
  ## Status
6
8
 
@@ -36,14 +38,16 @@ Create `Compoundfile` or `.gitcompound` manifest:
36
38
  end
37
39
  ```
38
40
 
39
- GitCompound will also process similar manifests found in required components in hierarchical way.
40
-
41
41
  Then run `gitcompound build`.
42
42
 
43
+ GitCompound will also process manifests found in dependencies.
44
+
45
+
43
46
 
44
47
  ## Core features
45
48
 
46
- `GitCompound` is more a distributed packaging system than alternative to Git submodules.
49
+ GitCompound is more a distributed packaging system (dependency manager) than alternative to Git submodules,
50
+ however it has common features of both Git submodules and dependency managers like Bundler or Composer.
47
51
 
48
52
  `GitCompound` makes sure your project composition is the same on all machines,
49
53
  but you can have different composition depending on manifest you are using.
@@ -57,9 +61,6 @@ Core features:
57
61
  * It is possible to create multiple manifest files (`Compoundfile`, `.gitcompound` or something else)
58
62
  and build them when necessary.
59
63
 
60
- * Building manifest create lockfile (locking components on specific commit SHA). When lockfile is present if will
61
- be used each time `build` command is invoked.
62
-
63
64
  * Manifests can declare dependencies on different versions of components using different version strategies
64
65
  (Rubygems-like version, tag, branch or explicit SHA).
65
66
 
@@ -67,7 +68,7 @@ Core features:
67
68
  is root manifest. `GitCompound` processes all subsequent manifests found in dependencies using depth-first
68
69
  search of dependency graph.
69
70
 
70
- * Root manifest and manifest of each subsequent component can declare Ruby tasks that will be executed
71
+ * Root manifest and manifests of each subsequent component can declare Ruby tasks that will be executed
71
72
  when component is built or updated.
72
73
 
73
74
  * It is possible to install dependencies in root directory (`Dir.pwd` where `gitcompound` command is invoked).
@@ -75,6 +76,10 @@ Core features:
75
76
 
76
77
  * Build process creates lockfile in `.gitcompound.lock`. It locks components on specific commit SHAs.
77
78
  It is then possible to build components directly, depending on versions (SHAs) from lockfile.
79
+ When lockfile is present if will be used each time `build` command is invoked.
80
+
81
+ * It is possible to use repositories, that has been used as dependencies, for development (like in Git submodules).
82
+
78
83
 
79
84
  ## Commands
80
85
 
data/lib/git_compound.rb CHANGED
@@ -47,7 +47,8 @@ module GitCompound
47
47
  # GitCompound Logger
48
48
  #
49
49
  module Logger
50
- autoload :Colors, 'git_compound/logger/colors'
50
+ autoload :Colors, 'git_compound/logger/colors'
51
+ autoload :Debugger, 'git_compound/logger/debugger'
51
52
  require 'git_compound/logger/core_ext/string'
52
53
  end
53
54
 
@@ -53,7 +53,9 @@ module GitCompound
53
53
  if @opts.include?(:allow_nested_subtasks)
54
54
  @manifest.process(Worker::TaskRunner.new)
55
55
  else
56
- @manifest.tasks.each_value(&:execute)
56
+ @manifest.tasks.each_value do |task|
57
+ Worker::TaskRunner.new.visit_task(task)
58
+ end
57
59
  end
58
60
  self
59
61
  end
@@ -84,7 +86,7 @@ module GitCompound
84
86
 
85
87
  dormant_components.each do |component|
86
88
  Logger.warn "Removing dormant component `#{component.name}` " \
87
- "from `#{component.destination_path}` !"
89
+ "from `#{component.path}` !"
88
90
 
89
91
  component.remove!
90
92
  end
@@ -46,19 +46,16 @@ module GitCompound
46
46
 
47
47
  def run(command, args)
48
48
  abort(usage) unless methods.include?(command.to_sym)
49
-
50
- Logger.debug("GitCompound v#{GitCompound::VERSION}")
51
- Logger.debug("Running command '#{command}'")
52
-
53
49
  public_send(command, *args)
54
50
  rescue GitCompoundError => e
55
- abort Logger.error("Error: #{e.message}", :quiet)
51
+ abort Logger.parse("Error: #{e.message}".on_red.white.bold)
56
52
  end
57
53
 
58
54
  private
59
55
 
60
56
  def builder(args)
61
- Builder.new(manifest(args.first), Lock.new, args)
57
+ filename = args.find { |arg| arg.is_a? String }
58
+ Builder.new(manifest(filename), Lock.new, args)
62
59
  end
63
60
 
64
61
  def manifest(filename)
@@ -74,39 +71,41 @@ module GitCompound
74
71
 
75
72
  # rubocop:disable Metrics/AbcSize
76
73
  def usage
77
- <<-EOS
78
- #{'GitCompound version'.bold.yellow} #{GitCompound::VERSION.bold}
74
+ msg = <<-EOS
75
+ #{'GitCompound version'.bold.yellow} #{GitCompound::VERSION.bold}
79
76
 
80
- Usage: #{'gitcompound'.bold.green} #{
81
- '[options]'.green} #{'command'.bold} #{'[manifest_file]'.green}
77
+ Usage: #{'gitcompound'.bold.green} #{
78
+ '[options]'.green} #{'command'.bold} #{'[manifest_file]'.green}
82
79
 
83
- Commands:
84
- #{'build'.bold}
85
- builds project from manifest (or lockfile if present)
80
+ Commands:
81
+ #{'build'.bold}
82
+ builds project from manifest (or lockfile if present)
86
83
 
87
- If manifest is not specified it uses one of
88
- #{Manifest::FILENAMES.inspect}
84
+ If manifest is not specified it uses one of
85
+ #{Manifest::FILENAMES.inspect}
89
86
 
90
- #{'update'.bold}
91
- updates project
87
+ #{'update'.bold}
88
+ updates project
92
89
 
93
- #{'check'.bold}
94
- detects circular depenencies, conflicting dependencies
95
- and checks for name contraints
90
+ #{'check'.bold}
91
+ detects circular depenencies, conflicting dependencies
92
+ and checks for name contraints
96
93
 
97
- #{'show'.bold}
98
- prints structure of project
94
+ #{'show'.bold}
95
+ prints structure of project
99
96
 
100
- #{'help'.bold}
101
- prints this help
97
+ #{'help'.bold}
98
+ prints this help
102
99
 
103
- Options:'
104
- #{'--verbose'.bold}
105
- prints verbose log info
100
+ Options:'
101
+ #{'--verbose'.bold}
102
+ prints verbose log info
106
103
 
107
- #{'--disable-colors'.bold}
108
- disable ANSI colors in output
104
+ #{'--disable-colors'.bold}
105
+ disable ANSI colors in output
109
106
  EOS
107
+
108
+ Logger.parse(msg)
110
109
  end
111
110
  # rubocop:enable Metrics/AbcSize
112
111
  end
@@ -8,6 +8,7 @@ module GitCompound
8
8
  def initialize(args)
9
9
  @command, @args = parse_options(args)
10
10
 
11
+ self.class.disable_colors = false
11
12
  set_global_options
12
13
  end
13
14
 
@@ -32,7 +33,7 @@ module GitCompound
32
33
  end
33
34
 
34
35
  def self.disable_colors=(mode)
35
- String.disable_colors = mode
36
+ GitCompound::Logger.colors = !mode
36
37
  end
37
38
 
38
39
  private
@@ -6,6 +6,8 @@ module GitCompound
6
6
  #
7
7
  class Component < Node
8
8
  extend Forwardable
9
+ delegate [:sha, :ref, :origin, :repository, :version] => :@source
10
+ delegate [:path, :exists?, :repository] => :@destination
9
11
 
10
12
  attr_reader :name
11
13
  attr_accessor :source, :destination
@@ -31,14 +33,14 @@ module GitCompound
31
33
  @manifest ||= @source.manifest
32
34
  end
33
35
 
34
- def build
35
- @source.clone(destination_path)
36
+ def build!
37
+ @source.clone(path)
36
38
  @destination.repository do |repo|
37
39
  repo.checkout(@source.ref)
38
40
  end
39
41
  end
40
42
 
41
- def update
43
+ def update!
42
44
  @destination.repository do |repo|
43
45
  repo.fetch
44
46
  repo.checkout(@source.ref)
@@ -47,7 +49,6 @@ module GitCompound
47
49
  end
48
50
 
49
51
  def remove!
50
- path = destination_path
51
52
  raise GitCompoundError, 'Risky directory !' if
52
53
  path.start_with?('/') || path.include?('..')
53
54
  raise GitCompoundError, 'Not a directory !' unless
@@ -64,15 +65,8 @@ module GitCompound
64
65
  { name: @name,
65
66
  sha: @source.sha,
66
67
  source: @source.origin,
67
- destination: @destination.expanded_path
68
+ destination: @destination.path
68
69
  }
69
70
  end
70
-
71
- # delegators
72
-
73
- delegate [:sha, :origin, :repository, :version] => :@source
74
- def_delegator :@destination, :expanded_path, :destination_path
75
- def_delegator :@destination, :exists?, :destination_exists?
76
- def_delegator :@destination, :repository, :destination_repository
77
71
  end
78
72
  end
@@ -7,39 +7,41 @@ module GitCompound
7
7
  class Destination
8
8
  attr_reader :path
9
9
 
10
- def initialize(path, component)
10
+ def initialize(component_path, component)
11
11
  raise CompoundSyntaxError, 'Destination cannot be empty' if
12
- path.nil? || path.empty?
12
+ component_path.nil? || component_path.empty?
13
13
 
14
14
  raise CompoundSyntaxError,
15
15
  'Destination should contain at least one directory' unless
16
- Pathname.new(path).each_filename.count > 0
16
+ Pathname.new(component_path).each_filename.count > 0
17
17
 
18
- @path = path
19
18
  @component = component
20
- end
21
-
22
- def expanded_path
23
- pathname = Pathname.new(@path)
24
-
25
- unless pathname.absolute?
26
- ancestor_paths = @component.ancestors.map(&:destination_path)
27
- pathname = Pathname.new('.').join(*ancestor_paths) + pathname
28
- end
29
-
30
- Pathname.new("./#{pathname}").cleanpath.to_s + '/'
19
+ @path = expand_path(component_path)
31
20
  end
32
21
 
33
22
  def exists?
34
- FileTest.exist?(expanded_path)
23
+ FileTest.exist?(@path)
35
24
  end
36
25
 
37
26
  def repository
38
27
  destination_repository =
39
- Repository::RepositoryLocal.new(expanded_path)
28
+ Repository::RepositoryLocal.new(@path)
40
29
  yield destination_repository if block_given?
41
30
  destination_repository
42
31
  end
32
+
33
+ private
34
+
35
+ def expand_path(component_path)
36
+ pathname = Pathname.new(component_path)
37
+
38
+ unless pathname.absolute?
39
+ ancestor_paths = @component.ancestors.map(&:path)
40
+ pathname = Pathname.new('.').join(*ancestor_paths) + pathname
41
+ end
42
+
43
+ Pathname.new("./#{pathname}").cleanpath.to_s + '/'
44
+ end
43
45
  end
44
46
  end
45
47
  end
@@ -49,7 +49,7 @@ module GitCompound
49
49
 
50
50
  def find(component)
51
51
  components.find do |locked_component|
52
- locked_component.destination_path == component.destination_path
52
+ locked_component.path == component.path
53
53
  end
54
54
  end
55
55
 
@@ -5,6 +5,7 @@ module GitCompound
5
5
  extend self
6
6
 
7
7
  def verbose=(value)
8
+ load_debug_messages if value
8
9
  @verbose = value && true
9
10
  end
10
11
 
@@ -12,32 +13,50 @@ module GitCompound
12
13
  @verbose ||= false
13
14
  end
14
15
 
16
+ def colors=(value)
17
+ String.disable_colors = !(@colors = value)
18
+ end
19
+
20
+ def colors
21
+ @colors ||= true
22
+ end
23
+
15
24
  def inline(inline_message)
16
25
  print inline_message
17
26
  inline_message
18
27
  end
19
28
 
20
- def debug(debug_message, *params)
21
- log(debug_message.cyan, *params) if verbose
29
+ def debug(debug_message)
30
+ log debug_message.cyan
22
31
  end
23
32
 
24
- def info(information_message, *params)
25
- log(information_message, *params)
33
+ def info(information_message)
34
+ log information_message
26
35
  end
27
36
 
28
- def warn(warning_message, *params)
29
- log(warning_message.red.bold, *params)
37
+ def warn(warning_message)
38
+ log warning_message.red.bold
30
39
  end
31
40
 
32
- def error(error_message, *params)
33
- log(error_message.on_red.white.bold, *params)
41
+ def error(error_message)
42
+ log error_message.on_red.white.bold
43
+ end
44
+
45
+ def parse(message)
46
+ message
34
47
  end
35
48
 
36
49
  private
37
50
 
38
- def log(message, *params)
39
- puts message unless params.include?(:quiet)
51
+ def log(message)
52
+ puts message
40
53
  message
41
54
  end
55
+
56
+ def load_debug_messages
57
+ require 'git_compound/logger/debug/command'
58
+ require 'git_compound/logger/debug/repository'
59
+ require 'git_compound/logger/debug/task'
60
+ end
42
61
  end
43
62
  end
@@ -0,0 +1,12 @@
1
+ module GitCompound
2
+ # Debug cases for Command
3
+ #
4
+ module Command
5
+ extend Logger::Debugger
6
+
7
+ debug_before(:run) do |command|
8
+ "GitCompound v#{GitCompound::VERSION}\n" \
9
+ "Running command `#{command}`"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ module GitCompound
2
+ module Repository
3
+ # Debug messages for GitCommand
4
+ #
5
+ class GitCommand
6
+ extend Logger::Debugger
7
+ debug_before(:execute!) { "Running Git command `#{@command}`" }
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,16 @@
1
+ module GitCompound
2
+ module Task
3
+ # Debug messages for Task
4
+ #
5
+ class Task
6
+ extend Logger::Debugger
7
+
8
+ debug_before(:execute_on) do |directory|
9
+ "Executing task `#{@name}` " \
10
+ "defined in manifest `#{@manifest.name}`, " \
11
+ "in line `#{@block.source_location.last}`, " \
12
+ "with directory arg `#{directory}`"
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,33 @@
1
+ module GitCompound
2
+ module Logger
3
+ # Debugger mixin
4
+ #
5
+ module Debugger
6
+ def debug_before(method, &block)
7
+ debug(method, :before, &block)
8
+ end
9
+
10
+ def debug_after(method, &block)
11
+ debug(method, :after, &block)
12
+ end
13
+
14
+ private
15
+
16
+ def debug(method, moment, &block)
17
+ raise GitCompoundError, 'No block given !' unless block
18
+
19
+ method_old = "#{method}_old_debugged".to_sym
20
+ alias_method(method_old, method)
21
+ private method_old
22
+
23
+ define_method(method) do |*args|
24
+ Logger.debug(instance_exec(*args, &block)) if moment == :before
25
+ args.insert(0, send(method_old, *args))
26
+ Logger.debug(instance_exec(*args, &block)) if moment == :after
27
+
28
+ args.first
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -8,7 +8,7 @@ module GitCompound
8
8
  attr_reader :output, :status, :command
9
9
 
10
10
  def initialize(cmd, args, workdir = nil)
11
- @command = "git #{cmd} #{args} 2>&1"
11
+ @command = "(git #{cmd} #{args}) 2>&1"
12
12
  @workdir = workdir
13
13
  end
14
14
 
@@ -1,3 +1,5 @@
1
+ require 'pathname'
2
+
1
3
  module GitCompound
2
4
  module Task
3
5
  # Base abstract class for task
@@ -21,7 +23,8 @@ module GitCompound
21
23
  private
22
24
 
23
25
  def execute_on(directory, component)
24
- @block.call(directory, component)
26
+ path = Pathname.new(directory).expand_path.to_s
27
+ @block.call(path, component)
25
28
  end
26
29
  end
27
30
  end
@@ -10,7 +10,7 @@ module GitCompound
10
10
 
11
11
  def execute
12
12
  @components.each_value do |component|
13
- execute_on(component.destination_path, component)
13
+ execute_on(component.path, component)
14
14
  end
15
15
  end
16
16
 
@@ -10,7 +10,7 @@ module GitCompound
10
10
 
11
11
  def execute
12
12
  @components.each_value do |component|
13
- execute_on(component.destination_path, component)
13
+ execute_on(component.path, component)
14
14
  end
15
15
  end
16
16
  end
@@ -10,7 +10,7 @@ module GitCompound
10
10
 
11
11
  def execute
12
12
  if @component
13
- execute_on(@component.destination_path, @component.manifest)
13
+ execute_on(@component.path, @component.manifest)
14
14
  else
15
15
  # Root manifest without parent
16
16
  execute_on(Dir.pwd, @manifest)
@@ -1,5 +1,5 @@
1
1
  # GitCompound
2
2
  #
3
3
  module GitCompound
4
- VERSION = '0.0.9'
4
+ VERSION = '0.0.10'
5
5
  end
@@ -10,17 +10,17 @@ module GitCompound
10
10
 
11
11
  def visit_component(component)
12
12
  raise GitCompoundError,
13
- "Destination directory `#{component.destination_path}` " \
14
- 'already exists !' if component.destination_exists?
13
+ "Destination directory `#{component.path}` " \
14
+ 'already exists !' if component.exists?
15
15
 
16
16
  Logger.inline 'Building: '
17
17
  @print.visit_component(component)
18
18
 
19
- component.build
19
+ component.build!
20
20
 
21
21
  raise GitCompoundError,
22
- "Destination `#{component.destination_path}` " \
23
- 'verification failed !' unless component.destination_exists?
22
+ "Destination `#{component.path}` " \
23
+ 'verification failed !' unless component.exists?
24
24
 
25
25
  return unless @lock
26
26
  @lock.lock_component(component) unless @lock.find(component)
@@ -10,13 +10,13 @@ module GitCompound
10
10
 
11
11
  def visit_component(component)
12
12
  raise "Component `#{component.name}` is not built !" unless
13
- component.destination_exists?
13
+ component.exists?
14
14
 
15
15
  Logger.inline 'Replacing: '
16
16
  @print.visit_component(component)
17
17
 
18
18
  component.remove!
19
- component.build
19
+ component.build!
20
20
 
21
21
  @lock.lock_component(component)
22
22
  end
@@ -13,10 +13,8 @@ module GitCompound
13
13
  end
14
14
 
15
15
  def visit_component(component)
16
- @component = component
17
- @component_exists = component.destination_exists?
18
- @repository = component.destination_repository if
19
- @component_exists
16
+ @component = component
17
+ @repository = component.repository if component.exists?
20
18
 
21
19
  case
22
20
  when component_needs_building? then strategy = @build
@@ -38,14 +36,14 @@ module GitCompound
38
36
  # does not exist
39
37
  #
40
38
  def component_needs_building?
41
- !@component_exists
39
+ !@component.exists?
42
40
  end
43
41
 
44
42
  # Component needs updating if it exists, remote origin matches
45
43
  # new component origin and HEAD sha has changed
46
44
  #
47
45
  def component_needs_updating?
48
- return false unless @component_exists
46
+ return false unless @component.exists?
49
47
 
50
48
  @repository.origin_remote =~ /#{@component.origin}$/ &&
51
49
  @repository.head_sha != @component.sha
@@ -55,7 +53,7 @@ module GitCompound
55
53
  # remote origin does not match new component origin
56
54
  #
57
55
  def component_needs_replacing?
58
- return false unless @component_exists
56
+ return false unless @component.exists?
59
57
 
60
58
  !(@repository.origin_remote =~ /#{@component.origin}$/)
61
59
  end
@@ -10,12 +10,12 @@ module GitCompound
10
10
 
11
11
  def visit_component(component)
12
12
  raise "Component `#{component.name}` is not built !" unless
13
- component.destination_exists?
13
+ component.exists?
14
14
 
15
15
  Logger.inline 'Updating: '
16
16
  @print.visit_component(component)
17
17
 
18
- component.update
18
+ component.update!
19
19
 
20
20
  @lock.lock_component(component)
21
21
  end
@@ -3,9 +3,6 @@ module GitCompound
3
3
  # Worker that detects conflicting dependencies
4
4
  #
5
5
  class ConflictingDependencyChecker < Worker
6
- # TODO: this should collect all components first
7
- # using ComponentsCollector worker
8
- #
9
6
  def initialize
10
7
  @components = []
11
8
  end
@@ -22,8 +19,8 @@ module GitCompound
22
19
 
23
20
  def conflict_exists?(component)
24
21
  @components.any? do |other|
25
- component.destination_path == other.destination_path &&
26
- !(component == other && component.version == other.version)
22
+ !(component == other && component.version == other.version) &&
23
+ component.path == other.path
27
24
  end
28
25
  end
29
26
  end
@@ -10,7 +10,7 @@ module GitCompound
10
10
 
11
11
  def visit_component(component)
12
12
  @component = component
13
- @repository = component.destination_repository
13
+ @repository = component.repository
14
14
 
15
15
  check_uncommited_changes!
16
16
  check_untracked_files!
@@ -33,13 +33,13 @@ module GitCompound
33
33
  end
34
34
 
35
35
  def subcomponents_dirs
36
- locked_dirs = @lock.components.map { |locked| "#{locked.destination_path}".chop }
36
+ locked_dirs = @lock.components.map { |locked| "#{locked.path}".chop }
37
37
  component_subdirs = locked_dirs.select do |locked_dir|
38
- locked_dir.start_with?(@component.destination_path)
38
+ locked_dir.start_with?(@component.path)
39
39
  end
40
40
 
41
41
  component_subdirs.collect do |subdir|
42
- subdir.sub(/^#{@component.destination_path}/, '').split(File::SEPARATOR).first
42
+ subdir.sub(/^#{@component.path}/, '').split(File::SEPARATOR).first
43
43
  end
44
44
  end
45
45
  end
@@ -5,6 +5,7 @@ module GitCompound
5
5
  #
6
6
  class TaskRunner < Worker
7
7
  def visit_task(task)
8
+ Logger.info "Running: `#{task.name}` task"
8
9
  task.execute
9
10
  end
10
11
  end
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.9
4
+ version: 0.0.10
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-16 00:00:00.000000000 Z
11
+ date: 2015-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -133,6 +133,10 @@ files:
133
133
  - lib/git_compound/logger.rb
134
134
  - lib/git_compound/logger/colors.rb
135
135
  - lib/git_compound/logger/core_ext/string.rb
136
+ - lib/git_compound/logger/debug/command.rb
137
+ - lib/git_compound/logger/debug/repository.rb
138
+ - lib/git_compound/logger/debug/task.rb
139
+ - lib/git_compound/logger/debugger.rb
136
140
  - lib/git_compound/manifest.rb
137
141
  - lib/git_compound/node.rb
138
142
  - lib/git_compound/repository.rb