Как мне отменить «SVN-переключатель» в подкаталоге? - PullRequest
13 голосов
/ 19 сентября 2008

Не в первый раз я случайно сделал "svn switch" где-то ниже корня моего проекта. Это переключает только этот подкаталог, но как мне отменить это?

Если я пытаюсь переключить подкаталог обратно в исходную ветку, я получаю:

"svn: Directory 'subdir\_svn' containing working copy admin area is missing"

Обновление : У меня есть изменения в подкаталоге, поэтому я не хочу удалять.

В краткосрочной перспективе я исправил это путем повторного применения изменений, но я нашел способ вернуть Subversion обратно туда, откуда я пришел ... или это отсутствующая функция?

Ответы [ 7 ]

7 голосов
/ 19 сентября 2008

Быстрый взлом: Удалить каталог, перейти на один уровень вверх и запустить svn update.

5 голосов
/ 19 сентября 2008

Не зная точно, как вы переключились и как устроен ваш каталог и структура хранилища, трудно сказать, что пошло не так в вашем случае.

Невозможно действительно «вернуть» переключатель. Как правило, svn-переключатель может быть отменен переключением обратно в исходное местоположение, т.е. когда исходное местоположение находится в svn: // url / to / orig / dir, тогда должно работать следующее:

Переключение подкаталога в другую часть хранилища

svn switch svn://path/to/switched/dir/ subdir

... и снова включить его

svn switch svn://url/to/orig/dir subdir

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

1 голос
/ 09 июля 2013

Я исправил это, проверив изменения в коммутируемом каталоге, удалив файлы .svn и неуместные файлы, затем использовал svn checkout <rootUrl>, а затем svn update -r HEAD --force.

Я не думаю, что есть чистый способ сделать это.

0 голосов
/ 21 ноября 2018

Мой вариант использования казался простым; Я хотел переключиться обратно в каталог с именем текущего каталога с корнем в URL родительского каталога. Конечно, хлопотом здесь является получение, а затем копирование URL родительского каталога. Этот скрипт в пакете Windows сделал это для меня. Пользователи Bash могут сделать это намного проще, но суть здесь. Кажется, что эту функцию было бы тривиально, чтобы свернуть в SVN непосредственно ...

Возможно, вам понадобится добавить кавычки вокруг параметра, но я оставлю это вам. В случае, если это не очевидно, вам нужно запустить это в каталоге, который вы хотите "отключить". Это не требует параметров или чего-либо еще в это время, хотя это довольно прямолинейное добавление, если вы так склонны (просто cd \d %1 сверху, если %1 не пусто).

СВН-unswitch.bat

@echo off
setlocal

for /f "tokens=*" %%u in ('svn info --show-item url ..') do set "PARENT_URL=%%u"
call :SetDirName %CD%
svn switch %PARENT_URL%/%DIRNAME%
goto :eof

:SetDirName
    set DIRNAME=%~nx1
    goto :eof

Сертифицировано: Работает на моей машине!

0 голосов
/ 08 сентября 2016

Кажется, что он работает, чтобы запустить другой переключатель обратно к правильному пути к каталогу, в котором вы на самом деле находитесь. То есть, если вы запустили:

svn switch file:///srv/svn/someproject/branch/27

пока вы были в каком-то проекте / подкаталоге, запустите

svn switch file:///srv/svn/someproject/branch/26/subdir

, а затем запустите исходный переключатель из правильного места.

Кажется, это восстанавливает порядок.

0 голосов
/ 28 апреля 2016

, если последними изменениями являются только переключатели,

Щелкните правой кнопкой мыши по общему родительскому каталогу, черепаха svn-> Зайдите в лог svn. Щелкните правой кнопкой мыши версию до SVN Switch и выберите «Вернуться к этой версии».

0 голосов
/ 19 сентября 2008
svn revert <dir>

Или, да, удалите его и возьмите другую копию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...