Предположим, у меня есть следующая (желаемая) структура папок:
*CommonProject
*Project#1
----> CommonProject(link)
*Project#2
----> CommonProject(link)
Где CommonProject - это местоположение источника, принадлежащего этому проекту, а CommonProject (ссылка) - это просто мягкая ссылка на основное местоположение. Если мы представим это как древовидное представление в визуальном клиенте, если я разверну Project # 1, я увижу CommonProject там как подкаталог, даже если файлы на самом деле там не хранятся.
Цель этого - включить следующее поведение:
Когда я извлекаю проект № 1, я получаю файлы, связанные с этим проектом, а также подпапку CommonProject, содержащую все его файлы (, как если бы Project # 1 содержал копию файлов в версии Контрольный репозиторий). Теперь, если бы я изменил файлы CommonProject внутри Project # 1 и отправил свои изменения в репозиторий, эти изменения были бы помещены в расположение CommonProject (на самом деле ни один файл не хранится локально в Project # 1 в репозитории). Теперь, если бы я должен был синхронизировать Project # 2, так как он также содержит символическую ссылку на CommonProject, он теперь получит мои обновления.
По сути, дублирование файлов существует только на моем компьютере, но в репозитории есть только одна версия CommonProject.
Я знаю, что Perforce не может этого сделать, не подтасовав 3 спецификации. Это очень сложно и подвержено ошибкам, особенно когда это делают многие люди. Есть ли репозиторий контроля версий, который может это сделать? (указатель на некоторые документы о том, как это можно сделать, является плюсом)
Спасибо.