Search code examples
perforceperforce-client-spec

Unknown field name 'SubmitOptions' after Perforce upgrade


I just migrated/upgraded from a Windows 2003 Perforce 2009.2 installation to a Windows 2008 R2 2010.2 box and noted that after the upgrade, the only issue that seems to present is the inability to create/edit workspaces from the UI - because it tries to set the SubmitOptions parameter and throws

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

Yes, I'm able to create/edit client spec using p4 client, as long as I don't try to include the SubmitOptions parameter.

As far as I can tell, all aspects of the upgrade succeeded (p4d replacement, p4d -xu to upgrade the database, license in place, etc.)

Any ideas? Haven't found a whisper of this issue online (and my Google-fu is pretty good...)

Updates: Output from p4 spec -o client (I've removed all comments)

# 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

Solution

  • In the end, submitting the following additions to the client spec resolved the issue:

    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
    

    I added those to the previous values and submitted the changes using the combination of

    p4 configure set spec.custom=1
    
    p4 spec -i client < fixedp4clientspec.txt
    

    The first command was required because I received an error of "Custom spec of type 'client' is not allowed. Set spec.custom=1 to override." when I tried to update the spec without it. And I don't actually know that line 314 was needed to address this problem, but it was suggested when diffed against a spec that worked elsewhere.

    Thanks for the assistance!