SVN Externals and Revision Association

Я хотел бы использовать внешние элементы SVN для обмена файлами кода между разными проектами. Мне нужно задать вам вопрос об этой функции, но позвольте сделать это, объяснив ситуацию.

  1. Я создал два проекта (каталога) на SVN: «A» и «B».
  2. 'A' содержит файлы, которые будут использоваться другими проектами, и один из них называется shared.txt.
  3. «Shared.txt» связан с «B» (с использованием свойства svn: externals «B»).
  4. Кроме того, «B» содержит другие файлы исходного кода (полный проект).

Теперь вопрос. Я проверил старую версию «B», чтобы узнать, какую версию «shared.txt» я бы получил с ней. И, к сожалению, независимо от того, какую историческую версию «B» я загружал из своего тестового репозитория, я всегда получал с ней последнюю версию «shared.txt».

Представим, что я хочу загрузить проект «Б» за несколько месяцев до этого. За эти месяцы файл shared.txt претерпел множество изменений. Но я хочу загрузить полный проект, каким он был несколько месяцев назад, вместе с внешними элементами, какими они были в то время.

Возможно ли это без ручного поиска соответствующей версии каждой отдельной внешней версии? Я знаю, что могу связать определенные версии внешних компонентов с моим тестовым проектом «B», но это не решение. Я полагаю, что если я сделаю это, у меня никогда не будет доступа к обновленным внешним компонентам, даже если я проверю последнюю версию «B». Я прав или нет?

Спасибо за вашу помощь (извините, если мой вопрос уже задавали, но я не смог найти ни одного похожего).


person Mariusz Schimke    schedule 08.11.2012    source источник
comment
Мне также нужно решение этой проблемы, и я начал обсуждение почтового списка пользователей svn, что привело к следующему запросу функции. subversion.tigris.org/issues/show_bug.cgi?id=4286   -  person Stefan    schedule 02.01.2013


Ответы (1)


Да, вопрос в этой форме был задан здесь некоторое время назад (что-то вроде "Когда svn up -r {DATE} в URL-адресе суперрепо, используйте эту дату для внешнего обновления, если они связаны с HEAD" ), до сих пор нет хорошего ответа

Обнаружен ответ: «Вам нужно cd во все внешние WC / directory-externals / и svn up -r {DATE} для получения синхронизированного состояния». Я не отвечаю на репо файла

Альтернативное решение

Больше действий в процессе разработки, меньше действий с задержкой времени

  • Всегда определяйте внешние элементы с помощью PEG-ревизии
  • Монитор фиксирует (таким образом - изменение топ-ревизии) во внешнюю
  • После внешней фиксации выполните изменение внешнего определения с дополнительной фиксацией (возможно, это может быть написано в сценарии после фиксации для внешнего репо)

FR для ASF "рекурсивная обработка субрепо для операций {DATE} в главном репо" будет полезен

person Lazy Badger    schedule 08.11.2012