保持来自外部存储库的源是最新的

Posted

技术标签:

【中文标题】保持来自外部存储库的源是最新的【英文标题】:Keep sources from external repositories up-to-date 【发布时间】:2010-09-12 00:23:35 【问题描述】:

在你开始追踪一堆开源软件的源头之后,你如何让你的代码保持同步?每次想看或玩代码时运行svn update

让我感到震惊的是,最好每天晚上开始使用(比如说)cron 工作来镜像代码。人们是否设置了工作流程来做这种事情? (当/如果您对代码所做的任何更改最终与最新更新冲突时发出警报?)

还是我一个人? (我正在运行 Mac OS X,但对一般解决方案和特定解决方案感兴趣。)

【问题讨论】:

【参考方案1】:

the Subversion book 推荐的一般工作流程是经常更新你的工作副本;在每个工作日开始时都是一个好时机。但你不必这样做。只要您想看到最新的变化,就随时更新。

我在 src/ 目录下签出了许多开源存储库。每隔几天,我记得从那个目录运行 'svn up *',它会更新其中包含的所有工作副本。

【讨论】:

【参考方案2】:

如果您的存储库在每次有人签入时都会向您发送一封电子邮件,为什么不使用一个程序来检查这些电子邮件,然后在那时更新工作副本?这样您就可以始终保持最新状态。注意事项包括不必要地消耗带宽,以及当您正在处理的文件更新时出现奇怪冲突的可能性。

每天更新一次,或者每隔几天更新一次,只有在项目的不同领域工作人员数量有限时才有用。如果您有超过 5 个人,并且他们可能在代码的相似部分工作,则每小时更新一次或更频繁地更新会好得多。

【讨论】:

【参考方案3】:

只有当我在自己的应用程序中使用开源库时,我才会经常更新,外部存储库实际上是我项目树的一部分,当我更新我的项目时,它也会更新外部存储库。我认为,当您只查看代码进行研究时,只有查看他们发布的新功能然后进行更新才有意义。

【讨论】:

如果您正在处理团队经常更新的内容,您希望及时了解他们正在更改的内容,因为这可能会影响您自己的更改。对吗?【参考方案4】:

您可能想考虑使用 svn:externals: http://svnbook.red-bean.com/en/1.0/ch07s03.html

【讨论】:

以上是关于保持来自外部存储库的源是最新的的主要内容,如果未能解决你的问题,请参考以下文章

在gradle中如何使用来自项目外部相对路径的源

SVN:Git 中的外部等效项?

来自核心数据和外部源的模型对象

数据库项目 - “无法解析对来自名为 x 的源的外部元素的引用

Github 添加其他人的 SSH 密钥将授予对所有存储库的访问权限?

在 npm 包中重新导出外部类型