ace-git-worktree 0.19.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 +7 -0
- data/.ace-defaults/git/worktree.yml +250 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-git-worktree.yml +19 -0
- data/CHANGELOG.md +957 -0
- data/LICENSE +21 -0
- data/README.md +40 -0
- data/Rakefile +14 -0
- data/docs/demo/ace-git-worktree-getting-started.gif +0 -0
- data/docs/demo/ace-git-worktree-getting-started.tape.yml +28 -0
- data/docs/demo/fixtures/README.md +3 -0
- data/docs/demo/fixtures/sample.txt +1 -0
- data/docs/getting-started.md +114 -0
- data/docs/handbook.md +38 -0
- data/docs/usage.md +334 -0
- data/exe/ace-git-worktree +24 -0
- data/handbook/agents/worktree.ag.md +189 -0
- data/handbook/skills/as-git-worktree/SKILL.md +27 -0
- data/handbook/skills/as-git-worktree-create/SKILL.md +21 -0
- data/handbook/skills/as-git-worktree-manage/SKILL.md +20 -0
- data/handbook/workflow-instructions/git/worktree-create.wf.md +262 -0
- data/handbook/workflow-instructions/git/worktree-manage.wf.md +384 -0
- data/handbook/workflow-instructions/git/worktree.wf.md +224 -0
- data/lib/ace/git/worktree/atoms/git_command.rb +121 -0
- data/lib/ace/git/worktree/atoms/path_expander.rb +189 -0
- data/lib/ace/git/worktree/atoms/slug_generator.rb +235 -0
- data/lib/ace/git/worktree/atoms/task_id_extractor.rb +91 -0
- data/lib/ace/git/worktree/cli/commands/config.rb +50 -0
- data/lib/ace/git/worktree/cli/commands/create.rb +80 -0
- data/lib/ace/git/worktree/cli/commands/list.rb +76 -0
- data/lib/ace/git/worktree/cli/commands/prune.rb +43 -0
- data/lib/ace/git/worktree/cli/commands/remove.rb +48 -0
- data/lib/ace/git/worktree/cli/commands/shared_helpers.rb +66 -0
- data/lib/ace/git/worktree/cli/commands/switch.rb +44 -0
- data/lib/ace/git/worktree/cli.rb +103 -0
- data/lib/ace/git/worktree/commands/config_command.rb +351 -0
- data/lib/ace/git/worktree/commands/create_command.rb +961 -0
- data/lib/ace/git/worktree/commands/list_command.rb +247 -0
- data/lib/ace/git/worktree/commands/prune_command.rb +260 -0
- data/lib/ace/git/worktree/commands/remove_command.rb +522 -0
- data/lib/ace/git/worktree/commands/switch_command.rb +249 -0
- data/lib/ace/git/worktree/configuration.rb +167 -0
- data/lib/ace/git/worktree/models/worktree_config.rb +502 -0
- data/lib/ace/git/worktree/models/worktree_info.rb +303 -0
- data/lib/ace/git/worktree/models/worktree_metadata.rb +294 -0
- data/lib/ace/git/worktree/molecules/config_loader.rb +125 -0
- data/lib/ace/git/worktree/molecules/current_task_linker.rb +136 -0
- data/lib/ace/git/worktree/molecules/hook_executor.rb +361 -0
- data/lib/ace/git/worktree/molecules/parent_task_resolver.rb +186 -0
- data/lib/ace/git/worktree/molecules/pr_creator.rb +253 -0
- data/lib/ace/git/worktree/molecules/task_committer.rb +329 -0
- data/lib/ace/git/worktree/molecules/task_fetcher.rb +244 -0
- data/lib/ace/git/worktree/molecules/task_pusher.rb +183 -0
- data/lib/ace/git/worktree/molecules/task_status_updater.rb +447 -0
- data/lib/ace/git/worktree/molecules/worktree_creator.rb +832 -0
- data/lib/ace/git/worktree/molecules/worktree_lister.rb +337 -0
- data/lib/ace/git/worktree/molecules/worktree_remover.rb +416 -0
- data/lib/ace/git/worktree/organisms/task_worktree_orchestrator.rb +906 -0
- data/lib/ace/git/worktree/organisms/worktree_manager.rb +714 -0
- data/lib/ace/git/worktree/version.rb +9 -0
- data/lib/ace/git/worktree.rb +215 -0
- metadata +218 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "open3"
|
|
4
|
+
|
|
5
|
+
# Define CommandTimeout if not available (for some Ruby installations)
|
|
6
|
+
unless Open3.const_defined?(:CommandTimeout)
|
|
7
|
+
module Open3
|
|
8
|
+
class CommandTimeout < StandardError; end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Core ace-git dependency for Git operations
|
|
13
|
+
require "ace/git"
|
|
14
|
+
require "ace/support/config"
|
|
15
|
+
|
|
16
|
+
require_relative "worktree/version"
|
|
17
|
+
|
|
18
|
+
module Ace
|
|
19
|
+
module Git
|
|
20
|
+
# Main module for ace-git-worktree gem
|
|
21
|
+
#
|
|
22
|
+
# This gem provides task-aware git worktree management capabilities
|
|
23
|
+
# integrated with the ACE task management system.
|
|
24
|
+
#
|
|
25
|
+
# Key features:
|
|
26
|
+
# - Task-aware worktree creation with automatic metadata lookup
|
|
27
|
+
# - Integration with ace-task for task information
|
|
28
|
+
# - Configuration-driven naming conventions
|
|
29
|
+
# - Automated environment setup (mise trust)
|
|
30
|
+
# - Support for traditional worktree operations
|
|
31
|
+
#
|
|
32
|
+
# @example Task-aware worktree creation
|
|
33
|
+
# require 'ace/git/worktree'
|
|
34
|
+
#
|
|
35
|
+
# # Create a worktree for a task
|
|
36
|
+
# orchestrator = Ace::Git::Worktree::TaskWorktreeOrchestrator.new
|
|
37
|
+
# result = orchestrator.create_for_task("081")
|
|
38
|
+
#
|
|
39
|
+
# @example Traditional worktree creation
|
|
40
|
+
# manager = Ace::Git::Worktree::WorktreeManager.new
|
|
41
|
+
# result = manager.create("feature-branch")
|
|
42
|
+
#
|
|
43
|
+
# @example Access timeout configuration
|
|
44
|
+
# Ace::Git::Worktree.default_timeout # => 30
|
|
45
|
+
# Ace::Git::Worktree.max_timeout # => 300
|
|
46
|
+
module Worktree
|
|
47
|
+
# Mutex for thread-safe config initialization
|
|
48
|
+
@config_mutex = Mutex.new
|
|
49
|
+
|
|
50
|
+
class << self
|
|
51
|
+
# Get configuration for ace-git-worktree
|
|
52
|
+
# Follows ADR-022: Configuration Default and Override Pattern
|
|
53
|
+
# Uses Ace::Support::Config.create() for configuration cascade resolution
|
|
54
|
+
# Thread-safe: uses mutex for initialization
|
|
55
|
+
# @return [Hash] merged configuration hash
|
|
56
|
+
# @example Get current configuration
|
|
57
|
+
# config = Ace::Git::Worktree.config
|
|
58
|
+
# puts config.dig("timeouts", "default") # => 30
|
|
59
|
+
def config
|
|
60
|
+
# Fast path: return cached config if already initialized
|
|
61
|
+
return @config if defined?(@config) && @config
|
|
62
|
+
|
|
63
|
+
# Thread-safe initialization
|
|
64
|
+
@config_mutex.synchronize do
|
|
65
|
+
@config ||= load_config
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Reset configuration cache (mainly for testing)
|
|
70
|
+
# Thread-safe: uses mutex to prevent race conditions
|
|
71
|
+
def reset_config!
|
|
72
|
+
@config_mutex.synchronize do
|
|
73
|
+
@config = nil
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# ---- Timeout Helper Methods (ADR-022 compliant) ----
|
|
78
|
+
# These read from config instead of using hardcoded constants
|
|
79
|
+
|
|
80
|
+
# Default timeout for general git operations
|
|
81
|
+
# @return [Integer] Timeout in seconds (default: 30)
|
|
82
|
+
def default_timeout
|
|
83
|
+
config.dig("timeouts", "default") || 30
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Maximum allowed timeout for any operation
|
|
87
|
+
# @return [Integer] Timeout in seconds (default: 300)
|
|
88
|
+
def max_timeout
|
|
89
|
+
config.dig("timeouts", "max") || 300
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Timeout for after_create hook commands
|
|
93
|
+
# @return [Integer] Timeout in seconds (default: 30)
|
|
94
|
+
def hook_timeout
|
|
95
|
+
config.dig("timeouts", "hook") || 30
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Timeout for worktree list operations
|
|
99
|
+
# @return [Integer] Timeout in seconds (default: 30)
|
|
100
|
+
def list_timeout
|
|
101
|
+
config.dig("timeouts", "list") || 30
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Timeout for git commit operations
|
|
105
|
+
# @return [Integer] Timeout in seconds (default: 30)
|
|
106
|
+
def commit_timeout
|
|
107
|
+
config.dig("timeouts", "commit") || 30
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Timeout for worktree removal operations
|
|
111
|
+
# @return [Integer] Timeout in seconds (default: 30)
|
|
112
|
+
def remove_timeout
|
|
113
|
+
config.dig("timeouts", "remove") || 30
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
private
|
|
117
|
+
|
|
118
|
+
# Load configuration using Ace::Support::Config cascade
|
|
119
|
+
# Resolves gem defaults from .ace-defaults/ and user overrides from .ace/
|
|
120
|
+
# @return [Hash] Merged and transformed configuration
|
|
121
|
+
def load_config
|
|
122
|
+
gem_root = Gem.loaded_specs["ace-git-worktree"]&.gem_dir ||
|
|
123
|
+
File.expand_path("../../../..", __dir__)
|
|
124
|
+
|
|
125
|
+
resolver = Ace::Support::Config.create(
|
|
126
|
+
config_dir: ".ace",
|
|
127
|
+
defaults_dir: ".ace-defaults",
|
|
128
|
+
gem_path: gem_root
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
# Resolve config for git/worktree namespace
|
|
132
|
+
config_result = resolver.resolve_namespace("git", filename: "worktree")
|
|
133
|
+
|
|
134
|
+
# Extract and flatten the git.worktree section for backward compatibility
|
|
135
|
+
raw_config = config_result.data
|
|
136
|
+
extract_worktree_config(raw_config)
|
|
137
|
+
rescue Ace::Support::Config::YamlParseError => e
|
|
138
|
+
warn "ace-git-worktree: YAML syntax error in configuration"
|
|
139
|
+
warn " #{e.message}"
|
|
140
|
+
# Fall back to gem defaults
|
|
141
|
+
load_gem_defaults_fallback
|
|
142
|
+
rescue => e
|
|
143
|
+
warn "ace-git-worktree: Failed to load configuration: #{e.message}"
|
|
144
|
+
load_gem_defaults_fallback
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# Load gem defaults directly as fallback when cascade resolution fails
|
|
148
|
+
# @return [Hash] Defaults hash or empty hash if defaults also fail
|
|
149
|
+
def load_gem_defaults_fallback
|
|
150
|
+
gem_root = Gem.loaded_specs["ace-git-worktree"]&.gem_dir ||
|
|
151
|
+
File.expand_path("../../../..", __dir__)
|
|
152
|
+
|
|
153
|
+
defaults_path = File.join(gem_root, ".ace-defaults", "git", "worktree.yml")
|
|
154
|
+
|
|
155
|
+
return {} unless File.exist?(defaults_path)
|
|
156
|
+
|
|
157
|
+
data = YAML.safe_load_file(defaults_path, permitted_classes: [Date], aliases: true) || {}
|
|
158
|
+
extract_worktree_config(data)
|
|
159
|
+
rescue
|
|
160
|
+
{} # Only return empty hash if even defaults fail to load
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
# Extract worktree configuration from YAML structure
|
|
164
|
+
# Unwraps git.worktree nesting for easier access
|
|
165
|
+
# @param raw_config [Hash] The raw YAML config
|
|
166
|
+
# @return [Hash] Flattened worktree configuration
|
|
167
|
+
def extract_worktree_config(raw_config)
|
|
168
|
+
return {} if raw_config.nil? || raw_config.empty?
|
|
169
|
+
|
|
170
|
+
# Handle git.worktree nesting
|
|
171
|
+
if raw_config.key?("git") && raw_config["git"].is_a?(Hash)
|
|
172
|
+
raw_config["git"]["worktree"] || raw_config["git"]
|
|
173
|
+
elsif raw_config.key?("worktree") && raw_config["worktree"].is_a?(Hash)
|
|
174
|
+
raw_config["worktree"]
|
|
175
|
+
else
|
|
176
|
+
raw_config
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Load all the core components
|
|
182
|
+
require_relative "worktree/configuration"
|
|
183
|
+
require_relative "worktree/models/worktree_config"
|
|
184
|
+
require_relative "worktree/models/worktree_info"
|
|
185
|
+
require_relative "worktree/models/worktree_metadata"
|
|
186
|
+
|
|
187
|
+
require_relative "worktree/atoms/git_command"
|
|
188
|
+
require_relative "worktree/atoms/path_expander"
|
|
189
|
+
require_relative "worktree/atoms/slug_generator"
|
|
190
|
+
|
|
191
|
+
require_relative "worktree/molecules/config_loader"
|
|
192
|
+
require_relative "worktree/molecules/task_fetcher"
|
|
193
|
+
require_relative "worktree/molecules/pr_creator"
|
|
194
|
+
require_relative "worktree/molecules/task_committer"
|
|
195
|
+
require_relative "worktree/molecules/task_pusher"
|
|
196
|
+
require_relative "worktree/molecules/task_status_updater"
|
|
197
|
+
require_relative "worktree/molecules/worktree_creator"
|
|
198
|
+
require_relative "worktree/molecules/worktree_lister"
|
|
199
|
+
require_relative "worktree/molecules/worktree_remover"
|
|
200
|
+
require_relative "worktree/molecules/hook_executor"
|
|
201
|
+
|
|
202
|
+
require_relative "worktree/organisms/task_worktree_orchestrator"
|
|
203
|
+
require_relative "worktree/organisms/worktree_manager"
|
|
204
|
+
|
|
205
|
+
require_relative "worktree/commands/create_command"
|
|
206
|
+
require_relative "worktree/commands/list_command"
|
|
207
|
+
require_relative "worktree/commands/switch_command"
|
|
208
|
+
require_relative "worktree/commands/remove_command"
|
|
209
|
+
require_relative "worktree/commands/prune_command"
|
|
210
|
+
require_relative "worktree/commands/config_command"
|
|
211
|
+
|
|
212
|
+
require_relative "worktree/cli"
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: ace-git-worktree
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.19.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Michal Czyz
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: ace-support-cli
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0.3'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0.3'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: ace-support-core
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0.24'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0.24'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: ace-support-config
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0.7'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0.7'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: ace-git
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0.11'
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0.11'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: ace-task
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0.11'
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0.11'
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: rake
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
89
|
+
type: :development
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0'
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: minitest
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
103
|
+
type: :development
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
110
|
+
- !ruby/object:Gem::Dependency
|
|
111
|
+
name: ace-support-test-helpers
|
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - "~>"
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: '0.12'
|
|
117
|
+
type: :development
|
|
118
|
+
prerelease: false
|
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - "~>"
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '0.12'
|
|
124
|
+
description: |
|
|
125
|
+
ace-git-worktree creates isolated worktrees for tasks, pull requests, and
|
|
126
|
+
branches, with task metadata updates, configurable hooks, and cleanup
|
|
127
|
+
workflows for focused development.
|
|
128
|
+
email:
|
|
129
|
+
- mc@cs3b.com
|
|
130
|
+
executables:
|
|
131
|
+
- ace-git-worktree
|
|
132
|
+
extensions: []
|
|
133
|
+
extra_rdoc_files: []
|
|
134
|
+
files:
|
|
135
|
+
- ".ace-defaults/git/worktree.yml"
|
|
136
|
+
- ".ace-defaults/nav/protocols/wfi-sources/ace-git-worktree.yml"
|
|
137
|
+
- CHANGELOG.md
|
|
138
|
+
- LICENSE
|
|
139
|
+
- README.md
|
|
140
|
+
- Rakefile
|
|
141
|
+
- docs/demo/ace-git-worktree-getting-started.gif
|
|
142
|
+
- docs/demo/ace-git-worktree-getting-started.tape.yml
|
|
143
|
+
- docs/demo/fixtures/README.md
|
|
144
|
+
- docs/demo/fixtures/sample.txt
|
|
145
|
+
- docs/getting-started.md
|
|
146
|
+
- docs/handbook.md
|
|
147
|
+
- docs/usage.md
|
|
148
|
+
- exe/ace-git-worktree
|
|
149
|
+
- handbook/agents/worktree.ag.md
|
|
150
|
+
- handbook/skills/as-git-worktree-create/SKILL.md
|
|
151
|
+
- handbook/skills/as-git-worktree-manage/SKILL.md
|
|
152
|
+
- handbook/skills/as-git-worktree/SKILL.md
|
|
153
|
+
- handbook/workflow-instructions/git/worktree-create.wf.md
|
|
154
|
+
- handbook/workflow-instructions/git/worktree-manage.wf.md
|
|
155
|
+
- handbook/workflow-instructions/git/worktree.wf.md
|
|
156
|
+
- lib/ace/git/worktree.rb
|
|
157
|
+
- lib/ace/git/worktree/atoms/git_command.rb
|
|
158
|
+
- lib/ace/git/worktree/atoms/path_expander.rb
|
|
159
|
+
- lib/ace/git/worktree/atoms/slug_generator.rb
|
|
160
|
+
- lib/ace/git/worktree/atoms/task_id_extractor.rb
|
|
161
|
+
- lib/ace/git/worktree/cli.rb
|
|
162
|
+
- lib/ace/git/worktree/cli/commands/config.rb
|
|
163
|
+
- lib/ace/git/worktree/cli/commands/create.rb
|
|
164
|
+
- lib/ace/git/worktree/cli/commands/list.rb
|
|
165
|
+
- lib/ace/git/worktree/cli/commands/prune.rb
|
|
166
|
+
- lib/ace/git/worktree/cli/commands/remove.rb
|
|
167
|
+
- lib/ace/git/worktree/cli/commands/shared_helpers.rb
|
|
168
|
+
- lib/ace/git/worktree/cli/commands/switch.rb
|
|
169
|
+
- lib/ace/git/worktree/commands/config_command.rb
|
|
170
|
+
- lib/ace/git/worktree/commands/create_command.rb
|
|
171
|
+
- lib/ace/git/worktree/commands/list_command.rb
|
|
172
|
+
- lib/ace/git/worktree/commands/prune_command.rb
|
|
173
|
+
- lib/ace/git/worktree/commands/remove_command.rb
|
|
174
|
+
- lib/ace/git/worktree/commands/switch_command.rb
|
|
175
|
+
- lib/ace/git/worktree/configuration.rb
|
|
176
|
+
- lib/ace/git/worktree/models/worktree_config.rb
|
|
177
|
+
- lib/ace/git/worktree/models/worktree_info.rb
|
|
178
|
+
- lib/ace/git/worktree/models/worktree_metadata.rb
|
|
179
|
+
- lib/ace/git/worktree/molecules/config_loader.rb
|
|
180
|
+
- lib/ace/git/worktree/molecules/current_task_linker.rb
|
|
181
|
+
- lib/ace/git/worktree/molecules/hook_executor.rb
|
|
182
|
+
- lib/ace/git/worktree/molecules/parent_task_resolver.rb
|
|
183
|
+
- lib/ace/git/worktree/molecules/pr_creator.rb
|
|
184
|
+
- lib/ace/git/worktree/molecules/task_committer.rb
|
|
185
|
+
- lib/ace/git/worktree/molecules/task_fetcher.rb
|
|
186
|
+
- lib/ace/git/worktree/molecules/task_pusher.rb
|
|
187
|
+
- lib/ace/git/worktree/molecules/task_status_updater.rb
|
|
188
|
+
- lib/ace/git/worktree/molecules/worktree_creator.rb
|
|
189
|
+
- lib/ace/git/worktree/molecules/worktree_lister.rb
|
|
190
|
+
- lib/ace/git/worktree/molecules/worktree_remover.rb
|
|
191
|
+
- lib/ace/git/worktree/organisms/task_worktree_orchestrator.rb
|
|
192
|
+
- lib/ace/git/worktree/organisms/worktree_manager.rb
|
|
193
|
+
- lib/ace/git/worktree/version.rb
|
|
194
|
+
homepage: https://github.com/cs3b/ace
|
|
195
|
+
licenses:
|
|
196
|
+
- MIT
|
|
197
|
+
metadata:
|
|
198
|
+
homepage_uri: https://github.com/cs3b/ace
|
|
199
|
+
source_code_uri: https://github.com/cs3b/ace/tree/main/ace-git-worktree
|
|
200
|
+
changelog_uri: https://github.com/cs3b/ace/blob/main/ace-git-worktree/CHANGELOG.md
|
|
201
|
+
rdoc_options: []
|
|
202
|
+
require_paths:
|
|
203
|
+
- lib
|
|
204
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
|
+
requirements:
|
|
206
|
+
- - ">="
|
|
207
|
+
- !ruby/object:Gem::Version
|
|
208
|
+
version: 3.2.0
|
|
209
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
|
+
requirements:
|
|
211
|
+
- - ">="
|
|
212
|
+
- !ruby/object:Gem::Version
|
|
213
|
+
version: '0'
|
|
214
|
+
requirements: []
|
|
215
|
+
rubygems_version: 3.6.9
|
|
216
|
+
specification_version: 4
|
|
217
|
+
summary: Task-aware git worktree management with isolated environments in one command
|
|
218
|
+
test_files: []
|