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.
Files changed (47) hide show
  1. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/PKG-INFO +2 -1
  2. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/README.md +1 -0
  3. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/_version.py +2 -2
  4. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync.py +23 -4
  5. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/.gitignore +0 -0
  6. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/LICENSE +0 -0
  7. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/__init__.py +0 -0
  8. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/__main__.py +0 -0
  9. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/add.py +0 -0
  10. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/api.py +0 -0
  11. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/app_api.py +0 -0
  12. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/bootstrap.py +0 -0
  13. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/branch.py +0 -0
  14. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/cli.py +0 -0
  15. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/cli_helpers.py +0 -0
  16. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/collaborator.py +0 -0
  17. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/convert_monorepo.py +0 -0
  18. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/doctor.py +0 -0
  19. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/errors.py +0 -0
  20. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/git_helpers.py +0 -0
  21. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/git_run.py +0 -0
  22. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/git_set_branch.py +0 -0
  23. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/ignore_files.py +0 -0
  24. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/init.py +0 -0
  25. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/logging.py +0 -0
  26. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/managed_blocks.py +0 -0
  27. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/open.py +0 -0
  28. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/paths.py +0 -0
  29. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/registry.py +0 -0
  30. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/remove.py +0 -0
  31. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/repo_urls.py +0 -0
  32. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/repos.py +0 -0
  33. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/resources/init_readme.md +0 -0
  34. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/service.py +0 -0
  35. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/settings.py +0 -0
  36. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_agents.py +0 -0
  37. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_github.py +0 -0
  38. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode.py +0 -0
  39. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_devcontainer.py +0 -0
  40. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_extensions.py +0 -0
  41. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_helpers.py +0 -0
  42. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_launch.py +0 -0
  43. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_settings.py +0 -0
  44. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/sync_vscode_tasks.py +0 -0
  45. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/utils.py +0 -0
  46. {multi_workspace-3.2.14 → multi_workspace-3.2.16}/multi/worktree.py +0 -0
  47. {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.14
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.14'
22
- __version_tuple__ = version_tuple = (3, 2, 14)
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 the default branch outside the workspace, then move the
113
- # checked-out repo into place. This avoids checkout conflicts when the
114
- # workspace root gitignore already manages sub-repo paths.
115
- cloned_repo = git.Repo.clone_from(repo_config.url, temp_repo_path)
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: