我使用 Git 来管理我的存储库,其中包含来自其他地方的 CVS 模块。我不会对 CVS 存储库进行任何本地更改,我只想定期更新它。目前,我在 Git 的控制下制作 CVS 存储库中的所有内容,之后cvs update
,我将其提交到 Git 中。
有没有更好(更简单或更清洁)的方法可以让我在轻松更新 CVS 模块的同时跟踪我的 Git 存储库?
您可能想要做的是在 git 中创建一个子模块,使用cvs export将 cvs 模块导出到此 git 子模块并将其提交到您的 repo。这样可以使主分支清除任何其他 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 -d<path> co CVSROOT
cvs add
checkoutlist
loginfo
该条目将运行脚本。