Как я могу получить список всех svn: externals (рекурсивно) в каталоге? Есть ли для этого какая-нибудь полезность?
(Я использую винду (и черепаху))
У меня есть куча svn: externals, ссылающихся на разные общие части моего проекта, и я, когда я делаю ветвление, обычно довольно подвержен ошибкам, чтобы найти все внешние и изменить их так, чтобы ссылка на пути в новой ветке.
svn
tortoisesvn
Нильс Босма
источник
источник
Ответы:
Сделайте следующее в корне вашей рабочей копии:
Как обсуждается в комментариях ниже, здесь не перечисляются внешние элементы.
Примечание для пользователей TortoiseSVN: в установщике TortoiseSVN есть опция, позволяющая также установить клиент командной строки SVN. По умолчанию этот параметр отключен.
источник
Изменение всех этих внешних свойств вручную звучит утомительно. Вы смотрели на новую функциональность внешних элементов, добавленную в Subversion 1.5?
Может, один из них поможет? Я думаю, это зависит от того, как именно вы выполняете ветвление и как выглядит структура вашего репозитория.
источник
Мой способ обхода TortoiseSVN:
Откройте диалоговое окно «Ветвь / тег ...» из контекстного меню SVN. В нижнем диалоговом окне показаны все внешние элементы, включая вложенные внешние.
источник
svn propget svn:externals -R
.Возможно, в качестве обходного пути вы могли бы структурировать свой проект таким образом, чтобы все внешние элементы были установлены в одной папке, например, в папке проекта чуть ниже Trunk. (Это, кстати, не означает, что все внешние папки должны иметь одинаковую глубину.) Затем вы можете щелкнуть правой кнопкой мыши папку вашего проекта, затем Свойства ..., затем вкладку Subversion, затем Свойства ... затем дважды щелкните svn: externals.
источник
Я использовал ответ Вима Коенена и написал следующий скрипт для создания списка всех ревизий:
К счастью, у меня нет вложенных внешних элементов, поэтому мне не пришлось это тестировать, и я думаю, это не сработает. Но если вам это нужно, вероятно, достаточно просто вызвать эту функцию рекурсивно. Кроме того, я никогда не тестировал имена файлов, которые нужно экранировать. Тогда это, скорее всего, не сработает.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я знаю, что исходный вопрос касался окон, и сценарий оболочки не будет работать там, если вы не используете cygwin или аналогичный.
источник
Я взял ответ Даниэля Алдера , удалил вызовы svnversion и сделал его рекурсивным (ПРИМЕЧАНИЕ:
read a b c d e
не работает, если есть пробел в источнике или месте назначения). Это сценарий bash, поэтому вам либо понадобится что-то вроде Cygwin, либо используйте подсистему Windows для Linux .источник