Replies: 1 comment
|
Looks like the backend is now stable enough to start on jj and sapling? |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hi! I’m interested in contributing preliminary support for Sapling SCM and wanted to coordinate before starting substantial work.
I noticed that the VCS architecture anticipates eventual Sapling support, and that #2461 is developing the corresponding Jujutsu integration. I also saw that the earlier JJ contribution in #1796 was superseded by the newer architecture. I’d like to avoid duplicating planned work or pursuing an approach the maintainers would not want to maintain.
My initial target would be GitHub-hosted repositories used through the
slclient, with preliminary support for:.sland compatible.gitmodes where practical;For per-chat isolation, Sapling has an opt-in
shareextension that creates independent working directories backed by a shared repository store:This appears closer to the required abstraction than creating a full independent clone for every chat. Normal GitHub clones use the Git protocol and are not inherently lightweight or lazy, so cloning afresh per chat could introduce substantial latency and storage overhead.
My tentative workspace design would therefore be:
.slseed repository for the GitHub repository;sl shareto create an isolated working copy for each chat;sl shareis an opt-in, less prominently documented feature and includes warnings around destructive history rewriting. I would prototype and test its behavior with operations such as amend, rebase, workspace deletion, and recovery before treating it as production-ready.I would aim to keep Sapling-specific command handling inside its own driver and contribute shared changes as small, provider-neutral improvements. In particular, I would prefer generic workspace operations over adding Sapling conditionals throughout the existing Git workflow.
Before proceeding, could you clarify:
sl sharebe an acceptable candidate for per-chat workspace isolation, assuming the prototype establishes safe lifecycle and recovery behavior?.slrepositories cloned from GitHub be the initial supported mode, with.git-mode support treated separately?I’m happy to implement and test this work. My goal would be useful preliminary Sapling support without disrupting existing Git behavior or committing T3 Code to abstractions the maintainers do not want.
If this direction sounds reasonable, I can begin with either a small detection/status/diff proof of concept or a focused prototype validating
sl shareas the per-chat workspace primitive.All reactions