Неизвестное имя поля ‘SubmitOptions’ после принудительного обновления

#perforce #perforce-client-spec

#принудительно #принудительно-спецификация клиента

Вопрос:

Я только что перенес / обновил установку Windows 2003 Perforce 2009.2 на Windows 2008 R2 2010.2 и отметил, что после обновления единственной проблемой, которая, похоже, присутствует, является невозможность создавать / редактировать рабочие области из пользовательского интерфейса, поскольку он пытается установить параметр SubmitOptions и выдает

 Error at line 0 of field 'SubmitOptions' in client specification.
Unknown field name 'SubmitOptions'.
  

Да, я могу создавать / редактировать спецификацию клиента с помощью p4 client , пока я не пытаюсь включить SubmitOptions параметр.

Насколько я могу судить, все аспекты обновления прошли успешно (замена p4d, p4d -xu обновление базы данных, лицензия на месте и т.д.)

Есть идеи? Не нашел ни малейшего упоминания об этой проблеме в Интернете (и мой Google-fu довольно хорош …)

Обновления: Вывод из p4 spec -o client (я удалил все комментарии)

 # A Perforce Spec Specification.
Fields:
    301 Client word 32 key
    302 Update date 20 always
    303 Access date 20 always
    304 Owner word 32 optional
    305 Host word 32 optional
    306 Description text 128 optional
    307 Root line 64 required
    308 AltRoots llist 64 optional
    309 Options line 64 optional
    310 LineEnd select 12 optional
    311 View wlist 64 optional

Words:
    View 2

Formats:
    Client 1 normal
    Update 2 L
    Access 4 L
    Owner 3 R
    Host 5 R
    LineEnd 0 L

Values:
    Options noallwrite/allwrite,noclobber/clobber,nocompress/compress,unlocked/locked,nomodtime/modtime,normdir/rmdir
    LineEnd local/unix/mac/win/share
  

Комментарии:

1. Что говорит ‘p4 spec -o client’?

2. Кроме того, какой пользовательский интерфейс вы используете (p4v или p4win) и какую версию?

3. @Брайан, похоже, это ключевой момент — я создаю ответ, основанный на том, что я узнал в эти выходные, и хотя отправка некоторых изменений решила проблему, я все еще толком не знаю, как / почему / когда пропали параметры отправки. Последнее обновление было в 2009 году в какой-то момент (до того, как я управлял сервером), но тогда их там тоже не было.

4. @jhwist, наши разработчики разделены между двумя клиентами — и, насколько я слышал, p4win разрешил им установить revertunchanged . p4v (2010.1) — это то, что использовало большинство других, и выпадающий список SubmitOptions даже не появлялся до обновления. Как оказалось, после обновления, но при отправке произошел бы сбой.

Ответ №1:

В конце концов, отправка следующих дополнений к спецификации клиента решила проблему:

 Fields:
    313 SubmitOptions select 25 optional
    314 Stream line 64 optional
Formats:
    SubmitOptions 0 L
Values:
    SubmitOptions submitunchanged/submitunchanged reopen/revertunchanged/revertunchanged reopen/leaveunchanged/leaveunchanged reopen
  

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

 p4 configure set spec.custom=1

p4 spec -i client < fixedp4clientspec.txt
  

Первая команда потребовалась, потому что я получил ошибку "Custom spec of type 'client' is not allowed. Set spec.custom=1 to override." , когда попытался обновить спецификацию без нее. И я на самом деле не знаю, что строка 314 была необходима для решения этой проблемы, но это было предложено при сравнении со спецификацией, которая работала в другом месте.

Спасибо за помощь!

Комментарии:

1. Можете ли вы обратиться в службу поддержки Perforce, чтобы уточнить, что делает эта строка 314?

2. @jhwist, интересно, связано ли это с потоками, которые волей-неволей будут представлены в следующей версии. blog.perforce.com/blog/?p=4615

3. @jhwist, мне ответили из службы поддержки Perforce, что они «почти уверены, что это связано с предварительным тестированием функции [Потоков]». Довольно расплывчато, и определенно нет общедоступной документации по этой неподдерживаемой команде ( p4 spec ). Надеюсь, для вас этого достаточно, поскольку это то, что я получил!

4. Похоже, у вас есть пользовательская спецификация клиента. Вероятно, вам это не нужно. Я полагаю, вы можете удалить его с помощью ‘p4 spec -d client’. Затем вы получите спецификацию клиента по умолчанию, в которой будут все поля, соответствующие версии вашего сервера.