Git cvsimport 缺少对分支的增量更改

标签 git cvs git-cvs

我们使用 git-cvsimport 定期将更改从 cvs 复制到 git

无论好坏,我们坚持使用 git cvsimport 而不是 cvs2svn。最初我们计划了一个“一劳永逸”的 cvs-to-git 迁移,但人们最终在 cvs 存储库上做了更多的增量工作。我们希望将更改从 CVS 分支转移到 git 中,以便开发人员可以在 git 中处理该功能。

上下文

  • 我们有一个专用的“fromcvs”git 存储库,仅用于从 cvs 导入
  • 指定的“merge 开发人员”将此“fromcvs”存储库 merge 到他/她的本地
  • 我定期执行此命令以将更改从 CVS 导入 git git-cvsimport -p -x -v -d $CVSROOT myProj

问题

为什么分支 FEATURE-FOO 的“git 版本”缺少我在所述分支的 CVS 版本中看到的提交?

例如,在 cvs 中,我看到在 FEATURE-FOO 分支上,2 月 11 日星期五对 SomeDAO.java 进行了更改。在“fromcvs”git 存储库中,我没有在分支上看到相同的更改,

git checkout 特征-FOO git log src/java/com/company/somefeature/SomeDAO.java

  • 这是 gitcvsimport 中的错误吗?
  • 或者我们是否错过了一个步骤(见下文)来保持
  • 还有其他智慧明珠吗?

您如何解读 git cvs import 手册页上的警告?

另一件事:git-cvsimport 手册页有这个警告(为了便于阅读,我将其分解为 Gist )。

这具体是什么意思“在那之后,你需要 git merge 增量导入,或者任何 CVS 分支机构,你自己。”

  1. You should never do any work of your own on the branches that are created by git cvsimport.

  2. By default initial import will create and populate a "master" branch from the CVS repository’s main branch which you’re free to work with;

  3. After that, you need to git merge incremental imports, or any CVS branches, yourself.

  4. It is advisable to specify a named remote via -r to separate and protect the incoming branches.

尽管 Internet 上有警告,但到目前为止,Git cvsimport 实际上对我们来说工作得很好。 (即“……任何人不得在低于 50 岁之后独自在克朗代克旅行”)。也许我/我们愚蠢地忽视了这些建议,并被哄骗到一种虚假的安全感中。

有什么建议吗?

谢谢

最佳答案

你遇到问题是因为 git-cvsimport 从根本上被破坏了。例如,请参阅 "issues" section of its manpage .

关于Git cvsimport 缺少对分支的增量更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5434539/

相关文章:

git - 如何在 Git 中导入和更新 CVS 存储库?

git - 我如何从 CVS 存储库中 git-cvsimport 多个模块,具有不同的分支?

git - 在 Windows 批处理文件中捕获响应

linux - 简历 : Searching committed files on a specific date

git - 如何基于同一父级将 git commit 分成两部分?

CVS:显示本地更改的文件

git - 带有极端偏见的 CVS 和 Git 删除

git - 如何调试 git-cvsimport? (看不到复杂的提交)

java - 无法将 Eclipse 项目克隆到工作区

ruby-on-rails - 学习学习: Rails