Повторная проверка SVN (переключить / переместить / что-то еще?) - PullRequest
0 голосов
/ 20 января 2012

Проект, над которым я сейчас работаю, использует SVN для контроля версий.Когда он был изначально создан (другим человеком, который в данный момент недоступен), папка public_html на сервере была извлечена в следующую папку: https://URL/project_name/, где «имя_проекта» является корнем хранилища.Он не предоставил никакой структуры для веток / тегов, потому что, очевидно, он не выглядел так, как будто он нам когда-либо понадобится.

Теперь, когда мы понимаем, что нам нужны ветви, чтобы организовать параллельную работу над несколькими версиями проекта,мы решили создать новый репозиторий с правильной структурой (URL / имя_проекта / trunk / для основной версии и URL / имя_проекта / branch / ... для дополнительных).Нет проблем с организацией самого репозитория, но как мне сделать новую проверку для папки 'public_html' на сервере?Если я пытаюсь выполнить 'svn checkout URL / имя_проекта / trunk / home / public_html', я получаю сообщение об ошибке, в котором говорится, что 'public_html' уже является рабочей копией для другого URL.

Я пытался просмотретьпараметры svn switch и svn перемещают на локальном тестовом компьютере через Tortoise SVN, но первый, кажется, работает только для переключения между ветвями одного и того же репозитория, а последний требует указать корень репозитория (и мне нужно указатьURL / имя_проекта / транк в качестве папки оформления заказа).Может ли кто-нибудь помочь или хотя бы направить меня в этой ситуации?

У меня есть root-доступ по SSH к серверу.

Ответы [ 4 ]

2 голосов
/ 20 января 2012

Из Справка TortoiseSVN :

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

Не применяется, если:

Вы хотите перейти в другое хранилище Subversion.В этом случае вы должны выполнить чистую проверку из нового местоположения хранилища.

Вы хотите переключиться на другую ветку или каталог в том же хранилище.Для этого вам следует использовать TortoiseSVN → Switch .... Прочтите Раздел 4.19.2, «Оформить заказ или переключиться ...» для получения дополнительной информации.

Итак, вам необходимо оформить заказновая свежая копия.Либо удалите все содержимое вашего каталога и затем извлеките его, либо извлеките его в новый каталог, а затем переименуйте новый, указав имя старого.

2 голосов
/ 20 января 2012

Попробуйте svn переместить ваше имя_проекта в ваш ствол. Не изменяйте напрямую вашу файловую систему; это не повлияет на ваши файлы репо. Вместо этого используйте svn команды .

// in URL (parent folder of project_name)
svn mkdir trunk
svn mkdir branches
svn mkdir tags
svn move project_name trunk 
svn ci -m 'moved'

et voilà

если у вас нет родительской папки, вам придется "svn перемещать" каждый файл и каталог в корневом каталоге project_name одно за другим.

1 голос
/ 20 января 2012

Если project_name - ваша корневая папка, вы можете создать в ней структуру branch / tags / trunk и вручную svn move сделать для каждого файла / папки, содержащейся в project_name (за исключением ветвей / tags / trunk, конечно) , Таким образом, вы можете сохранить всю историю ваших коммитов. Это утомительно, но безопасно!

0 голосов
/ 20 января 2012

Разве вы не можете использовать графический интерфейс для SVN, как TortoiseSVN ???Я думаю, что переместить вещи в репо было так же просто, как перетащить правой кнопкой мыши и выбрать соответствующую опцию, а затем зафиксировать.

Также вы можете попробовать сделать это в браузере репо.http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-rename.html

...