gpt4 book ai didi

svn - 双向 Git<->Svn Sync(都可写)是否可行?

转载 作者:太空狗 更新时间:2023-10-29 12:47:33 25 4
gpt4 key购买 nike

我们团队的一部分发现 git 很酷,并开始将其用作 svn 客户端。所以每个开发人员都有一个本地 git 存储库,并通过 git-svn 将其与 svn 同步。

然后我们想对提交进行代码审查,并将补丁发送给同事进行审查。这种方法不是很直观,因为 svn 中 SAME 版本的校验和对于每个本地 git 存储库都是不同的。不知道为什么,因为内容应该是一样的。也许这是 svn rebase 中的错误?

所以我们尝试在 scm 服务器上有一个中央 git 存储库。现在使用 git 的每个开发人员都可以将他的更改推送到这个中央存储库,而进行审查的其他开发人员可以将这些更改 pull 入他的存储库。不幸的是,因为每个开发人员还与 svn rebase 同步,校验和问题再次出现。

在阅读了很多帖子后,我认为管理同时拥有 subversion 和 git 客户端的团队的最佳方式是:

  1. 中央 Subversion 存储库
  2. 中央 Git 存储库(来源)
  3. 服务器上的中央 Git 工作副本
  4. 为每个 git 开发人员提供一个本地 git 存储库
  5. 给每个 svn 开发者一个普通的工作副本

现在我们需要一个中央作业来同步 svn 和 git,在服务器上的中央 git 工作副本上执行这样的常规脚本。

# First transfer the commits from git to svn
git checkout svnmaster
git pull origin svnmaster
git svn dcommit

# Now from svn to git
git svn rebase
git push origin svnmaster

我现在的问题是:

  1. 这是最好的方法吗(无需切换到 git completeley)
  2. 是否已经有用于 Windows 的脚本来执行同步防弹证明?
  3. 是否已知不同校验和的问题,是否可能 已知的解决方法?

感谢您的每一个回答!

编辑我最近发现了一个看起来很有前途的项目:

SubGit

最佳答案

您的解决方案有问题。我建议你不要直接在 svnmaster 中提交。你应该有一个纯 git 分支用于 svn(svn-dev) 和 svn tracking 分支(svn-master)。按照以下步骤提交到 svn:

git checkout svn-master
git merge --no-ff svn-dev
git svn dcommit
git checkout svn-dev
git merge svn-master

此序列允许您保留所有存储库的提交哈希。

关于svn - 双向 Git<->Svn Sync(都可写)是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5241898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com