Как переместить файл (или папку) из одной папки в другую в TortoiseSVN?


247

Я хотел бы переместить файл или папку из одного места в другое в одном и том же хранилище, не используя для этого Repo Browser и не создавая двух независимых операций добавления / удаления. Использование Repo Browser работает отлично, за исключением того, что ваш код будет зависать в нерабочем состоянии до тех пор, пока не будут проверены какие-либо вспомогательные изменения (например, файл .csproj).

Обновление: люди предложили «переместить» из командной строки. Есть ли аналог TortoiseSVN?

Ответы:


448

Чтобы переместить файл или набор файлов с помощью Tortoise SVN, щелкните правой кнопкой мыши и перетащите целевые файлы в их место назначения и отпустите правую кнопку мыши. У всплывающего меню будет SVN move versioned files hereопция.

Обратите внимание, что папка назначения должна быть уже добавлена ​​в хранилище, чтобы эта SVN move versioned files hereопция появилась.


32
Мне нужно было сделать то же самое, и это сработало отлично. Никогда не знал об этом варианте. Большое спасибо!
ДавГарсия

4
Спасибо! Примечание. После этого в журнале изменений отображается куча файлов и каталогов DELETED и ADDED, но история изменений действительно повторяет файлы. :)
Йо Судзуки

1
Что мне делать, если я уже переместил файл, но SVN по-прежнему считает его в другом каталоге?
Шон Маклин

4
Вы также (конечно, в v1.7.6) должны убедиться, что в каталог, в который вы перемещаете файлы, уже добавлена ​​subversion
icc97

Легендарный ответ сделал мой день, ты!
Кирилл Гандон


22

В проводнике Windows правой кнопкой мыши перетащите файл из того места, где он находится, в нужное место. После отпускания правой кнопки мыши вы увидите контекстное меню с такими параметрами, как «SVN Move versioned file here».

http://tortoisesvn.net/most-forgotten-feature



5

Если вы хотите перемещать файлы и обновлять файлы csproj, самый простой способ - использовать плагин Visual Studio, такой как AnkhSVN . Это автоматически совершит как действие перемещения (как удаление + добавление с историей, потому что так работает Subversion), так и изменение в .csproj


4

Из командной строки вы можете ввести svn mv path1 path2. Это создаст операцию добавления и удаления, но в действительности это не обходится, насколько я знаю, в Subversion.


3

В Subversion пока нет первоклассных операций переименования.

Есть проблема 6-летней давности: http://subversion.tigris.org/issues/show_bug.cgi?id=898

Это рассматривается для 1.6, теперь, когда отслеживание слияния (более высокий приоритет) было добавлено (в 1.5).


1

Используйте команду RENAME от Tortoise и введите относительный путь ("folder / file.ext").


0

Как упоминалось ранее, вы создадите команды добавления и удаления. Вы можете использовать svn move как для своей рабочей копии, так и для URL репозитория. Если вы используете свою рабочую копию, изменения не будут зафиксированы - вам нужно будет зафиксировать их в отдельной операции.

Если вы переместите URL-адрес, вам нужно будет указать --message, и изменения будут немедленно отражены в хранилище.


0

Используйте svn moveкоманду для перемещения файла / папки.


0

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

SVN переместить версионные файлы сюда.

Просто выберите эту опцию, и все готово!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.