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

247

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

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

jeremcc
источник

Ответы:

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

yknott
источник
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).

SWMC
источник
1

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

WhyNotHugo
источник
0

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

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

dwilkins
источник
0

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

acemtp
источник
0

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

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

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

Маниш Сингхал
источник