Add allod patch subcommand #77
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Add
allodworkflow helpers for handing public repository commits from a private-capable dev VM to a public-authorized checkout without copying working trees or granting one environment both capabilities.Background
Some development sessions can read private local context but are intentionally not allowed to push public Allod repositories. The manual workaround is to leave a local commit ahead of origin, export a patch, transfer it to a public-authorized host, apply it, review it, and push. This should be a small scripted workflow so agents can produce a precise handoff artifact and humans can apply it consistently.
The preferred UX should not require the human to SSH into the dev VM, run one command, exit, and then run another command on the host. The public-authorized host should orchestrate the workflow: connect to the source VM over SSH, generate the patch artifact from the source checkout, pull only that artifact back, then apply/review it in the destination checkout.
Proposed interface
Add host-side subcommands, names can change if the existing CLI shape suggests better wording:
fetchruns on the public-authorized host. It SSHes into the source dev VM and generates the handoff artifact from the source repo checkout:git format-patchfor<base>..HEADin a temporary artifact directory on the source VM;--keep-remote-artifactis explicitly requested;applyruns on the public-authorized host in or against the destination repo checkout:git am --3way;git diff --checkagainst the applied range;git log --oneline <base>..HEADandgit show --stat --oneline HEAD;git pushto the human by default.--pushmay exist, but should be explicit.receiveis the smooth-path wrapper that runsfetchand thenapplyfrom the public-authorized host. It should still stop before push unless--pushis explicit.Transfer model
The public-authorized host pulls a generated artifact from the source dev VM. The artifact is committed changes only: patches plus manifest.
Implementation can use
scpfor the generated artifact directory, or stream a tar archive over SSH if that is simpler and robust. In either case:git format-patch, manifest/checksum generation, and artifact cleanup.Example happy path:
Acceptance criteria
git am --3wayapply.Non-goals
Add public repo patch handoff helpersto Add allod patch subcommand