在另一台设备上继续 DSH 工作,三种方案
它们不是同一个问题的竞品,而是三个不同问题的答案。这一页说清各自回答什么问题、各自在哪里坏——包括我们自己。
一句话结论
要把一台机器的会话搬到另一台,你需要同步引擎(Sync Hub 或 dsh-session-sync)。要从手机操作正在运行的那台机器,你需要远程接入(dsh-remote-mobile)。按问题选,不要按 star 数选。
逐项对比
| DSH Sync Hub | dsh-session-sync | dsh-remote-mobile | |
|---|---|---|---|
| 回答的问题 | 两台机器怎么拥有同一份会话状态? | 怎么用 git 镜像会话? | 怎么用手机操作正在运行的那个 DSH? |
| 机制 | 你自己跑的 Hub + Agent,数据按块哈希搬运 | 私有 git 仓库当传输层 | 在单个运行实例前加安全代理 |
| 会话数据 | 不透明字节,只做搬运与哈希 | 不透明字节,追加进仓库 | 完全不搬,只有宿主机一份 |
| 工作区索引 | workspace.json 与 projcache 语义合并 | 同一文件,靠 git 三方合并 | 不涉及 |
| 增量传输 | 只传缺失分块(实测:追加 10 KB 传 28,928 字节) | git 对二进制的 delta,实测近似全量 | 不适用 |
| 冲突处理 | 双份都留在 Hub,本地文件不动 | 双份都留成 fork 文件,永不 force-push | 不适用 |
| 跨形态(网页/桌面/TUI) | 支持——读的是数据根目录,不是某个客户端 | 各形态写同一路径时支持 | 仅限正在运行的那一个实例 |
| 手机 | 只读控制台 | 不支持 | 支持——就是为它设计的 |
| 你需要准备 | 一台机器跑 Hub(以后也可托管) | 一个私有 git 仓库 + 凭据 | 一台常开机器 + 隧道(如 Tailscale) |
| 离线可用 | 可,联网后同步 | 可 | 不可 |
| 团队 / 多用户 | 计划中 | 按仓库授权 | 单操作者 |
| 主要失效模式 | Hub 不可达;冲突需要人来定 | 索引冲突要手工解,解错会让会话消失 | 宿主机关机就全不可用 |
各自什么时候是对的
什么时候用 DSH Sync Hub
你在两台以上机器上工作,希望两边是同一份列表、都带标题;并且比起手工解一个「决定会话显不显示」的 JSON 文件冲突,你更愿意跑一个小服务。
什么时候用 dsh-session-sync
你本来就把私有 git 仓库当权威副本,希望每台设备都能离线工作,并且接受偶尔手工解一次合并。
什么时候用 dsh-remote-mobile
你的问题是「现在就在手机上接着干」,不是「让两台机器同步」。这种问题下,一台常开机器加隧道胜过任何同步引擎。
我们弱在哪
- 必须有一个可达的 Hub。Hub 挂了就什么都不同步;git 方案还能离线继续。
- 没有远程接管。想在手机上操作正在运行的会话,这个工具不合适。
- 目前没有自动冲突解决:双份都留,等你决定。
- 附件还没同步,旧会话里引用的图片在另一台机器上可能断链。
- 单租户。多用户工作区是计划,不是已交付。
三个问题决定选型
| 你需要从另一台设备操作一个已经在跑的会话吗? | dsh-remote-mobile |
| 你需要多台机器之间有自动同步,且经常离线吗? | dsh-session-sync(git) |
| 你需要两边会话列表完全一致、带标题,并且能跑一个小服务吗? | DSH Sync Hub |
来源
常见问题
能组合使用吗?
能,但有一条规则:不要让两套机制同时写同一个会话目录。手机只走远程接入 + 机器之间走同步,是合理的组合。
为什么不用 git 就够了?
git 对文本很好,对一个每回合都在变的 22 MB 二进制很差;更要紧的是,工作区索引是单个 JSON,它的合并冲突直接决定会话显不显示。这个工具就是为这个弱点存在的。
这个对比有偏向吗?
作者就是 Sync Hub 的作者,所以请先读「我们弱在哪」那一节。所有测量都可以用本站工具复现。