выполнить запретить добавление в оверлей - PullRequest
1 голос
/ 22 сентября 2019

Пара вопросов по отображению наложения p4.

Если у вас есть оверлейное представление клиента:

  //depot/dir1/...  //ws/build/...
  +//depot/dir2/... //ws/build/...
  1. Можно ли запретить добавление файлов в //depot/dir2?

  2. Как определить, является ли цель команды p4 add //depot/dir1 или //depot/dir2?

1 Ответ

1 голос
/ 22 сентября 2019

Когда из-за наложения несколько путей депо сопоставляют один клиентский путь, по умолчанию для p4 add (в синтаксисе клиента) используется последнее сопоставление.Если вы указываете путь депо, этот путь используется:

C:\Perforce\test\depot>p4 where ...
//depot/dir1/... //classic/... c:\Perforce\test\depot\...
+//depot/dir2/... //classic/... c:\Perforce\test\depot\...

C:\Perforce\test\depot>p4 add -n foo
//depot/dir2/foo#1 - opened for add

C:\Perforce\test\depot>p4 add -n //depot/dir1/foo
//depot/dir1/foo#1 - opened for add

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

Если вы хотите указать в клиенте, что dir2 - это путь только для чтения, а вы не может добавлять файлы в него, для этого можно использовать ChangeView (поскольку все, что вы отображаете в ChangeView, автоматически становится доступным только для чтения):

C:\Perforce\test\depot>p4 client -o | tail -n3
ChangeView:
        //depot/dir2/...@now


C:\Perforce\test\depot>p4 add -n //depot/dir2/foo
//classic/foo - can't add file that is restricted by client's ChangeView mapping

C:\Perforce\test\depot>p4 add -n //depot/dir1/foo
//depot/dir1/foo#1 - opened for add

В этом примере Iя использую @now в качестве ревизии для ChangeView, потому что на самом деле я не хочу ограничивать версии;Я просто хочу, чтобы побочный эффект пути был ограничен только для чтения.

Другой способ сделать путь доступным только для чтения - это удалить разрешение write через p4 protect;это было бы лучшим решением, если вы хотите сделать эту политику глобальной для всех пользователей.

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