2013-07-25 3 views
0

Из-за сложной структуры в репозитории 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?

+0

Почему вы не хотите, чтобы исправить нарушенные внешние? –

+0

Не в моих руках это сделать ... – Marda

+0

Вы можете сделать это без изменений в репо-дереве: 'svn: external' * parent dir * файлов в * некоторый путь * в TARGET-REPO, изменить внешние файлы для использования файлы из того же репо –

ответ

0

svn info и svn info FILENAME do различные вещи.

Второй форма может получить информацию о неверсированного, первая форма получение информации о текущей директории в туалете

+0

Конечно. Если вы увидите пример, вы заметите, что я всегда использую вторую форму. – Marda

+0

@Marda - вторая форма никогда не будет работать для ** неверсированного ресурса **, и я вижу 'host2 $ svn info' –

+0

Именно это я и ожидаю, это информация, которую я использую в своем скрипте, и это поведение, которое я получаю в host1 , Почему у меня другое поведение в host2? (Я исправил опубликованный код) – Marda

 Смежные вопросы

  • Нет связанных вопросов^_^