Если вы используете Subversion для всех своих проектов, вы можете просто использовать svn:externals
: это позволяет одному репозиторию ссылаться на другой репозиторий, опционально исправленный в определенной ревизии. Например,
svn://svn/shared
svn://svn/project1
|- dir1
|- dir2
\- svn:externals "shared -r 3 svn://svn/shared"
svn://svn/project2
|- dir3
\- svn:externals "shared -r 5 svn://svn/shared"
Примените ваши изменения к svn://svn/shared
и измените свойство svn:externals
в отдельных проектах, когда вы будете готовы.
В противном случае, используя другие VCS, вы можете просто оставить несколько тегов на shared
, по одному для каждого проекта, используя shared
, указывая на версию, которую они используют. Продвиньте каждый тег к более поздним версиям, когда будете готовы. Это требует ручного обновления копии каждого проекта shared
, хотя (единственное, что делает svn:externals
приятным, это то, что это происходит автоматически).
Если вы разветвляете / разветвляетесь shared
для каждого отдельного проекта ... ну, это может сработать, но для сохранения и объединения изменений требуется рабочая сила.
[Изменить]
Дополнительные ссылки:
См. Внешние определения в svn book для обучения и более подробную информацию о svn:externals
и git-submodule tutorial для аналогичной функции в DVCS git .