【发布时间】:2016-10-01 19:24:31
【问题描述】:
我很好奇在 git 中(例如,在 github/bitbucket/gitlab 上)保留您对 OSS 项目的偶尔贡献的最佳做法是什么,而上游完全是 CVS。
My take 是非常方便,只需将CVS/{Entries,Repository,Root} 直接提交到git,然后在任何时间从任何框,您都可以简单地签出您的git repo(w/git),然后使用cvs up 从真正的上游更新,这正是我使用my OpenBSD ports-readmes fork 和mdocml 所做的。
但是,我注意到大多数人在我的 GitHub 上的这些 git 存储库中看到这些 CVS 文件时感到非常惊讶和困惑,他们认为这是我的某种疏忽。此外,例如,reyk's httpd 也没有这样的设置,即使他显然通常从上游批量更新它,也不保留来自上游的日志。
我在这里遗漏了什么吗?我觉得在您的 git 存储库中拥有 CVS/{Entries,Repository,Root} 是个好主意,但我从未见过其他人这样做。为什么?
【问题讨论】:
-
提交 CVS 元数据的一个相当大的问题是它特定于您和您的结帐版本。我这样做的方法是将
CVS添加到.gitignore。这样我仍然可以同时使用 git 和 cvs,而世界其他地方只使用 git,不知道涉及到 cvs 存储库。 -
@BurhanAli,不,这就是 cvs 的重点——CVS 元数据不是我独有的,而是我的结帐版本特有的,这是重点,因为它完全相同提交给 git 的版本。我看不出将整个
CVS/添加到.gitignore有任何好处,因为当您清理本地 git checkout 的那一刻,CVS 数据将不可挽回地消失。这对任何人来说更好吗?如果你不相信我,试试github.com/cnst/mdocml,它应该可以在任何现代系统上与 git 和 cvs 一样工作(先用 git 签出后)。 -
也许这是当时如何使用 cvs 的人工制品。我使用了
extssh方法,所以我的Root文件包含类似username@hostname:/repopath的东西,这对其他人没有用处。我也没有删除该目录,因为我一直在积极地处理它。只需仔细考虑这些文件是否对其他人有用,以及它们的存在是否会引起混淆。 -
@BurhanAli,即使您的
CVS/Root必须包含用户名,上传CVS/{Repository,Entries}仍然可以快速设置Root(在文件中或通过@ 的参数987654341@,或通过env CVSROOT),另一方面,如果Entries文件丢失,在上游找到下游所基于的确切点将非常重要。
标签: git cvs git-pull git-log git-cvs