【发布时间】:2010-11-11 13:46:11
【问题描述】:
假设我有以下(期望的)文件夹结构:
*CommonProject
*Project#1
----> CommonProject(link)
*Project#2
----> CommonProject(link)
CommonProject 是属于该项目的源的位置,CommonProject(link) 只是到主位置的软链接。如果我们把它想象成可视客户端中的树视图,如果我展开 Project#1,我将在那里看到 CommonProject 作为一个子目录,即使文件实际上并没有存储在那里。
这样做的目的是启用以下行为:
当我签出 Project#1 时,我得到了与该项目相关联的文件以及包含其所有文件的子文件夹 CommonProject(好像 Project#1 包含版本控制存储库)。现在,如果我要在 Project#1 中修改 CommonProject 的文件并将我的更改提交到存储库,则更改将进入 CommonProject 位置(实际上没有文件存储在存储库中的 Project#1 下本地)。现在,如果我要同步 Project#2,因为它还包含指向 CommonProject 的符号链接,它现在将获得我的更新。 本质上,文件的重复只存在于我的机器上,但在存储库中只有一个版本的 CommonProject。
我知道 Perforce 无法做到这一点,除非同时兼顾 3 个规范。这是非常复杂且容易出错的,尤其是当很多人都这样做时。是否有源代码控制存储库可以做到这一点? (指向一些关于如何完成的文档的指针是一个加号)
谢谢。
【问题讨论】:
标签: version-control repository commit symlink