V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
geeti
V2EX  ›  程序员

大家怎么同步云工作站和笔记本的代码

  •  1
     
  •   geeti · 2018-09-03 05:13:53 +08:00 · 4094 次点击
    这是一个创建于 2278 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司发的笔记本比较弱鸡,15 年的 mbp,但每人配 48 核云主机用来开发和调试。

    现在的问题是想找到一个最好用的双路自动同步的解决方案,本地的 ide 代码写完,直接在远程运行。或者远程 ssh 改点东西,自动同步导笔记本。

    sshfs/smb 这些不能在本地保存,就不考虑了。

    用过 unison,fsmonitor 在 mac 上支持不好,太耗 cpu

    现在用 syncthing,大部分时间还行,但有时候居然会漏掉几个文件

    还有什么好用的解决方案吗?

    45 条回复    2020-04-12 15:02:42 +08:00
    leafiy
        1
    leafiy  
       2018-09-03 06:00:58 +08:00 via Android
    在用 geeknote
    geeti
        2
    geeti  
    OP
       2018-09-03 06:14:22 +08:00
    @leafiy 这东西不能用吧?要是把代码传到第三方服务器这是要丢工作的啊
    leafiy
        3
    leafiy  
       2018-09-03 06:25:54 +08:00
    @geeti 理解错了,你要同步代码阿,之前用过 rsync 还可以,完全没遇到过漏掉文件
    opengps
        4
    opengps  
       2018-09-03 06:36:09 +08:00 via Android
    48 核主机,直接远程开发就够用了吧
    geeti
        5
    geeti  
    OP
       2018-09-03 06:45:31 +08:00
    @opengps 远程开发写代码咋写?直接用 vim 写 java 没那本事 😂
    X11 远程 ide 界面实在太丑
    公司开发的 cloud9 远程 ide 又不支持 java
    geeti
        6
    geeti  
    OP
       2018-09-03 06:46:13 +08:00
    @leafiy rsync 是最老牌的,但问题是 rsync 貌似不能检测文件系统触发自动同步
    jmc891205
        7
    jmc891205  
       2018-09-03 07:12:02 +08:00
    代码存在本地 编译和运行的时候丢到服务器上去
    不知道有没有开源的实现 我们公司是用的自己开发的工具
    jorneyr
        8
    jorneyr  
       2018-09-03 07:39:42 +08:00
    在服务器上弄个 Git 私服
    kirigaya
        9
    kirigaya  
       2018-09-03 07:49:14 +08:00
    https://github.com/axkibe/lsyncd 可以试试这个。
    lishunli
        10
    lishunli  
       2018-09-03 07:51:42 +08:00 via Android
    要不要整一套 CI
    zclHIT
        11
    zclHIT  
       2018-09-03 07:53:57 +08:00 via iPhone
    代码本地测功能..然后打好包发布到服务器上再测一遍..小修改直接本地编译替换服务器 class 重启 tomcat..大改动重新打个包..至于效率嘛……╮( ̄▽ ̄"")╭
    lovepocky
        12
    lovepocky  
       2018-09-03 08:14:39 +08:00 via iPhone
    syncthing 用一年多了,挺稳定
    huangzhe8263
        13
    huangzhe8263  
       2018-09-03 08:34:54 +08:00 via Android
    如果是常见语言的话
    用 jetbrains 家 ide 如 pycharm 走远程部署即可
    Nick2VIPUser
        14
    Nick2VIPUser  
       2018-09-03 08:38:27 +08:00 via iPhone
    在公司找台服务器部署 gitlab
    inhzus
        15
    inhzus  
       2018-09-03 09:00:14 +08:00 via Android
    vs jetbrains 都支持通过 sftp,ftp 等协议远程部署
    huclengyue
        16
    huclengyue  
       2018-09-03 09:21:36 +08:00
    @geeti docker 然后运行 LINUX 下的 IDE?
    cncqw
        17
    cncqw  
       2018-09-03 09:29:54 +08:00
    git 就可以了,然后用 hook 自动同步
    HangoX
        18
    HangoX  
       2018-09-03 09:30:59 +08:00
    不是可以用 eclipse che ?web ide
    merin96
        19
    merin96  
       2018-09-03 09:38:25 +08:00 via iPhone
    搬瓦工搭的 git 服务器
    batter
        20
    batter  
       2018-09-03 09:45:10 +08:00
    在那个服务器上搭建个 git 服务器,防火墙设置一下,应该问题不大吧
    Z1076
        21
    Z1076  
       2018-09-03 10:06:14 +08:00 via iPhone
    跟我的环境差不多,我是本地写完代码,然后执行一个 alias 的脚本。脚本包括 rsync 以及发送远程编译以及重新加载命令。
    ifane
        22
    ifane  
       2018-09-03 10:26:06 +08:00
    jetbrains 家的 IDE 都支持远程开发吧.
    pycharm 为例, 创建项目选择 SSH Interpreter 以及 remote project location.
    当你保存操作时,会自动 upload, 切换 git 分支则需要手动在 tools 里选择 Deployment->upload.
    geeti
        23
    geeti  
    OP
       2018-09-03 11:01:40 +08:00
    @merin96 把公司代码发到私服,不要工作了么
    geeti
        24
    geeti  
    OP
       2018-09-03 11:04:00 +08:00
    @huclengyue 没懂,啥意思?
    sampeng
        25
    sampeng  
       2018-09-03 11:13:48 +08:00
    ide 的远程开发是正解。git 之类的太不靠谱。
    但网络抖动是不能避免的。

    其实一般开发。本地编译测试已经绰绰有余了。。无法理解弄个 48 核的远程服务器是个什么逻辑。。还每人一台?

    简单的 php。java 后台应用。。跑个逻辑还跑不动?

    最后开发完了,上服务器做压力测试倒是可以来一波
    kslr
        26
    kslr  
       2018-09-03 11:23:59 +08:00 via Android
    Jetbrains 都支持远程环境运行
    但我觉得这样意义不大,抠门的公司
    geeti
        27
    geeti  
    OP
       2018-09-03 11:24:17 +08:00
    @sampeng 云主机是自家的,反正也用不完,就直接给员工拿着用了。
    ide 远程开发是指本地文件,远程编译?
    geeti
        28
    geeti  
    OP
       2018-09-03 11:24:58 +08:00
    @kslr 是 ultimate 版才有吧?
    OrangeM21
        29
    OrangeM21  
       2018-09-03 11:30:46 +08:00
    家里的 NAS 搭了个 gitlab
    billchenchina
        30
    billchenchina  
       2018-09-03 12:00:00 +08:00 via Android
    rslsync (前身 BTSync )
    设置预定义主机即可
    xuhaoyangx
        31
    xuhaoyangx  
       2018-09-03 12:05:53 +08:00
    300 块 3 年的 vps,搭了个 gogit。gitlab 太重。
    loveCoding
        32
    loveCoding  
       2018-09-03 12:06:19 +08:00
    土豪公司么?48 核 哈哈哈,不如提个建议让公司备台显示器
    VisionTheta
        33
    VisionTheta  
       2018-09-03 12:13:38 +08:00
    我的需求是同步本地文件到服务器上,最开始想到的当然是 rsync 但是没有触发功能,文件修改了,也不能自动同步

    所以后来我发现了 lsyncd, 这套工具非常好用,文件同步很好用,我用它来同步 GPU 服务器训练好的模型到本地来做评测,再把 tensorflow 的 events 文件同步给服务器,供 tensorboard 使用。
    还有一个用途,我用来同步我的数据,用了半年多了,lsyncd 一次也没有重启过。

    至于楼主说的这个需求,我觉得 lsycnd 的 readme 里面介绍的 mirror 这个项目不错,虽然我并没有亲测过(我们工位机用来开发够了),但是看起来很不错,我觉得楼主可以测试一下,给大家也反馈一下。

    项目地址在这里: https://github.com/stephenh/mirror

    当然,我的经验是,工具再好用,可能也需要自己再稍微调调,动手能力要强。
    geeti
        34
    geeti  
    OP
       2018-09-03 12:37:50 +08:00
    @loveCoding 显示器是 LG 的 5K,但是跟这没有关系啊。。。
    geeti
        35
    geeti  
    OP
       2018-09-03 12:38:40 +08:00
    @VisionTheta 谢谢,这个有意思,我来学习学习。
    geeti
        36
    geeti  
    OP
       2018-09-03 12:40:11 +08:00
    这个不是免费吧?
    geeti
        37
    geeti  
    OP
       2018-09-03 12:40:37 +08:00
    @xuhaoyangx 把公司代码传到任何外部服务器都是属于作死丢工作的行为
    xuhaoyangx
        38
    xuhaoyangx  
       2018-09-03 12:46:45 +08:00
    @geeti #37 300 块公司付的
    geeti
        39
    geeti  
    OP
       2018-09-03 12:48:57 +08:00
    @xuhaoyangx 你们不怕泄露吗
    geeti
        40
    geeti  
    OP
       2018-09-03 12:49:21 +08:00
    @billchenchina 这个不免费吧
    lfzyx
        41
    lfzyx  
       2018-09-03 13:44:53 +08:00
    用 Gocd 或者 Jenkins
    Earl
        42
    Earl  
       2018-09-03 14:22:21 +08:00
    云主机能部署 samba 服务器不?我们都是直接用 samba 把云主机映射到 windows 网络磁盘,然后在 windows 下写代码。
    merin96
        43
    merin96  
       2018-09-03 15:01:22 +08:00
    @geeti 我专门问过,无所谓的(小公司
    不过既然代码都是在云主机上跑, 本地只负责编辑, 本地留一份干嘛...
    geeti
        44
    geeti  
    OP
       2018-09-04 00:41:30 +08:00
    @merin96 干活时有时候不在公司或者没连 vpn。
    另外每个包都比较大的话,若果是 smb 每次连接都要传一阵子才能本地打开
    woyaojizhu8
        45
    woyaojizhu8  
       2020-04-12 15:02:42 +08:00
    请问 syncthing 你设置了文件系统改动监视了吗?
    漏掉文件的时候,重新扫描,能够成功完整同步吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1202 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:19 · PVG 07:19 · LAX 15:19 · JFK 18:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.