Укажите путь SVN, который включает внешние - PullRequest
1 голос
/ 09 января 2020

Примечание: это может быть дубликатом: "svn list" игнорирует внешние Если вы считаете это так, пожалуйста, отметьте и закройте его.

Разрешает ли SVN или есть инструмент для листинга пути, которые включают в себя внешние объекты?

Я пишу инструмент, позволяющий обрабатывать удаленные svn-репозитории как файловую систему, но в настоящее время при попытке указать путь с внешним источником будет ошибка.

Example: 
> svn list svn://example.com/path/external/path 
svn: warning: W160013: URL svn://example.com/path/external/path' non-existent in revision 12345
svn: E200009: Could not list all targets because some targets don't exist

В настоящее время я использую обходной путь, который работает примерно так:

traversed = '';
while (file = path.next()) {
    if (svn.exists(file))
        traversed = path.join(traversed, file);
    else if(svn.externals(traversed).includes(file))
        traversed = path.join(traversed, file);  //Automatically normalizes path
    else
        throw; //An actually invalid path
}

//Here you can use 'traversed' as an actually valid path

Но, учитывая, что мне постоянно нужно запрашивать здесь что-то с сервера, это не будет хорошо масштабироваться, особенно если inte rnet соединение становится изворотливым.

Я видел пост выше, и похоже, что еще в 2007 году они планировали это исправить, но пока я не могу найти ни исправления, ни инструмента, который бы сделать это более простым способом.

Я использую CentOS с пакетом svn yum (v1.12.2)

Редактировать: мне нужно (при указании пути), чтобы внешние объекты действовали как символические ссылки. Значение

svn list svn://example.com/path1/external/path3
should act same as
svn list svn://example.com/path2/actual_external_path/path3

1 Ответ

0 голосов
/ 09 января 2020

svn list поддерживает параметр --include-externals. По умолчанию svn list не отображает внешние данные.

...