Я смотрю svn externals для своей компании, и кажется, что это было бы хорошей функцией для нас. У нас есть несколько продуктов, которые часто ссылаются на общие компоненты, но имеют плохую привычку отстать от старых версий и даже иногда разветвленных кодовых баз.
Я немного прочитал о том, как они работают сейчас, и я думаю, что понимаю концепцию ОК. Я не уверен на 100%, как разные ревизии нескольких репозиториев соединяются вместе.
Допустим, у меня есть Продукт и Библиотека. Продукт построен на основе библиотеки, поэтому его репозиторий имеет свойство svn: externals, которое ссылается на источник библиотеки. При отсутствии конкретной версии в определении svn: externals, когда я проверяю заголовок продукта, я также получаю заголовок библиотеки.
За последние годы я создал несколько версий Продукта, каждый раз ссылаясь на последнюю версию Библиотеки. Однажды я должен вернуться и проверить версию продукта 1, вручную выбрав правильную версию. Когда я это сделаю, какую версию библиотеки я получу, HEAD или ревизию, которую я использовал, когда собрал ее в первый раз?
Надеюсь, я был хорошим разработчиком и помнил, чтобы пометить каждую версию продукта, которую я выпускаю. Когда я применяю свой тег 'Product-1-0-0' к хранилищу, помечается ли верная версия хранилища библиотеки тоже? Если я позже проверю продукт на основе тега «Продукт-1-0-0», будет ли проверена правильная версия библиотеки?