svn: switch не работает с относительным svn: external? - PullRequest
1 голос
/ 13 января 2009

У нас есть подпапка, которая является относительной SVN внешней (../project/subfolder). В новой проверке ствола он указывает на (... TRUNK / project / subfolder), а в новой проверке ветки он указывает на (... BRANCH / branchName / project / subfolder). Но если вы включите проект, содержащий подпапку, подпапка будет продолжать указывать на TRUNK. В качестве альтернативы, если вы выполняете проверку BRANCH и переключаетесь на TRUNK, он остается направленным на BRANCH.

Разве svn: switch не должен обновлять внешние параметры? Есть ли какой-то рекурсивный svn: switch, который я должен запустить?

Ответы [ 5 ]

3 голосов
/ 24 апреля 2010

Правильный ответ на вопрос: «Да, он должен обновить эти внешние данные». Тот факт, что это не является ошибкой:

см .: http://subversion.tigris.org/issues/show_bug.cgi?id=3390

Исправить целевой рубеж - 1.6.10. Это исправление, очевидно, завершено, но текущая версия релиза, как я пишу, все еще 1.6.6.

1 голос
/ 22 августа 2012

Увы, я считаю, что это все еще не исправлено, несмотря на то, что упомянутое выше исправление было реализовано давно.

У меня есть внешние объекты, в имени которых есть пробелы и используется двойной относительный путь. Мои внешние ссылки на файл в той же ветке, но снова и снова, вот так: ../../myOriginFolder/itsSubfolder/my имя файла.pdf

После того, как я переименовал ветку, теперь мой репо нарушен с помощью TortoiseSVN 1.7.8 (или его командной строки SVN 1.7.6). Старая рабочая копия не может быть корректно обновлена ​​после ее переключения, и я не могу извлечь новую копию старой ветки! Все команды - checkout-to-old-revision, update-to-old-revision и switch-and-update - не будут выполнены. Единственная вещь, которая работает нормально, это сделать новую проверку и затем двигаться вперед, никогда не возвращаясь.

Это похоже на довольно плохую ошибку! Это означает, что в результате моего использования внешних путей относительного пути, я больше не могу переименовывать / переключать / возвращать свои ветви .

Интересно, видел ли кто-нибудь это и есть ли обходной путь? Мне интересно, должен ли я просто жестко закодировать эти ссылки. Даже это может быть лучше, чем этот провал.

Интересно также, может ли исправление, упомянутое выше, теперь потерпеть неудачу, потому что между 1.6 и 1.7 формат рабочей копии был изменен. Теперь есть только одна крошка высшего уровня; возможно, это может иметь отношение к проблеме? Если бы я все еще мог проверить эту папку, я бы сравнил информацию /.svn/ для этой свежей проверки последних и предыдущих имен.

Вот подробности ошибки, которую я вижу.

TortoiseSVN говорит: Внешняя ошибка c: \ myRepo-keyword \ myDestinationFolder \ my file name.pdf Отчет об ошибке '/ svn / myrepo /! Svn / me': не удалось прочитать размер куска: соединение было закрыто сервером.

Журнал событий Apache / VisualSVN сообщает; Источник: VisualSVN Server 2.5 Дата: 21.08.2012 11:20:57 Код события: 4000 Уровень: Информация Описание: switch / myRepo-Path / myOriginFolder / его подпапка / имя моего файла.pdf / имя моего файла.pdf / myRepo-Path / mySubfolder / имя моего файла.pdf@7178

Вот ошибка из-за новой проверки папки external-ed из ревизии до переименования. Внешний сбой: C: \ VcsSvn \ 3.7.8.6328.RuntimeRefs \ Stroz Review. Руководство пользователя.pdf
Ошибка: URL
Ошибка: 'http://myurl/svn/myOldRepo-Path/myOriginFolder/itsSuubfolder/my имя файла.pdf'
Ошибка: в версии 7179 не существует
Завершено: на доработке: 6328

// edit Благодаря другому пользователю stackoverflow, я нашел этот открытый тикет, который может быть связан; http://subversion.tigris.org/issues/show_bug.cgi?id=4150

// edit2; Другой плакат рекомендует избегать внешних воздействий: Как я могу выполнить ветвь в SVN и сделать так, чтобы она тоже разветвляла мои папки svn: external?

1 голос
/ 26 ноября 2010

Похоже, это было исправлено в Subversion 1.6.11. http://svn.apache.org/repos/asf/subversion/trunk/CHANGES

1 голос
/ 13 января 2009

Subversion, как правило, считает, что внешние объекты отделены от содержащего их проекта. Например, «svn commit» просматривает только файлы в проекте, а не какие-либо внешние файлы, содержащиеся в проекте. «svn switch» работает так же; Вы можете переключить основной проект, но вам нужно будет запустить отдельный «svn switch» на каждом внешнем.

1 голос
/ 13 января 2009

Вы можете попробовать svncopy.pl. svn: внешние компоненты не обновляются при переходе или переключении.

...