2009-10-14 2 views
1

Я новичок в Perforce. Кажется, что на нашем текущем Сервере есть некорректная конфигурация, так как любой может изменить параметры рабочей области другого пользователя.Как запретить людям редактировать параметры рабочего пространства других в Perforce?

Кто-нибудь знает, как быстро исправить эту проблему?

Спасибо,

Томас

ответ

5

Если вы установите параметр «заблокирован» в рабочей области, рабочее пространство может быть изменено только его владельцем (или пользователем с «администратором» или более высоким уровнем доступа). Это также не позволит другим пользователям использовать или удалять это рабочее пространство.

5

Я не знаю способ легко и быстро исправить эту проблему.

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

Если это проблема, когда владение рабочим пространством неясно и что вызывает проблемы, это решит ваши проблемы. Если это ситуация, когда коллеги игнорируют право собственности и намеренно вносят изменения, у вас, вероятно, возникнут другие проблемы.

2

Неправильное исправление, но вы можете отслеживать изменения, внесенные в спецификации клиента, путем внедрения «Spec Depot». См. KB article here.

Должен признаться до того, как вы прочитали свой вопрос. Я даже не подозревал, что вы можете изменить спецификацию клиента другого пользователя без прав администратора. За 9 лет использования Perforce я никогда не сталкивался с этим как реальная проблема для людей.

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

0

Блокировка рабочего пространства - путь, спасибо Хит.

Я работал на небольшой PERL скрипт, чтобы заблокировать все существующие рабочие области:

#******************************************************************************* 
# Module: LockClients.pl 
# Purpose: A perl script using the CLI to lock all clients on a server 
# 

# Debug Flag: 
$DEBUG_FLAG = 1 ; # 1 for TRUE, 0 for FALSE 

# Get the list of clients on the server: 
@list = `p4 clients`; 

foreach $client (@list) { 
    # Get client name: 
    $clientname = (split//,$client)[1]; 
    if ($DEBUG_FLAG) { print ("Client name: $clientname \n"); } 
    # Prepare temporary file name (will contain the new config spec of the client): 
    $filename = sprintf("tmp_%s.txt",$clientname); 
    if ($DEBUG_FLAG) { print ("Temporary file: $filename \n"); } 
    # Get client spec: 
    @clientspec = `p4 client -o $clientname`; 
    # Write client spec to file: 
    open (VIRTUAL , ">$filename") || die "ERROR: Could not create $filename \n"; 
    foreach $line (@clientspec) { 
     if ($line =~ m/^Options:.*$/m){ 
      if ($DEBUG_FLAG) { print ("Line before substitution: $line"); } 
      $line =~ s/unlocked/locked/; 
      if ($DEBUG_FLAG) { print ("Line after substitution: $line"); } 
     } 
    print VIRTUAL $line; 
    } 
    close (VIRTUAL); 
    # Import new config spec in client: 
    `p4 client -i -f < $filename`; 
    if ($DEBUG_FLAG) { print ("Workspace $clientname locked !\n\n"); } 
}  
exit 0; 

я теперь будет работать, чтобы попытаться принудить вариант блокировки с триггером после рабочей области создается или редактируется. :)

Thomas

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