Обнаружение противоречивых версий общих источников в SVN - PullRequest
1 голос
/ 26 декабря 2010

У меня есть SVN-репозиторий, содержащий несколько компонентов:

  • LibraryA
  • Библиотека B - зависит от библиотеки A
  • Приложение - зависит от LibraryB и LibraryA

Более подробная структура (ветви и теги не связаны с проблемой):

  • LibraryA
    • LibraryA_code
  • библиотека B
    • LibraryB_code
    • svn: внешние по отношению к фиксированной версии R1 LibraryA_code
  • Применение
    • Application_code
    • svn: внешние по отношению к фиксированной версии R2 библиотекиA_code
    • svn: внешние по отношению к фиксированной версии R3 LibraryB_code

Проблема, которую я пытаюсь решить, заключается в автоматическом обнаружении ситуации, когда R2 отличается от R1 (нарушение ожиданий LibraryB_code), и уведомлении об этом (например, сбой сборки).

Я опишу в ответе единственное решение, которое вижу сейчас, но надеюсь на что-то более изящное:)

Среда: Windows, Visual Studio, SVN.

Ответы [ 2 ]

1 голос
/ 26 декабря 2010

Когда вы изменяете свойство svn:externals Библиотека B и фиксируете это изменение, вы создаете новую версию Библиотека B . Это означает, что репозиторий Application по-прежнему согласован. Вы беспокоиться нужно только при изменении свойства svn:externals самого приложения .

Этот случай может быть рассмотрен с помощью ловушки для хранилища для хранилища Application . Этот хук извлекает указанную версию Library B во временный каталог и сравнивает требуемую версию Library A с версией, требуемой приложением. См. Хузы репозитория для получения списка доступных хуков.

0 голосов
/ 26 декабря 2010

Сохраните для каждой библиотеки файл с необходимой ревизией для каждой зависимости.Добавьте событие после сборки, которое сравнивает эти ревизии с результатами «svnversion» и прерывает сборку в случае неудачной проверки.

Недостатки:

  1. требует установленного клиента командной строки svn (в то время какразработчик может быть доволен только TortoiseSVN
  2. не работает для экспортированных источников, только для извлеченных рабочих копий
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...