Чи можу я переключити сховища SVN з Eclipse?


77

Я переміщую своє сховище Subversion з однієї машини на іншу. У мене є кілька розкиданих робочих копій на різних машинах, і я виявив, що можу легко переключити робочі копії зі старого сервера на новий за допомогою наступної команди:

svn --relocate svn://oldServer/repo svn://newServer/repo

Однак на одній зі своїх машин я використовую Eclipse з Subclipse, і мені не подобається використовувати SVN командного рядка у своїх проектах Eclipse. Моє питання полягає в тому, чи можна перемикати сховища SVN зсередини Eclipse, використовуючи Subclipse або Subversive.

Відповіді:


99

Я думаю, вам потрібно зайти в перспективу вашого "браузера сховищ", там ви клацніть правою кнопкою миші ваше поточне сховище та "перемістите" його в інший домен.


7
Це чудово працювало на коробці, в якій я працював Subclipse, і щось дуже схоже працювало на коробці з Subversive. Фокус на Subversive виявився зміною "властивостей розташування" у браузері сховища. Дуже дякую!
Брендон Ярбро,

3
Subversive не здатний переміщуватися по протоколах. Перехід від SVN + SSH до HTTPS здається неможливим, продовжує будувати URL-адресу SVN + SSH і запитувати для цього облікові дані. Як справи з Subclipse?
Ain Tohvri

3
Зверніть увагу, що вам потрібно відкрити будь-які існуючі проекти за допомогою старого сховища, оскільки команда "relocate" буде оновлювати лише відкриті проекти. Це важливо, оскільки після переїзду нелегко запустити переїзд на будь-яких закритих проектах, які ви пропустили. Я допустив цю помилку, і мені довелося знищити свої закриті проекти та повторну оплату.
Черін

2
@Ain, у мене це працювало бездоганно з Subclipse 1.6 в Eclipse 3.7. Однак обов’язково налаштуйте SSL-доступ без віддаленого сервера на ваш віддалений сервер. В іншому випадку Subclipse кожного разу запитуватиме ваш пароль, оскільки він покладається виключно на локальний клієнт SSH.
Cerin

@Cerin: добрі поради, дякую, спробую наступного разу, коли я буду на цьому, дякую!
Айн Товрі,

15

Не використовуйте параметр "Команда / перемикач", а скоріше перейдіть на перспективу "Дослідження сховища SVN" і змініть розташування URL-адреси там у властивостях розташування вашого сховища. Працює як шарм на Indigo - використовуючи Subversive в моєму випадку.

При використанні Subversive з'явиться попередження "Вкладені проекти будуть переміщені, оскільки коренева URL-адреса сховища відрізняється від попередньо введеної" , - саме те, що ви хочете. Перш ніж це робити, обов’язково відкрийте всі проекти, які ви хочете перенести.

Коли ви отримуєте "Не вдається перемістити підключені проекти" з "Переміщення не може бути виконано, оскільки нова URL-адреса посилається на інше сховище", можливо, ваш корінь сховища не має папок trunk / tags / branch або має такі папки в підпапках. Тоді на вкладці Додатково може допомогти відключення параметра Увімкнути виявлення структури.

Якщо ви отримуєте повідомлення "Переміщення неможливо виконати, оскільки нова URL-адреса посилається на недійсне сховище (вказана неправильна URL-адреса чи облікові дані)", тоді також переконайтеся, що кореневий шлях у новому URL-адресі сховища відповідає кореню старої URL-адреси. (Іншими словами: переконайтеся, що /new/pathна скріншоті вище є ті самі підпапки, що й стара URL-адреса.)


1
Це правильна відповідь у нових установках Eclipse.
Раулі Раджанде

13

Просто клацніть правою кнопкою миші проект -> команда -> відключити.

Потім ще раз клацніть правою кнопкою миші проект -> команда -> поділитися -> до вашого нового SVN.

Це воно!


4

Якщо ви натиснете правою кнопкою миші на назву проекту в Eclipse Navigator, з’явиться підменю. У цьому підменю виберіть команду, яка надасть деякі додаткові параметри меню. Виберіть "Перехід до іншої гілки / тегу / ревізії ...", і з’явиться вікно, що дозволяє вказати нову гілку або, у вашому випадку, нове розташування сховища.


Я маю честь коментувати, тому зазначу, що коментар Стефана нижче (і прийнята відповідь Луки вище) є правильним.
Брендон Ярбро,

Я спробував це, і це не спрацювало: SVN Swtich зіткнувся з проблемою. org.tigris.subversion.javahl.ClientException: svn: ... це не те саме сховище, що ...
PiTheNumber

2

Ви можете зробити наступне:

Перейдіть до подання провідника проекту -> клацніть правою кнопкою миші на своєму проекті -> команда -> перемикач ... і тепер виберіть нову URL-адресу.

Це все!


Це не спрацює, оскільки ім’я хосту інше, і воно буде скаржитися, що не може знайти ієрархію
Джес

1

Я не міг переселитися зі свого затемнення. У мене різні проекти з різних гілок та тегів (лише для читання, це лише для порівняння різних версій) одного і того ж сховища. Коли ip нашого сервера svn змінився, я міг переїхати через TortoiseSVN, але не з Subclipse.

Перехід від http://oldserver/svn/PROJECTNAMEдо http://newserver/svn/PROJECTNAMEя отримую:

org.apache.subversion.javahl.CientException: Invalid operation on the current working directory
svn: Cannot relocate 'E:\…\workspaces\PROJECTNAME\tags\modulename\2.4.007\base' as it is not the root of a working copy; try relocating 'E:\…\workspaces\PROJECTNAME\tags\modulename\2.4.007' instead

Гаразд, але я не можу контролювати це. Я закінчив обхідним шляхом із залученням файлу хостів.


1

У Eclipse перейдіть до Вікна -> Перспектива -> Відкрита перспектива -> Інше -> Дослідження сховища SVN. Клацніть Ok

Потім клацніть правою кнопкою миші сховище, яке потрібно змінити -> Властивості розташування.

Змініть закінчення клацання URL-адреси.

Це воно!


0

Можливо, ви зможете просто поміняти місцями імена серверів у DNS; це може бути простіше, ніж переключити всі робочі копії.


0

команда -> відключити

і

команда -> поділитися -> до вашого нового SVN

Це краще рішення, ніж перемикач.

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