Если вы уже размещаете все сайты вместе в одном репозитории, svn: externals можно использовать для объединения различных частей одного и того же репозитория различными способами.
например. с хранилищем вроде
repo/site1
repo/site2
repo/commonPieces
Вы можете ввести свойство "svn: externals" на директориях site1 и site2, которое говорит: "commonPieces url-to-repo / commonPieces".
Вы, очевидно, захотите избежать любых рекурсивных циклов. Но это имеет то преимущество, что все находится в одном и том же хранилище и может делиться историей - вы можете перетянуть вещи, которые становятся все более распространенными, из site1 или site2 в commonPieces, используя «svn copy».
Сравните наше текущее решение, в котором я работаю - перенос материала из наших отдельных проектов репозиториев в один также отдельный"coreLibraries" репозиторий теряет историю разработки. Поскольку мы обычно разрабатываем функции для одного проекта, а затем решаем использовать их повторно, такая потеря истории происходит много раз ...
Редактировать: стоит помнить, что хотя «svn update» на site1 автоматически обновляет commonPieces с этим имеющимся свойством «svn: externals», «svn commit» на site1 не будет показывать вещи, которые изменились в site1 / commonPieces. Вам нужно будет сделать два отдельных коммита, один с сайта 1 и один с сайта 1 / commonPieces.