代码同步原理
简单说,客户端将代码上传到云端,利用云端环境进行编译,编译成功后将产物(符号表)拉取至本地进行加载,ide对符号表进行索引,则完成整个代码的加载。
同步配置参考
前置条件
假设已经安装好gcc环境和cmake-3.6.x环境
配置教程参考
https://cloud.tencent.com/developer/article/1406250
如果懒得看,提一下几个要点
-
Deployment配置成ssh,connection配置成云端主机,mapping配置本地和云端目录的映射,exclude paths配置一些不需要同步的文件夹。完成这个步骤,可以保证基本的代码上传。
-
编译需要额外配置两步
- CMake加一个Debug-Remote Host,ToolChain选Remote Host
- Toolchains选择Remote Host,并设置成default,设置credentials为开发机,CMake选Remote Host CMake
但教程使用ssh同步有一个显著弊端,不支持增量同步,每次数据的传输量都超级大,但凡改过的文件会持续存在在代码里,除非去服务端修正(例如git stash)。
rsync的优点,主要是支持增量同步(--exclude也很好用),可以有效规避代码同步问题。
rsync安装
rsync也是遵循cs架构。
服务端
通常linux server自带rsync server,如果没有,可以手动自行安装一个,不赘述。
客户端
macos通常rsync 客户端比较好弄,不赘述,homebrew一套下来。
windows本地安装相对费劲一点,有两种安装方式。
一种通过cygwin安装rsync和ssh。
另一种从 https://itefix.net/cwrsync 下一份rsync client(里面包含ssh),随意找一个空白位置解压。记一下对应bin目录的位置,如
D:\cwrsync_6.2.9_x64_free\bin
clion配置
完成基本同步配置后,设置一下rsync
D:\software\cwrsync\bin\rsync.exe
-auv,-e,ssh
D:\software\cwrsync\bin\ssh.exe
参数设置成-auv -e ssh(增量同步 via ssh),上面的rsync路径和ssh路径都可以利用之前拷贝的路径拼一个,如
D:\cwrsync_6.2.9_x64_free\bin\rsync.exe
D:\cwrsync_6.2.9_x64_free\bin\ssh.exe
注意rsync和ssh一定是要配对的。这些操作做完,rsync就完成了配置。
验证
随便修改一个文件,点一下刷新,如果没有明显报错,则rsync配置成功了。
踩过的坑:
不建议通过scoop安装rsync和openssh搭配,上面的组合和原生的openssh也是失败的。
FAQ
-
找不到CC和CXX
强制指定CC为gcc的路径,CXX为g++的路径即可
export CC=${gcc_path}/bin/gcc export CXX=${gcc_path}/bin/g++
-
安装gcc的时候总出现一些玄学bug,比如不识别platform为x86_64
一般情况下都是系统镜像可能有问题,因为安装依赖旧版本的gcc,旧版本gcc如果有问题,一样无法安装
可以优先做如下尝试
yum install gcc-c++ texinfo -y
我所用的镜像是CentOS 7.6 64bit for Tenant
参考:
rsync安装
https://blog.csdn.net/yyuggjggg/article/details/122198815
gcc-7.3.0安装
http://3ms.huawei.com/km/blogs/details/8537685
标签:bin,rsync,同步,windows,安装,gcc,ssh,clion From: https://www.cnblogs.com/gongxianjin/p/17569460.html