首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用标签-来自前CVS用户的问题

使用标签-来自前CVS用户的问题
EN

Stack Overflow用户
提问于 2020-04-18 02:52:45
回答 1查看 25关注 0票数 2

我正在将我们的CVS数据库转移到Git上。这一举动需要我重新考虑一些配置和程序。我正在处理的一个挑战是,标签应用于Git中的整个存储库,而在CVS中,它们可以应用于单个文件。

我主要将CVS用于源代码,但我也将其用于其他类型的文件。我曾经使用过CVS的一个应用程序,现在我想使用Git来实现,那就是对零件编号的图纸进行版本控制。

在CVS中,我有一个带有几百个子文件夹的模块。每个子文件夹包含一个零件的工程图。我会用该零件的工程图修订来标记每个文件夹。不同部件的图纸修订之间没有相关性。

要在Git中完成同样的事情,一种解决方案是创建几百个存储库,每个部分一个,但这有一些缺点。例如,很难将完整的零件库/模块克隆到我的本地计算机上。我认为我必须手动克隆每个存储库才能做到这一点。

有没有更好的解决方案来在Git中设置这样的东西?是否有不同类型的标签可以仅应用于选定的文件?有没有一种方法可以用一个命令克隆所有存储库?

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

发布于 2020-04-18 03:42:54

我认为我必须手动克隆每个存储库....

您必须克隆每个存储库。

您不需要手动执行此操作。Git在内部使用脚本命令语言,因此所有Git安装都有脚本命令语言。(在许多系统中,您已经有了它:“外壳”(shell)或/bin/sh,有时也包括bash。)然后,您所需要的就是要克隆的存储库列表,外加少量脚本:

代码语言:javascript
复制
for i in $(cat repo-list); do git clone ${baseurl}/$i; done

通常,一旦有了存储库,就再也不需要重新克隆了:只要有人更新了从中创建此克隆的存储库,您只需保留该存储库并在其上适当地运行git fetch即可。所以上面的循环并不都那么有用,但是:

代码语言:javascript
复制
for i in $(cat repo-list); do (cd $i && git fetch); done

更有用。请注意,这使用了相同的repo列表。

您还可以在这里使用子模块,以及一个只包含一系列子模块的超级项目,但这似乎并不合适。您可以使用像谷歌的repo tool这样的工具,它的目标似乎是管理许多像这样的松散相关的存储库。(我自己还没有用过这个工具。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61278693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档