![]() |
1
8
我已经用过 Sourcegear's Fortress (一个包含所有内容的ALM-对于源代码管理,请查看它们的 Vault 产品)多年无投诉,支持共享。您基本上可以将一个文件从一个项目分支到另一个项目,第二个副本将保持最新,不需要额外的交互。 该产品被设计为SourceSafe的替代品,由于VSS支持共享,所以保险库也支持共享。 作为一个附加功能,它们支持“固定”,即文件链接的接收者可以将其设置为特定的版本,而不接收任何附加的更新(如果他们需要的话)。如果他们不固定文件,他们将继续使用最新版本,但如果他们想要的话,在任何时候都可以选择固定。 |
![]() |
2
2
我不知道你需要多少自由度来解决这个问题。然而,对于这个问题来说,一个更传统的解决方案是建立一个 图书馆 在依赖它的项目之外。在“正式发布”位置引用库(assembly,.jar,.so,.pm,随便什么)。 让“mod downs”开始,因为没有按要求回答问题,但听起来确实像是错误的提问。 对我来说 . |
![]() |
3
1
很明显,SourceSafe支持这一点(它在各个方面都非常糟糕,但确实支持这一点)。 我想知道SourceGear的保险库是否也支持这一点,因为它应该是SourceSafe的固定版本。 |
![]() |
4
1
基于RoboProg的回答:对您的问题更一般的解决方案是更新“共享目标”中的makefile,以便它们通过引用合并“共享源”中的项目,而不是依赖于SCC系统来为它们进行此操作。 如果公共功能可以很容易地分解成一个库(程序集,jar,C++头文件+ LIB),那就太好了!从长远来看,这将帮助所有人。现在可以使用各种独立的工具对库进行单元测试;既然双方的合同都已标准化,使用库也变得更加容易。此外,您现在可以将库视为具有变更管理功能的头等公民。可以在自己的分支中进行破坏性的更改;共享代码的其他团队的修复可以在存储库中与应用程序的其余部分一起流动;等等。 但这些都不是绝对必要的。即使您在1个分支中完成了所有工作,或者即使所讨论的共享是一个foo.h,您也可以继续使用现有的SCM实践,只需进行一些调整。只要相对路径正确,我遇到的每个构建系统都能够将模块A中的文件合并到模块B中。如果您使用的是Visual Studio的*proj makefiles,则最快的方法是添加->现有项->导航到源文件->单击“保存”按钮上的下拉箭头->添加为链接。 |
![]() |
5
0
我认为您将遇到的一般问题是更改每个存储库中的文件需要提交,以便保留历史记录。
假设你有一个子模块
如果您真的想,可以使用Git钩子100%地实现自动化。 |
![]() |
user3544428 · SVN到CVS的元数据迁移 10 年前 |
![]() |
Nandhi · 控制版本控制企业架构师 11 年前 |
![]() |
Leszek Andrukanis · 在数据库中存储Rails应用程序版本 12 年前 |