Как написать эту спецификацию клиента спектакля?
Я хочу сопоставить каталог с различными локальными папками (например, AA/adir
а также BB/adir
) в то же время. Вот спецификация ниже, но она не работает хорошо.
Что-то не так?
// депо /adir/... //cws/build/AA/adir/... // депо /adir/... //cws/build/BB/adir/...
2 ответа
Во время работы существует строгое требование, чтобы между складом и рабочим пространством существовала взаимно-однозначная связь. Из документа:
Все представления создают взаимно-однозначное сопоставление между файлами в хранилище и файлами в рабочей области, ветви или метке клиента. Если несколько файлов сопоставления ссылаются на один и тот же файл (ы), более ранние сопоставления отменяются. Сопоставления, начинающиеся с дефиса (-), специально исключают любые файлы, соответствующие этому сопоставлению. В представлениях клиентов сопоставления, начинающиеся со знака плюс (+), перекрывают предыдущие сопоставления. (Наложение сопоставлений не применяется к представлениям ветвей или меток.)
так отображение как:
//depot/adir/... //cws/build/AA/adir/...
//depot/adir/... //cws/build/BB/adir/...
активирует только вторую строку (которая выигрывает конфликт).
Чтобы сделать то, что вы хотите, вам нужно использовать два разных клиента (рабочих пространства), каждый из которых имеет одну строку вашего примера.
Вы можете посмотреть на наложения и, возможно, обойти вашу проблему:
Наложение сопоставления используется для сопоставления файлов из более чем одного каталога хранилища в одно и то же место в рабочей области.
//depot/dir1/... //cws/build/...
+//depot/dir2/... //cws/build/...
В Perforce у вас может быть сопоставление "многие к одному", но вы не можете иметь сопоставление "один ко многим". Вы не можете синхронизировать один и тот же файл в 2 местах. вам нужно предоставить ему явный список того, что вы хотите синхронизировать. Что-то вроде этого:
//depot/adir/... //cws/build/AA/adir/...
+//depot/adir/exception.c //cws/build/BB/adir/exception.c