Як перемістити файл?


219

Я використовую TortoiseSVN проти сховища SourceForge SVN. Я хотів би перемістити файл з однієї папки в іншу, щоб зберегти історію редагування. Чи можливо це? Якщо так, то як це зробити?

(Моя поточна стратегія полягала в тому, щоб скопіювати файл у нову папку та перевірити його, а потім видалити файл із поточної папки.)

Відповіді:


95

Subversion має вбудовану підтримку переміщення файлів.

svn move SOURCE DESTINATION

Додаткову інформацію див. У онлайн-довідці (svn help move).


Або інший спосіб сказати це: svn move <current path/filename> <destination path/filename>
Джо

313

Перевірте розділ 5.14.2. Переміщення файлів і папок (або відмітка "переміщення" в Індексі довідки) довідки TortoiseSVN. Ви робите рух за допомогою перетягування праворуч. Він також згадує, що вам потрібно скористатись з батьківської папки, щоб зробити її "єдиним" переглядом. Це працює для внесення змін у робочу копію.

(Зверніть увагу, що елементи SVN на наступному зображенні відображатимуться лише в тому випадку, якщо папка призначення вже додана до сховища.)

меню переміщення черепахи

Ви також можете зробити переміщення за допомогою браузера Repo (розділ 5.23. Оглядач репозиторію довідки).


Коли я виділив усі свої файли, перетягнувши праворуч, з'явилося звичайне меню провідника Windows. Це дозволило мені вибрати "переміщення", але це був не варіант SVN, тому я не впевнений, що щось навіть сталося. Коли я перевірив, чи є модифікації, він сказав, що 300 файлів видалено, а 300 - без версії. Це не здається, що воно працювало правильно. Я боюся зробити це, не знаючи, чи так це має працювати, чи ні
Джо Філіпс,

48
Я просто зрозумів, що це, ймовірно, не спрацювало, тому що я ще не додав / вніс новий каталог
Джо Філіпс,

Я знаю, що це через роки - але коментар Джо важливий. Я теж боровся з цим - я не помітив цієї відповіді у відповіді. Папка призначення повинна знаходитись під контролем SVN, інакше це не працюватиме. На щастя, SVN дозволяє додавати порожні папки. Після розміщення папки під управлінням SVN перетягнення правої миші буде працювати, як описано вище. В іншому випадку представлено загальне меню Windows "Копіювати / переїхати сюди / скасувати" (тобто варіанти SVN відсутні).
ripvlan

Це було ідеально. У мене виникли проблеми з переміщенням понад 1500 файлів за один раз. Переміщення по одній директорії за часом, здавалося, позбулося цієї проблеми.
Майкл Мерфі

80

За допомогою TortoiseSVN я просто переміщую файл на диску.

Коли я приходжу до внесення змін, я вибираю файл, що відсутній, і новий, і в меню правою кнопкою миші вибираю " Відновити переміщення ":

введіть тут опис зображення

Це означає, що я можу дозволити своєму IDE переміщувати круглі файли та використовувати його інструменти рефакторингу, не втрачаючи історії.


3
Це мій кращий спосіб переміщення файлів зараз. Одне попередження; робити лише <20 файлів за один раз між комітами, інакше це може дуже витратити час на пошук файлів, які відносяться один до одного.
DarrenMB

@DarrenMB має рацію: я збираюся перенести проект Android з Eclipse на Android Studio. Усі файли потрібно перемістити. Цей підхід не є таким, який я хочу використовувати тут.
Бондакс

@Bondax так, для міграцій цілих проектів вам краще робити переміщення всередині SVN - це ви повинні робити дуже часто. Я вважав це кращим способом для більшості рухів файлів, які роблять більшість розробників під час проекту.
Кіт

1
У мене немає ремонту рухатися, використовуючи черепаху SVN 1.9.4
Марк Паттерсон

@ Марк Паттерсон: Я бачу варіант, і я також перебуваю на 1.9.4 (TortoiseSVN 1.9.4, Build 27285 і Subversion 1.9.4, -випуск). Я не думаю, що ваша проблема пов'язана з версією ... Ось офіційна документація цієї функції: tortoisesvn.net/repairmoves.html
Yosko

37

У TortoiseSVN клацніть десь правою кнопкою миші та перейдіть TortoiseSVN> браузер Repo, відкрийте сховище.

Все, що вам потрібно зробити - це перетягнути файл із однієї папки в туди, куди вам потрібно. Він попросить вас додати повідомлення про фіксацію, і воно за замовчуванням буде "Переміщено файл / папку віддалено"


22

Використовуючи TortoiseSVN, я просто клацну правою кнопкою миші та перетягнув папку з одного місця в інше. Коли ви відпустите правою кнопкою миші, у вас з'явиться можливість "SVN Move File Version". Однак я вважаю, що SVN там не робить нічого "фантазійного", а просто видаляє файл у попередньому місці та додає його до нового місця.


18

Для клієнта TortoiseSVN:

  1. Виберіть файли, які потрібно перемістити,
  2. Клацніть правою кнопкою миші та перетягніть файли в папку, в яку ви хочете перемістити їх,
  3. Після випуску перетягування в папку з'явиться вікно. Натисніть "Перемістити сюди перероблені версії SVN" ,
  4. Після того, як ви натиснете вище, з'явиться вікно фіксації. Введіть повідомлення та надішліть.

Тепер ви закінчили.


8

Виріжте файл за допомогою контекстного меню операційної системи, як зазвичай, тоді замість того, щоб робити звичайну пасту, клацніть правою кнопкою миші, щоб принести контекстне меню, а потім виберіть TortoiseSVN -> Paste(переконайтеся, що ви зобов’язані від root включити як старі, так і нові файли у фіксацію).


4

я думаю, що в браузері svn в tortoisesvn ви можете просто перетягнути його з одного місця в інше.


2

Оскільки ви використовуєте Tortoise, ви можете перевірити це посилання на LosTechies. Це повинно бути майже саме те, що ви шукаєте.

http://www.lostechies.com/blogs/joshua_lockwood/archive/2007/09/12/subversion-tip-of-the-day-moving-files.aspx


3
Оскільки це посилання може розірватися, ви можете скопіювати відповідну інформацію у свою відповідь.
Cees Timmerman

3
... І ця ланка розірвалася. Точка та випадок.
Стюарт.Склінар

1

Якщо я не помиляюся, починаючи з версії 1.5, SVN може відслідковувати переміщені файли \ папки. У TortoiseSVN використання може переміщувати файл за допомогою перетягування.


1

Також може називатися "перейменувати" черепахою, але svn переміщення - це команда у клієнті svn босоніжки.


найпростіша і найточніша відповідь - це одна! використання файлів, що рухаються TortoiseSVN, виконується клацанням правою кнопкою миші> перейменувати. Це воно.
RoeeK

1

Передача файлу за допомогою TortoiseSVN:

Крок: 1 Будь ласка, виберіть файли, які ви хочете перемістити, клацніть правою кнопкою миші та перетягніть файли до папки, в яку ви перейдете, а після цього виконайте наведені нижче інструкції.

SVN варіант

Крок 2: Після натискання на вищезазначений фіксатор файл, як зазначено нижче

SVN прихильність


0

Якщо ви переміщуєте папки через браузер репозиторіїв, опція "Перемістити" не має правої кнопки миші; єдиний спосіб - перетягнути

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.