Создает сборки с Perforce? - PullRequest
       26

Создает сборки с Perforce?

1 голос
/ 04 февраля 2010

При создании частичных сборок для проекта я обычно отличаю последнюю версию папки проекта от производственной метки. Затем я должен вручную добавить все измененные / добавленные файлы во временную папку, прежде чем копировать их в рабочую папку.

Есть ли способ автоматизировать это?

Например, если нам нужно обновить веб-сайт клиента, мы хотим отправлять только измененные файлы. В настоящее время, чтобы определить разницу между текущим производственным веб-сайтом и тем, что у нас есть в системе контроля версий, мы сопоставляем две разные метки в папке веб-сайта. Затем мы создаем сборку только с теми файлами, которые были изменены.

Ответы [ 5 ]

1 голос
/ 13 февраля 2010

@ Кевин

Возможно, вы можете пропустить синтаксический анализ "p4 sync //depot/folder...@labelv2", выполнив следующее (* nix версия):

p4 sync //depot/folder...@labelv1

# delete all files on client - but don't tell perforce about it
rm -r <root of your client> 

p4 sync //depot/folder...@labelv2

Теперь у клиента должны быть только файлы, которые изменились между labelv1 и labelv2. Вы можете просто скопировать все файлы с клиента в папку вашего развертывания. Команда ниже дает вам список файлов:

find <root of your client> -type f
0 голосов
/ 05 февраля 2010

Если вы храните продукты для сборки в депо, то, я думаю, вам следует сделать следующее (из прекрасной книги «Практическое исполнение»):

Найдите файлы, которые были изменены, и откройте их для редактирования:

p4 diff -se | p4 -x- edit

Найдите файлы, которые были удалены, и откройте их для удаления:

p4 diff -sd | p4 -x- удалить

Найдите новые файлы и откройте их для добавления. Предполагая, что вы находитесь в каталоге верхнего уровня вашего рабочего пространства:

найти. тип F | p4 -x- добавить -f

Сделав это, вы можете отправить ожидающий изменения список или продолжить работу с открытыми файлами.

Пожалуйста, пингуйте меня, если вам нужны дополнительные объяснения.

0 голосов
/ 05 февраля 2010

Используйте один из API-интерфейсов сценариев, доступных для загрузки , для автоматизации процесса.

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

0 голосов
/ 05 февраля 2010

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

Предполагая, что вам нужен клиент Perforce, содержащий файлы, которые вы хотите иметь в работе, а затем используйте инструмент, такой как rsync, для перемещения их на веб-сервер. Ваш скрипт в основном содержит «p4 sync && rsync здесь». Rsync будет проходить через процесс выяснения того, что отличается, и внесения изменений.

Если это не так, вам нужно быть более точным в том, что вы имеете в виду.

0 голосов
/ 04 февраля 2010

Я не уверен, правильно ли я понимаю, что вы пытаетесь сделать, но diffing folder and then manually adding changed/added files точно звучит как интеграция (или слияние в сленге других систем контроля версий).

p4 help integrate в командной строке поможет, а также (возможно) эта статья в Perforce KB .

...