【问题标题】:Update CVS module from within a Git project从 Git 项目中更新 CVS 模块
【发布时间】:2013-01-07 04:58:51
【问题描述】:

我使用 Git 来管理我的存储库,其中包含来自其他地方的 CVS 模块。我不会对 CVS 存储库进行任何本地更改,我只想定期更新它。目前我在Git的控制下在CVS repo中制作所有东西,在cvs update之后,我将它提交到Git中。

有没有更好(更简单或更简洁)的方法可以让我在轻松更新 CVS 模块的同时跟踪我的 Git 存储库?

【问题讨论】:

  • 如果您不打算向 CVS 提交任何内容,那么您可以考虑将更新/提交/合并步骤添加到脚本中,以便您可以一次性运行所有内容。

标签: git cvs


【解决方案1】:

您可能想做的是在 git 中创建一个子模块,使用 cvs export 将 cvs 模块导出到此 git 子模块并将其提交到您的 repo。这样可以保持 master 分支上没有任何额外的 cvs 文件。

完成后,您可以使用 cvs on commit 脚本在有提交时使子模块保持最新 - 这将是我的首选选项。在伪代码中它可能看起来像这样:

#!/bin/sh

mv -R <submodule>/.git /tmp/
rm -rf <submodule>/*
mv -R  /tmp/.git <submodule>/
cd <submodule>

cvs -d<path> export <module>

find . | xargs git add

git commit -a -m "CVS Updates for `date`"

将脚本添加到 CVS:

  • 首先检查 CVSROOT 并将脚本复制到那里,不要忘记使脚本可执行。 cvs -d&lt;path&gt; co CVSROOT
  • 将脚本复制到目录中
  • cvs add添加脚本
  • 将脚本的文件名添加到checkoutlist
  • loginfo 添加一个条目,这将使脚本运行。
  • 提交

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多