Как перемещать папки между хранилищами Perforce

После случайного удаления моего репозитория Svn на днях я хотел попробовать что-то еще и выбрал Perforce в качестве своей текущей площадки для тестирования инструмента управления версиями. Все идет отлично, и мне нравится то, что я вижу в Perforce.

Вот моя проблема. Я отправил свои файлы на свой сервер Perforce, а затем использовал свои клиентские компьютеры, чтобы получить эти проекты с главного сервера Perforce. Теперь все работает отлично, за исключением того, что я понял, что в Perforce можно использовать более одного «депо», и для меня имеет смысл просто переместить некоторые из этих проектов в другое депо для организации и, возможно, из соображений безопасности в ином случае.

Я искал несколько ответов и нашел пару из них, однако я не могу дать каких-либо ожидаемых результатов, поэтому я ищу здесь советы экспертов.

Одна из страниц, которые я пробовал, это эта

http://kb.perforce.com/article/24/renaming-depot-directories

Кажется, предлагает решение, однако мне не удалось переместить файлы из одного хранилища в другое хранилище, которое находится в том же процессе сервера. Примеры на странице отлично подходят для перемещения какой-либо папки в папку в том же хранилище. Этот пример, кажется, демонстрирует перемещение в другую папку в том же хранилище.

Поэтому я ищу разумный и безопасный способ переместить мои основные папки хранилища Perforce в другое хранилище, которое находится на том же сервере, и, естественно, без потери работы.

Вот чего я хочу

-- Текущий

//Depot-A
 -->folder1
 -->folder2

-- Я хочу

//Depot-A
 -->folder1

//Depot-B
 -->folder2

Благодарность


person yarun can    schedule 12.11.2012    source источник


Ответы (3)


Перемещение файлов между разными хранилищами ничем не отличается от перемещения файлов между папками в одном хранилище, за исключением того, что целевое хранилище уже должно существовать. Используя ваш пример и предполагая, что «Depot-B» еще не существует, чтобы переместить «folder2» из «Depot-A» в «Depot-B», вы должны просто сделать следующее:

p4 depot Depot-B
p4 edit //Depot-A/folder2/...
p4 move //Depot-A/folder2/... //Depot-B/folder2/...
p4 submit
person raven    schedule 13.11.2012
comment
Вам нужно сначала определить Depot-B. Вы можете сделать это с помощью команды p4 depot. Склады могут иметь отдельное физическое хранилище на сервере, поэтому для них требуется краткое определение. - person randy-wandisco; 13.11.2012
comment
@ p4-randall: Спасибо, я изменил свой ответ. Думаю, депо немного особенное. - person raven; 13.11.2012

Вот что я бы сделал (вкратце): если вы откроете сеанс P4V и выберете вкладку отправленных списков изменений, вы можете отфильтровать этот набор, чтобы отобразить только изменения, относящиеся к разделу, который вы хотите переместить. Это набор изменений, который вы скопируете на новом складе (или даже на сервере), который вы хотите заполнить. Идея состоит в том, что вы распаковываете архивные файлы с одной стороны и таким же образом сворачиваете их в месте назначения. Таким образом, процесс просто (1) синхронизируется с первым списком изменений, (2) интегрирует этот набор в новое место, (3) проверяет, что установлен, и (4) переходит к следующему списку изменений. Очевидно, это можно написать в сценарии. В настоящее время я работаю над сценарием на Python, но подойдет любой достойный язык сценариев с библиотеками функций Perforce. Пара сложностей: списки изменений будут последовательно совпадать с оригиналами, но исходное время не будет - они будут «текущими». И, конечно, если есть метки, вам нужно будет отобразить их в новом месте, если вы хотите, чтобы они были сохранены.

person bluecap    schedule 07.11.2014

Я не думаю, что дополнительные склады сильно повышают безопасность. Сценарии с несколькими депо в первую очередь возникают в очень большой установке.

Основным преимуществом дополнительных хранилищ является то, что вы можете получить больший контроль над структурой дискового пространства вашего сервера, например, если ваш репозиторий слишком велик для размещения в одной файловой системе, и вам необходимо расширить его для использования нескольких файловых систем. Второстепенная причина для создания дополнительных складов - наличие складов специализированных типов; например, если вы хотите создать хранилище потоков для использования функции Perforce Streams.

Для сценария, подобного тому, который вы описываете, размещение всех ваших файлов в хранилище A в обозримом будущем, вероятно, будет приемлемым.

person Bryan Pendleton    schedule 12.11.2012
comment
Брайан Пендлтон, спасибо за понимание. Однако я хотел бы знать, как это делается на самом деле для будущих нужд. - person yarun can; 12.11.2012