mutagen同步本地与开发机代码
mutagen同步本地与开发机代码
由于本地运行项目需要sshuttle连接公司内网,麻烦、而且会和飞连冲突,所以决定在开发机上进行运行调试。然而开发机由于网络环境原因,各类ai工具使用体验都比较差(copilot卡顿、codex无法连接),所以在本地开发,将代码同步到开发机进行调试就成为了更好的选择。
原本是想找找vsc上有没有类似jbs remote deployment的功能或插件,但很遗憾没有找到,所以fallback到使用文件同步的手段完成代码同步。多方查找之后找到了mutagen,相较于syncthing这类文件同步工具,mutagen最大的优势是只需要在本地安装工具,而不需要在同步的两端都安装。这对于使用网络环境受限的开发机的我来说无疑极大的降低了配置的难度。
目前mutagen被docker收购,成为了容器开发默认的代码/文件同步手段
安装
只需要在本地安装(本地为mac)
brew install havoc-io/mutagen/mutagen启动daemon
mutagen daemon start
mutagen daemon stop全局配置文件
sync:
defaults:
mode:"two-way-resolved"
maxEntryCount:5000000
maxStagingFileSize:"10 GB"
symlink:
mode:"posix-raw"
watch:
mode:"portable"
pollingInterval:5
ignore:
vcs:true
paths:
# System files
-".DS_Store"
-"._*"
-".vscode"
-".idea"
-".trae"
-".venv"
-".codebase"
-".pytest_cache"
# Vim files
-"*~"
-"*.sw[a-p]"
permissions:
defaultFileMode:644
defaultDirectoryMode:0755推荐不同步版本控制相关文件,版本控制在本地完成
创建同步session
mutagen sync create --sync-mode=two-way-resolved --ignore-vcs ~/Coding/project user@DevBox:~/Coding/project此时使用 mutagen sync list 应该可以看到状态:
--------------------------------------------------------------------------------
Identifier: sync_f90KzoFkrUqL7PoLR4srg89iLhx7wLvitsdNxce4isP
Alpha:
URL: /Users/bytedance/Coding/project
Connected:Yes
Synchronizable contents:
937 directories
6071 files (174 MB)
1 symbolic link
Beta:
URL: user@DevBox:~/Coding/project
Connected:Yes
Synchronizable contents:
937 directories
6071 files (174 MB)
1 symbolic link
Status: Watching for changes
--------------------------------------------------------------------------------常用命令
# 列出同步列表
mutagen sync list
mutagen sync list -l # 详情
# 删除会话
mutagen sync terminate sync_D3Qxg7dMl1wlTFD4X2Vilw3Lj4j5uo9OyIxHHwwRn0o
# 暂停同步
mutagen sync pause sync_f90KzoFkrUqL7PoLR4srg89iLhx7wLvitsdNxce4isP
# 恢复同步
mutagen sync resume sync_f90KzoFkrUqL7PoLR4srg89iLhx7wLvitsdNxce4isP
mutagen同步本地与开发机代码
http://blog.kurfuerst.online/index.php/archives/45/