SVN, похоже, меняет место назначения при копировании из командной строки - PullRequest
0 голосов
/ 20 декабря 2011

Я испытываю странное поведение. Моя система сборки должна хранить копию файла с именем 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...