SVN: Обновить рабочую копию, чтобы исключить внешние с помощью TortoiseSVN?

Есть ли способ обновить рабочую копию, чтобы исключить внешние факторы с помощью TortoiseSVN?

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

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

Я использую Tortoise SVN 1.7.2 в формате 1.7.x.

РЕДАКТИРОВАТЬ: Ладно, похоже, то, что я ищу, невозможно. Кажется, что «SVN Update» всегда будет обновляться с внешними элементами, даже если репозиторий извлечен с помощью «Omit Externals» (--ignore-externals).

РЕДАКТИРОВАТЬ 2: Хорошо, нашел решение. Кажется, нет способа пометить его в каждом репозитории. Но глобально: 'TortoiseSVN' => 'Settings' => 'Advanced' устанавливает для 'IncludeExternals' значение false. Это остановит обновление внешних компонентов SVN Update. Похоже, для принудительного внешнего обновления мне нужно перейти к «Обновить до версии ...». Это выполнимо, поскольку это менее вероятная ситуация. (У меня есть 5 проверок, и только 1 требует внешних, и только когда опора обновлена. 2 они нужны только один раз при проверке)


person guice    schedule 20.12.2011    source источник


Ответы (3)


svn up --ignore-externals должен выполнить свою работу, вы можете удалить внешние папки вручную, затем

person zuloo    schedule 20.12.2011
comment
... нм. Казалось бы, это невозможно. Только что сделал тест. Я пытаюсь пометить свой репозиторий, чтобы игнорировать внешние, чтобы при обновлении он не обновлял внешние. Оказывается: svn co --ignore-externals будет игнорировать внешние для этого одного экземпляра. Как только я делаю обновление ... оно обновляет внешние элементы ... Я думал, что внешние элементы будут игнорироваться и для всех последующих обновлений. - person guice; 20.12.2011
comment
Нет, вам придется добавлять это каждый раз. Нет такой опции, которую можно было бы установить в конфигурации или где-либо еще. В unix-подобных системах я бы предложил создать псевдоним, включающий эту опцию, или перезаписать команду svn процедурой bash, которая устанавливает опцию по умолчанию. В Windows вам нужно будет создать сценарий bash, который передает параметры команде svn, которая включает --ignore-externals. таким образом вы можете просто обновить его, дважды щелкнув этот файл bash. - person zuloo; 21.12.2011
comment
Оказывается, у TortiseSVN есть опция в расширенных параметрах, позволяющая постоянно устанавливать этот флаг. См. Мою правку выше. - person guice; 21.12.2011

В TortoiseSVN вы можете обновлять без использования внешних элементов, выбрав «Обновить до ревизии ...» и установив флажок «опустить внешние».

person pgl    schedule 20.12.2011
comment
Нет, не сработало. «Обновить до ревизии» Если выбрано «HEAD», выбрано «Omit Externals». Успешно обновляется, без внешности. Затем я сделал «Обновление SVN», и он обновился внешними компонентами .... - person guice; 20.12.2011

Я понимаю, что это очень запоздалый ответ и, вероятно, ВТО, однако решение вашей проблемы, если я правильно понимаю, заключалось в том, чтобы просто обновить ваш список внешних.

По сути, у вас была куча внешних элементов, которые были перемещены в другой проект, и вы хотели обновить свою рабочую копию, чтобы не включать их правильно?

Все, что вам нужно сделать, это щелкнуть правой кнопкой мыши по извлеченному каталогу (или в любом месте белого пространства в проводнике Windows, если вы находитесь внутри папки), перейти в Tortoise SVN> Свойства. Отредактируйте свойство, которое включает ваши внешние элементы, и удалите / добавьте любые нужные вам каталоги. Затем обновите свой каталог. Он больше не будет включать в себя каталоги, которые были включены.

person Chris    schedule 26.07.2016