Можете ли вы отобразить файл или каталог несколько раз подряд? - PullRequest
7 голосов
/ 27 июня 2011

Я хотел бы знать, могу ли я сопоставить файл или каталог с несколькими локальными копиями с помощью Perforce.

Я знаю, что P4V позволяет мне это делать, но я столкнулся с очень странным поведением клиента и подозреваю, что это не работает.

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

Ответы [ 5 ]

5 голосов
/ 28 июня 2011

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

Ветви не могут быть "большими", потому что Perforce будет делать теневые копии, пока вы действительно не внесете изменения. В общем, вы должны разветвлять все дерево Тогда у вас может быть рабочее пространство для каждой ветви (предпочтительно) или одно рабочее пространство, которое отображает все (все еще выполнимо).

4 голосов
/ 27 июня 2011

(извините - только что увидел, что вы не хотите переключать рабочие пространства ... не могли бы вы пояснить, почему вы думаете, что это занимает слишком много времени? В p4v вы можете установить «избранные соединения» в меню соединений, которое делаетпереключение оснастки. Я полагаю, что горячие клавиши могут сделать это быстрее. У вас также есть возможность открыть экземпляры mutliple p4v).

Можете ли вы просто создать новое рабочее пространство для сопоставления за вас?Если вы не собираетесь изменять файлы, кажется, самый простой способ.Просто создайте новое рабочее пространство и затем примените все необходимые изменения внутри отображения рабочего пространства.Пример:

//depot/src/... //my-test-workspace/src_from_depot/...
//depot/doc/... //my-test-workspace/doc_from_depot/...

Это поместит папки src и doc в папки src_from_depot и doc_from_depot в корне нашего рабочего пространства.Я бы просто поместил корень рабочей области в другое место, чем вы обычно работаете, - тогда вы получите копию, изолированную от той, где вы обычно работаете, со структурой каталогов, которая изменилась в соответствии с вашими потребностями.

2 голосов
/ 28 июня 2011

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

В следующем выпуске будет проще выполнить переключение между филиалами на месте.Другими словами, вы можете поддерживать одно рабочее пространство и переключать его с ветки на ветку во время работы.Команда p4 sync добавляет новый параметр, чтобы обновлять только те файлы в рабочей области, которые на самом деле отличаются.Таким образом, даже если ваши ветки огромные (> 500 тыс. Файлов,> 30 ГБ данных), если между двумя ветвями различаются только 10 файлов, перемещение рабочей области из одной ветки в другую приведет к обновлению только этих 10 файлов.Это должно сэкономить много времени.

Я не уверен, поможет ли это или нет, но я подумал, что стоит упомянуть.

1 голос
/ 09 ноября 2018

Preforce поддерживает это сейчас.

Сопоставление одного пути депо с несколькими местоположениями в рабочей области.

https://www.perforce.com/perforce/doc.current/manuals/p4guide/Content/P4Guide/configuration.workspace_view.one-to-many.html?TocPath=Configure%20clients%7CConfigure%20workspace%20views%7C_____8

Чтобы включить функцию сопоставления «один ко многим», добавьте «&» к строке сопоставления для каждого дополнительного местоположения клиента, которому вы хотите сопоставить:

Вид:

//Acme/images/logo.png  //bruno_ws/products/images/logo.png
&//Acme/images/logo.png  //bruno_ws/documentation/images/logo.png
&//Acme/images/logo.png  //bruno_ws/support/images/logo.png

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

Важно Все строки сопоставления с префиксом & доступны только для чтения, поэтому в приведенном выше примере // bruno_ws / Documentation и // bruno_ws / support доступны только для чтения.

1 голос
/ 05 ноября 2012

Я тоже столкнулся с этой проблемой. У меня есть файлы / каталоги, которые являются общими для нескольких ветвей. Общие файлы / каталоги должны присутствовать в определенной структуре в каждой ветви для компиляции.

Решение, которое работало для меня, заключалось в размещении общих файлов / каталогов в месте, отдельном от веток. При этом сохраняется соответствие требованиям 1: 1.

Затем символически свяжите общий файл / каталог с каждой веткой для целей компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...