我们有一些开发人员在服务器上推送远程裸仓库,并希望做一些事情,比如使用git p4从这个中央裸仓库自动推送每晚。但是我遇到了麻烦,因为看起来你不能在工作树之外运行git p4。
处理这类事情的推荐方法是什么?
答案 0 :(得分:1)
我使用每隔几分钟运行一次的脚本做类似的事情,并在git和p4之间进行双向同步。但是如果没有签出的git树和p4 repo,git-p4就无法工作。总而言之,您最终得到了3个版本的资源:
开发人员使用名为'dev'的分支推送到一个简单的git repo(在gitolite上保存)。然后每隔几分钟就会有一个脚本:
陷阱
合并冲突。这些实际上很少发生,但可能会导致一些问题。
我必须在整个过程中添加一些锁定,以便开发人员在(1)和(5)之间进行更改时不会丢失更改。锁定只会创建一个锁定目录,然后在其中一个钩子脚本中使用它来延迟推送。
RCS关键字。较新版本的'git p4'现在可以处理RCS关键字,但最初没有,所以整个事情偶尔会因为合并冲突而卡住。
设置需要一段时间,但现在已有超过18个月的开发人员,只有极少数事件。
答案 1 :(得分:0)
最简单的方法是不使用git-p4,但只是检查一下git树,这也是一个perforce checkout,并从那里编写脚本? 即执行git pull,解析输出以编辑适当的文件,添加新文件,删除已删除的文件,然后提交到perforce?