Из-за сложной структуры в репозитории SVN некоторые внешние файлы неправильно извлекаются из репозитория. Поскольку изменение структуры репозитория не является вариантом, я разработал скрипт, который выполняет итерацию через внешние ресурсы и извлекает их «вручную», если это необходимо (благодаря «svn export»). Чтобы определить, действительно ли эта операция действительно нужна, я выполняю 'svn info', предполагая, что она будет отличаться от 0, если файл не существует, или он не является версией. Это было на самом деле поведение получена в host1 (SVN Client 1.6.17):Непоследовательное поведение SVN Info с внешними
# Initially, the directory is empty
host1$ ls
host1$ svn update
Fetching external item into 'main.rbf'
svn: warning: '<REMOTE_SVN_LOCATION1>'
is not the same repository as
'<REMOTE_SVN_LOCATION2>'
At revision 18413.
# Although we do the update, the external item is not fetched,
# as it is a single file coming from a different repository
# (known problem)
host1$ ls
# The file is not present, and SVN info acts accordingly
host1$ svn info main.rbf
main.rbf: (Not a versioned resource)
svn: A problem occurred; see other errors for details
# If we force the SVN export
host1$ svn export <REMOTE_SVN_LOCATION1> main.rbf
A main.rbf
Export complete.
host1$ ls
main.rbf
# then SVN info detects it and acts accordingly
host1$ svn info main.rbf
main.rbf: (Not a versioned resource)
svn: A problem occurred; see other errors for details
host1$
В host2 (SVN Client 1.6.11), поведение 'информации' SVN совершенно иное: не имеет значения, если файл есть (из предыдущего экспорта) или нет, ответ:
# Directory is empty
host2$ ls
host2$ svn info main.rbf
Path: .
URL: <REMOTE_LOCATION>
Repository Root: ...
Repository UUID: ...
Revision: 18413
Node Kind: directory
Schedule: normal
Last Changed Author: ...
Last Changed Rev: 18326
Last Changed Date: ...
host2$
Есть ли причина объяснить это непоследовательное поведение? Как я могу обнаружить этот неверсированный файл в host2?
Почему вы не хотите, чтобы исправить нарушенные внешние? –
Не в моих руках это сделать ... – Marda
Вы можете сделать это без изменений в репо-дереве: 'svn: external' * parent dir * файлов в * некоторый путь * в TARGET-REPO, изменить внешние файлы для использования файлы из того же репо –