multi-workspace 3.2.14__tar.gz → 3.2.16__tar.gz
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.
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/PKG-INFO +2 -1
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/README.md +1 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/_version.py +2 -2
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync.py +23 -4
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/.gitignore +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/LICENSE +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/__init__.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/__main__.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/add.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/api.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/app_api.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/bootstrap.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/branch.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/cli.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/cli_helpers.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/collaborator.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/convert_monorepo.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/doctor.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/errors.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/git_helpers.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/git_run.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/git_set_branch.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/ignore_files.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/init.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/logging.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/managed_blocks.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/open.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/paths.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/registry.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/remove.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/repo_urls.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/repos.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/resources/init_readme.md +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/service.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/settings.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_agents.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_github.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_devcontainer.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_extensions.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_helpers.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_launch.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_settings.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_tasks.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/utils.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/worktree.py +0 -0
- {multi_workspace-3.2.14 → multi_workspace-3.2.16}/pyproject.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: multi-workspace
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.16
|
|
4
4
|
Summary: Multi
|
|
5
5
|
Project-URL: Repository, https://github.com/gabemontague/multi
|
|
6
6
|
Project-URL: Issues, https://github.com/gabemontague/multi/issues
|
|
@@ -37,6 +37,7 @@ Features:
|
|
|
37
37
|
- Supports optional `installSets` so installer scripts can sync only a public/runtime subset of repos.
|
|
38
38
|
- Optionally generates `CLAUDE.md` and `AGENTS.md` files from tracked `AGENTS.parts/*.md` files.
|
|
39
39
|
- In monorepo mode, syncs sub-repo GitHub workflows into root `.github/workflows`.
|
|
40
|
+
- Pairs with Multi Desktop for workspace diffs, branch visibility, and actionable push diagnostics.
|
|
40
41
|
|
|
41
42
|
## Installation
|
|
42
43
|
|
|
@@ -10,6 +10,7 @@ Features:
|
|
|
10
10
|
- Supports optional `installSets` so installer scripts can sync only a public/runtime subset of repos.
|
|
11
11
|
- Optionally generates `CLAUDE.md` and `AGENTS.md` files from tracked `AGENTS.parts/*.md` files.
|
|
12
12
|
- In monorepo mode, syncs sub-repo GitHub workflows into root `.github/workflows`.
|
|
13
|
+
- Pairs with Multi Desktop for workspace diffs, branch visibility, and actionable push diagnostics.
|
|
13
14
|
|
|
14
15
|
## Installation
|
|
15
16
|
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '3.2.
|
|
22
|
-
__version_tuple__ = version_tuple = (3, 2,
|
|
21
|
+
__version__ = version = '3.2.16'
|
|
22
|
+
__version_tuple__ = version_tuple = (3, 2, 16)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -109,10 +109,29 @@ def _clone_repo(
|
|
|
109
109
|
) as temp_dir:
|
|
110
110
|
temp_repo_path = Path(temp_dir) / repo_config.name
|
|
111
111
|
|
|
112
|
-
# First clone
|
|
113
|
-
#
|
|
114
|
-
#
|
|
115
|
-
|
|
112
|
+
# First clone outside the workspace, then move the checked-out repo
|
|
113
|
+
# into place. This avoids checkout conflicts when the workspace root
|
|
114
|
+
# gitignore already manages sub-repo paths.
|
|
115
|
+
clone_kwargs = {}
|
|
116
|
+
if expected_branch:
|
|
117
|
+
clone_kwargs = {"branch": expected_branch, "single_branch": True}
|
|
118
|
+
|
|
119
|
+
try:
|
|
120
|
+
cloned_repo = git.Repo.clone_from(
|
|
121
|
+
repo_config.url,
|
|
122
|
+
temp_repo_path,
|
|
123
|
+
**clone_kwargs,
|
|
124
|
+
)
|
|
125
|
+
except GitCommandError:
|
|
126
|
+
if not expected_branch:
|
|
127
|
+
raise
|
|
128
|
+
|
|
129
|
+
# Preserve the historical fallback for repos that do not have the
|
|
130
|
+
# mirrored branch: clone whatever the remote default is, then warn
|
|
131
|
+
# below when checkout cannot find the expected branch.
|
|
132
|
+
if temp_repo_path.exists():
|
|
133
|
+
shutil.rmtree(temp_repo_path)
|
|
134
|
+
cloned_repo = git.Repo.clone_from(repo_config.url, temp_repo_path)
|
|
116
135
|
|
|
117
136
|
# Then checkout the expected branch if one is defined for this repo.
|
|
118
137
|
if expected_branch:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|