ckl80 发表于 2021-12-8 01:11

工作上一个代码同步需求求助

背景是这样的:工作上开发的代码需要放到一个linux环境上编译,这个环境很老,除了编译几乎啥也干不了。所以都是在windows本机上写代码,写完复制一份过去编译。但有时候有些错误要编译的时候才发现,每次修改又得再手动复制回来一遍,一来一去非常麻烦
所以想找一个方法:能够在本机上对项目文件进行修改后,自动或者手动一键同步一下就能将修改过的文件同步到编译环境中。
其实这个需求用vscode的sftp插件应该就能实现了,但我平时写代码都是用source insight或者qt creator,没办法依赖vscode来做。有没有什么能够单纯检查一个文件下的文件有没有变化,有则将变化的文件通过sftp上传的工具?

中川夏纪 发表于 2021-12-8 01:21

所以你听说过 git 吗

ckl80 发表于 2021-12-8 01:23

中川夏纪 发表于 2021-12-8 01:21
所以你听说过 git 吗

编译环境装不了

中川夏纪 发表于 2021-12-8 01:27

ckl80 发表于 2021-12-8 01:23
编译环境装不了

rsync 之类的也不能用吗?

k12320593 发表于 2021-12-8 01:29

什么神奇的项目要用专门的老环境里编译?编译完了还在同一个老环境里运行吗?
在编译环境里用源码编译一个git不行吗?

chachi 发表于 2021-12-8 01:30

diff patch ?

ckl80 发表于 2021-12-8 01:35

中川夏纪 发表于 2021-12-8 01:27
rsync 之类的也不能用吗?

要用的话可能就得自己拉源码编译一份,比较折腾,目前主要就是想看能不能找个不用动linux端相对比较省事的方法

qratosone 发表于 2021-12-8 01:37

ckl80 发表于 2021-12-8 01:38

k12320593 发表于 2021-12-8 01:29
什么神奇的项目要用专门的老环境里编译?编译完了还在同一个老环境里运行吗?
在编译环境里用源码编 ...

可能是为了兼容性啥的?我也没问过,编译了跑是能跑,但也很少客户会用那么低的版本了(2.6的内核)

5long 发表于 2021-12-8 01:54

既然是公司项目,那可以用这个思路:
无法稳定地配置好的编译环境是项目的隐患

想象一下:这个古老的 Linux 机器有没有可能因为突发事件,变得不可用,导致开发停滞
根据墨菲定律,肯定会有可能
于是现在就需要设法能从头(指从干净的 Linux 系统开始)重新配置好开发环境才行
最终能落实到文档也好,shell 脚本也好,能用上配置管理(Ansible 之类的)就更好,总之得有办法
做到这个程度就可以拿新机器来做编译环境了,然后 NFS / SMB 之类的办法就都能用了

不过话说回来,那是多老的机器,连安装 rsync 都要从头编译?不能用包管理器安装么?

Bean 发表于 2021-12-8 02:06

跑个题,总觉得这可以成为某种电影里的经典桥段……

MakeLaugh 发表于 2021-12-8 03:40

https://www.cis.upenn.edu/~bcpierce/unison/

HyperIris 发表于 2021-12-8 09:11

風舞雪 发表于 2021-12-8 09:35

装不了git 装svn cvs哈哈哈哈 什么需求?这么搞下去 永远不要用新东西了 累不累

riczxc 发表于 2021-12-8 10:17

直接搞个wsl,用sshfs?

Xusser 发表于 2021-12-8 10:25

本帖最后由 Xusser 于 2021-12-8 10:29 编辑

github/gitlab的webhook功能
不能用git啊那没事了

Jet.Black 发表于 2021-12-8 10:29

有vscode能用还不想用,这很难办啊。

miyamotoruri 发表于 2021-12-8 10:48

在老环境编译的需求当然是有的,为了兼容性
最简单的,大部分 Linux 原生就有 NFS,不过看你是多老的 Linux 了

不过我作为有过类似经验的人,建议你整一个 arch/dist 完全一致的 Docker 直接在高端 PC 上编译,或者麻烦一点难以解决的依赖很多就做 rootfs 交叉编译。这样一般会快很多,因为这种老环境一般性能都不咋地。当然你要是想趁编译摸鱼当我没说。

feria 发表于 2021-12-8 10:48

用beyond compare 新建sftp链接,然后对比更新

nessaj 发表于 2021-12-8 11:00

r_ex 发表于 2021-12-8 11:08

本帖最后由 r_ex 于 2021-12-8 11:10 编辑

用rsync可以同步
另外交叉编译也可以,用最新的clang和自己编译的libc++,配上一个比较老的CentOS的sysroot,不过如果有Qt啥的依赖于C++的可能需要自己编译
如果项目不涉及到动态库的导入导出,还可以考虑musl全静态编译,有musl-cross-make和musl libc toolchain,是gcc的,后者还能配合clang和自己编译的libc++,充当交叉编译的sysroot

—— 来自 BlackBerry BBF100-4, Android 8.1.0上的 S1Next-鹅版 v2.1.2

r_ex 发表于 2021-12-8 11:31

rsync支持sftp的,不需要动远程Linux

—— 来自 BlackBerry BBF100-4, Android 8.1.0上的 S1Next-鹅版 v2.1.2

PureWaltz 发表于 2021-12-8 12:09

你的需求qt creator自身就能实现

catazshadow 发表于 2021-12-8 13:05

YoumuChan 发表于 2021-12-8 13:17

centos 6?为了兼容老版本的glibc?这个需求可以docker搞定的

n2z 发表于 2021-12-8 13:44

gitlab + jenkins,可以装在别的机器上
代码推送gitlab,配置钩子触发jenkins,jenkins上写脚本把代码打包发到编译环境执行编译

whzfjk 发表于 2021-12-8 15:39

trentswd 发表于 2021-12-8 16:55

qratosone 发表于 2021-12-8 01:37
JetBrains家的IDE都有远程开发组件,可以试试看

都是scp和ssh做的,有着需求不如自己rsync讲真

黑暗之凰 发表于 2021-12-8 17:49

自己撸一个py,估计20多行就能搞定了

Fury 发表于 2021-12-8 18:32

找找看有没有能用的 docker 呀。要是这台机器挂了,你们还干不干活了。

Dreki 发表于 2021-12-8 19:46

我平时用mobaxterm的sftp,这个就是自动判断文件改变了就会传上去

jkl51310 发表于 2021-12-9 10:56

试试freefilesync

七氷 发表于 2021-12-9 11:49

git可以创建本地远程仓库,只有你自己电脑装了git就可以

zmj1316 发表于 2021-12-9 11:54

在编译脚本前面触发一个ssh的 rsync?

novem 发表于 2021-12-9 12:28

这种需求自己做一个轮子就行了
页: [1]
查看完整版本: 工作上一个代码同步需求求助