2009-03-24 4 views
6

В настоящее время после создания ветви релиза, но когда у нас есть время, прежде чем мы выпустим, я иногда открываю всю ветку для редактирования, а затем блокирую все файлы, чтобы никто не мог что-либо изменять во время периода «замораживания кода» в релиз.Блокировка ветви в perforce?

Есть ли лучший способ? Выполнение этого моего текущего способа кажется, возможно, неправильным использованием функции блокировки, есть ли лучший способ удержать кого-то от проверки кода без использования ветвей. Я, хотя из P4, защищаю, но я не администратор этого экземпляра perforce, а также работа с файлом защиты по потенциальным 100-м строкам тоже громоздка.

Любые идеи?

ответ

0

Защита P4, вероятно, является правильным ответом для большинства людей, как объяснено в других ответах.

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

12

Я делаю это все время как инженер-строитель. Я использую «p4 защиты», чтобы ограничить доступ каждого к деревьям только для чтения: (. При условии, что группа «все» определено правильно)

super group everyone * -//depot/project/branch/... 
read group everyone * //depot/project/branch/... 
super user me * //depot/project/branch/... 

Первая строка закрывает все права доступа для всех пользователей филиала

Вторая строка заново устанавливает разрешения на чтение для всех.

Последняя строка заново устанавливает все разрешения только для меня.

+0

Нужно ли быть администратором perforce для этого? Кроме того, есть только один файл защиты для всего склада вправо, не становится ли он громоздким? Опечатка и все депо не будут работать правильно? Вот причины, по которым я пытался найти альтернативу защите, но, тем не менее, если это единственный способ, я пойду с этим –

+1

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

2

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

Вы можете защитить любой уровень детализации, который вам нравится, так что он не громоздкий. Также обратите внимание, что версия сервера 2008.1 имеет новую функцию защиты, которая позволяет вам указать, что вы можете сделать несколько иначе. Изменить примечание:

#152278 ** 
    'p4 protect' now allows specification of permission 'rights'. 
    Previously, 'p4 protect' only allowed using permission levels 
    which include the specified access (ie 'read') and also all 
    of its lesser permissions (ie 'read' = 'read' + 'list'). 
    Permission rights make it possible to deny individual rights 
    without having to re-grant lesser rights. The new 
    permission rights are '=read', '=branch', '=open', 
    and '=write'. This functionality was previously undocumented, 
    and is now fully supported for 2008.1 

Если у вас действительно есть проблема с того, чтобы быть администратором, чтобы заблокировать & разблокировать, то вы должны взглянуть на «владельца группы» функция введена в 2007.3. Это позволит не-суперпользователю иметь возможность добавлять & удалить людей из группы. Поэтому объедините это с таблицей защиты. То есть получить администратор сайта для настройки таблицы защиты и ограничить права группы с именем «Rel 1.0 Authorized» и сделать вас владельцем группы. Затем вы можете добавлять и удалять пользователей (или подгруппы) из этой группы для контроля доступа.

Опция триггера - это возможность, но вам все равно нужно быть администратором, чтобы настроить триггер в первую очередь. Вы также можете повлиять на производительность всех представлений, на что можно обратить внимание. Но основная проблема с триггерами заключается в том, что вы будете использовать их для эмуляции встроенной функции, предназначенной для этой цели, т. Е. Таблицы защиты. И, если вы хотите быть в безопасности, вам все равно нужно найти способ предотвратить кого-либо другого, изменяющего ссылочный файл. Кажется, очень много работы по эмулированию существующей функции.

2

Как небольшое дополнение к одному из других ответов. Сначала настройте группу «все», в которой есть все пользователи.Затем добавьте в p4 защиты

write group everyone * -//depot/project/1.0/... 
read group everyone * //depot/project/1.0/... 
write group 1.0 * //depot/project/1.0/... 

Это позволит создать группу «1.0», в которую вы можете добавлять пользователей, которые разрешен доступ на запись.

Если вы используете сервер 2008.1, вы можете это сделать.

=write group everyone * -//depot/project/1.0/... 
write group 1.0 * //depot/project/1.0/... 

В первой строке удаляется только доступ на запись (не читается и список) из каждой группы.

2

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

Вы можете опционально ограничить поток, который может проверить только владелец потока (и вы можете заблокировать поток, чтобы никто, кроме владельца, не мог редактировать его свойства). См. http://www.perforce.com/perforce/doc.current/manuals/p4guide/chapter.codelines.html#codelines.streams

Смежные вопросы