Я испытываю странное поведение.
Моя система сборки должна хранить копию файла с именем delivery.xml в одном месте. Есть несколько репозиториев, используемых и связанных с внешними.
Система сборки копирует файл delivery.xml в другое место с уникальным именем файла.
Автоматическая команда, которая генерируется динамически во время сборки, в этом случае:
svn copy https://REPO_DOMAIN.com/svn/repos/productive_zzzbuild/branches/Vancouver_delivery/zzzBuild/release-docs/current/Int_AU210_SOP8/delivery.xml https://REPO_DOMAIN/svn/repos/productive_zzzbuild/tags/___delivery_xml/AU210_SOP8_11510P.xml -m "20.12.2011: delivery.xml from ReleaseLabel: 11510P"
В результате:
svn: Failure opening '/tags/___delivery_xml/AU210_SOP8_11510P.xml/delivery.xml'
Как вы можете видеть, отказоустойчивый отказался от безопасного;)
Вместо этого он присоединяет /delivery.xml к месту назначения, что не имеет смысла.
Я получаю тот же вывод при вводе команды вручную.
Внешние в порядке.
svn list https://REPO_DOMAIN.com/svn/repos/productive_zzzbuild/branches/Vancouver_delivery/zzzBuild/release-docs/current/Int_AU210_SOP8/delivery.xml
и
svn list https://REPO_DOMAIN/svn/repos/productive_zzzbuild/tags/___delivery_xml/AU210_SOP8_11510P.xml
работает нормально, поэтому пути допустимы.
AU210_SOP8_11510P.xml на самом деле уже существует из-за некоторых тестовых прогонов, но это не объясняет это поведение.
Команда работала должным образом в течение нескольких недель до вчерашнего дня.
Я использую все виды сценариев, чтобы разрушить задание на сборку, чтобы убедиться, что система настолько проста, но и максимально устойчива к сбоям.
Я запустил 2 задания одновременно, поэтому они в смещенную временную шкалу зафиксировали один и тот же источник, что, конечно, в определенное время закончилось сбоем, поскольку ресурс вышел из синхронизации.
Только исправление внешних версий и их применение к свойству svn: externals исправили его.
Но теперь AU210_SOP8_11510P.xml обрабатывается как каталог, а не как файл.
https://REPO_DOMAIN/svn/repos/productive_zzzbuild/tags/___delivery_xml/AU210_SOP8_11510P.xml не является частью внешнего вида и не упоминается в собственности.
svn copy https://REPO_DOMAIN.com/svn/repos/productive_zzzbuild/branches/Vancouver_delivery/zzzBuild/release-docs/current/Int_AU210_SOP8/delivery.xml https://REPO_DOMAIN.com/svn/repos/productive_zzzbuild/tags/___delivery_xml -m "20.12.2011: delivery.xml from ReleaseLabel: 11510P" работает как положено.
- В качестве обходного пути я мог бы сначала скопировать файл delivery.xml в папку и
переименуйте его потом, но это создает некоторую работу, которую я хотел бы
избежать.
- Я должен был бы выполнить автоматические проверки, что ни delivery.xml, ни переименованная версия не существуют, и если они действительно предоставляют некоторые
дальнейшие действия, как справиться с ситуацией, чтобы избежать неудачной работы
- delivery.xml существует для каждого региона и для каждого комплекта программного обеспечения, поэтому мне придется внести изменения в ~ 20 delivery.xml с различными условиями.
Есть идеи, почему это происходит?
ОБНОВЛЕНИЕ:
- копирование, а затем переименование не работает :( Та же ошибка, как если бы я копировал это прямо с уникальным именем ...
- удаление уже существующих файлов решило проблему.
- поведение воспроизводимо. команда предполагает, что предоставленное имя файла является каталогом, если файл с таким именем присутствует. Это афаик, а не ожидаемый ответ. ИМХО должен быть ответ: файл существующего коммита не работает. Мне интересно, как я это разрушил. Это необходимо исправить, поскольку разработчики могут столкнуться с проблемами, если они попытаются добавить файл, который уже присутствует в репозитории, и ввести их в заблуждение.
Приветствие
Jan