Perforce Schema Documentation

Release: 2010.1

Contents

Alphabetical List of Tables

Filename Lock Order Vers. Description
db.archive 16 1 Archive information for each revision that is lazy-copied.
db.archmap 17 0 Mappings entries for lazy-copies.
db.boddate 38 0 Job data for date-valued attributes
db.bodtext 39 1 Job data for job attributes.
db.change 29 1 Changelists
db.changex 30 1 Subset of db.change
db.counters 1 1 Perforce counters table
db.depot 5 1 Lists depots known to Perforce
db.desc 31 0 Change descriptions
db.domain 6 5 Domains: depots, clients, labels, branches and typemap
db.fix 36 1 Fix records - indexed by job
db.fixrev 37 1 Fix records - indexed by change
db.group 4 7 Lists groups known to Perforce
db.have 13 2 Contains the 'have-list' for all clients
db.integ 9 0 Integration records: obsolete since 2001.1
db.integed 10 0 Permanent integration records
db.ixdate 40 0 Indexing data for date-valued job attributes.
db.ixtext 41 0 Indexing data for job attributes.
db.job 33 0 Job records
db.jobdesc 35 0 Obsolete in 98.2
db.jobpend 34 0 Obsolete in 98.2
db.label 14 0 Lists the revisions of files in labels.
db.locks 15 2 Locked/Unlocked files
db.logger 2 1 Support for 'p4 logger' command. Logs any changes to changelists and jobs
db.message 43 0 System messages
db.monitor 44 1 System messages
db.protect 42 4 The protections table
db.resolve 11 0 Pending integration records
db.resolvex 12 0 Pending integration records
db.rev 18 8 Revision records
db.revcx 19 0 Secondary index of db.rev
db.revdx 20 7 Revision records for revisions deleted at the head revision.
db.revhx 21 7 Revision records for revisions NOT deleted at the head revision.
db.review 8 1 Contains user's review mappings
db.revpx 22 7 Pending revision records.
db.revsh 24 7 Revision records for shelved files.
db.revsx 23 7 Revision records for spec depot files.
db.traits 27 0 Attributes associated with file revisions
db.trigger 28 2 Trigger specifications
db.user 3 3 Lists users known to Perforce
db.view 7 1 Contains views for domains
db.working 25 9 Records for work in progress
db.workingx 26 9 Records for shelved open files

Tables in Locking order

To avoid the possibility of deadlock, the Perforce Server always locks its tables in a defined order. The section below lists the tables in the order in which they are locked.

Lock Order Filename Vers. Description
1 db.counters 1 Perforce counters table
2 db.logger 1 Support for 'p4 logger' command. Logs any changes to changelists and jobs
3 db.user 3 Lists users known to Perforce
4 db.group 7 Lists groups known to Perforce
5 db.depot 1 Lists depots known to Perforce
6 db.domain 5 Domains: depots, clients, labels, branches and typemap
7 db.view 1 Contains views for domains
8 db.review 1 Contains user's review mappings
9 db.integ 0 Integration records: obsolete since 2001.1
10 db.integed 0 Permanent integration records
11 db.resolve 0 Pending integration records
12 db.resolvex 0 Pending integration records
13 db.have 2 Contains the 'have-list' for all clients
14 db.label 0 Lists the revisions of files in labels.
15 db.locks 2 Locked/Unlocked files
16 db.archive 1 Archive information for each revision that is lazy-copied.
17 db.archmap 0 Mappings entries for lazy-copies.
18 db.rev 8 Revision records
19 db.revcx 0 Secondary index of db.rev
20 db.revdx 7 Revision records for revisions deleted at the head revision.
21 db.revhx 7 Revision records for revisions NOT deleted at the head revision.
22 db.revpx 7 Pending revision records.
23 db.revsx 7 Revision records for spec depot files.
24 db.revsh 7 Revision records for shelved files.
25 db.working 9 Records for work in progress
26 db.workingx 9 Records for shelved open files
27 db.traits 0 Attributes associated with file revisions
28 db.trigger 2 Trigger specifications
29 db.change 1 Changelists
30 db.changex 1 Subset of db.change
31 db.desc 0 Change descriptions
33 db.job 0 Job records
34 db.jobpend 0 Obsolete in 98.2
35 db.jobdesc 0 Obsolete in 98.2
36 db.fix 1 Fix records - indexed by job
37 db.fixrev 1 Fix records - indexed by change
38 db.boddate 0 Job data for date-valued attributes
39 db.bodtext 1 Job data for job attributes.
40 db.ixdate 0 Indexing data for date-valued job attributes.
41 db.ixtext 0 Indexing data for job attributes.
42 db.protect 4 The protections table
43 db.message 0 System messages
44 db.monitor 1 System messages

Upgrades

The following table lists the upgrade operations and shows the Perforce release in which each upgrade was introduced.

The 2010.1 release has 21 upgrades.
Upgrade Release Description Notes
1 2001.1 Split db.integ into db.integed and db.resolve
2 2001.1 Splt db.have into db.have and db.label
3 2002.1 Split db.change into db.change and db.changex
4 2002.2 Upgrade tempobj filetype in db.rev
5 2002.2 Upgrade tempobj filetype in db.working
6 2003.1 Initialize default depot
7 2003.2 Upgrade db.user
8 2005.1 Build db.revhx (headrev) table
9 2005.1 Rebuild db.locks from db.working
10 2005.1 Build lazy-copy index (db.archive) Removed in 2006.2
11 2005.2 Build db.revdx (delrev) table
12 2005.2 Build haveMap from db.have/db.working Moved to 16 in 2007.3
13 2005.2 Move spec depot entries into db.revsx
14 2006.2 Build db.archmap (lazy-copy map) table Moved to 17 in 2007.3
15 2006.2 Remove (obsolete) db.archive table Moved to 18 in 2007.3
16 2007.3 Build/Rebuild haveMap from db.have/db.working Rewritten in 2007.3
17 2007.3 Build/Rebuild db.archmap (lazy-copy map) table Rewritten in 2007.3
18 2007.3 Remove (obsolete) db.archive table Moved from 15 in 2007.3
19 2008.1 Build db.change common path
20 2009.2 Move db.boddate/db.ixdate into db.bodtext/db.ixtext
21 2009.2 Remove db.boddate/db.ixdate

Table Details

db.archive - Archive information for each revision that is lazy-copied.

Indexed on: lbrFile, lbrRev, depotFile, depotRev
Name Type Description
lbrFile File Specifies the location in the librarian's archives where the revision may be found
lbrRev String Revision in the librarian's archives
depotFile File Name of the file in the depot
depotRev Rev Name of the file in the depot
lbrType FileType File type for librarian's purposes
Note: Obsoleted in 2006.2.

db.archmap - Mappings entries for lazy-copies.

Indexed on: lbrFile, depotFile
Name Type Description
lbrFile File Paths in the librarian namespace that recieve lazy copies.
depotFile File Paths in the depot namespace that provide lazy copies.
Note: Supercedes db.archive

db.boddate - Job data for date-valued attributes

Indexed on: key, attr
Name Type Description
key String The job to which this attribute belongs
attr Int The attribute number (from the jobspec) of this attribute
date Date The date value itself
Note: Obsoleted in 2009.2

db.bodtext - Job data for job attributes.

Indexed on: key, attr
Name Type Description
key String The job to which this attribute belongs
attr Int The attribute number (from the jobspec) of this attribute
isBulk Int Indicates whether (1), or not (0) the field is a bulk text field that should not be indexed.
text Text The attribute value

db.change - Changelists

Indexed on: change
Name Type Description
change Change The change number
descKey Change The description key. Normally the same as 'change', but may differ if a changelist was renumbered on submission.
client Domain The client from which the change originates
user User The user who owns the change
date Date Date and time the changelist was submitted
status ChangeStatus Status of the change
description DescShort Short description of the change.
root Mapping Common path for all files in the changelist

db.changex - Subset of db.change

Indexed on: change
Name Type Description
change Change The change number
descKey Change The description key. Normally the same as 'change', but may differ if a changelist was renumbered on submission.
client Domain The client from which the change originates
user User The user who owns the change
date Date Date and time the changelist was submitted
status ChangeStatus Status of the change
description DescShort Short description of the change.
root Mapping Common path for all files in the changelist
Note: contains records for pending changelists only.

db.counters - Perforce counters table

Indexed on: name
Name Type Description
name Counter Counter name
value Value Counter value

db.depot - Lists depots known to Perforce

Indexed on: name
Name Type Description
name Domain Depot name
type DepotType Type of depot
extra Text For remote depots, the P4PORT address of the remote server. For spec depots, the field contains a suffix to append to the filename.
map Text The depot's map (path translation information). For local depots, this will be a path relative to the root directory. For remote depots, this will be specified in terms of the remote server's namespace.

db.desc - Change descriptions

Indexed on: descKey
Name Type Description
descKey Change Original number of the change to which this description applies. This may differ from the final change number if the change is renumbered on submission.
description Text The change description itself

db.domain - Domains: depots, clients, labels, branches and typemap

Indexed on: name
Name Type Description
name Domain Domain name
type DomainType Type of domain
extra Text Formerly "host". Associated host or, for labels, revision number.
mount Text The client root
mount2 Text Alternate client root
mount3 Text Alternate client root
owner User Name of user who owns the domain.
updateDate Date Date of last update to domain specification.
accessDate Date Date of last access to domain specification.
options DomainOpts Options for client, label, and branch domains.
description Text Description of domain.

db.fix - Fix records - indexed by job

Indexed on: job, change
Name Type Description
job String Job name
change Change Changelist number
date Date Date fix was recorded (may differ from date change was submitted).
status FixStatus Status of the job
client Domain The client where the fix originated
user User The user who fixed the job
See also:db.fixrev

db.fixrev - Fix records - indexed by change

Indexed on: change, job
Name Type Description
job String Job name
change Change Changelist number
date Date Date fix was recorded (may differ from date change was submitted).
status FixStatus Status of the job
client Domain The client where the fix originated
user User The user who fixed the job
See also:db.fix

db.group - Lists groups known to Perforce

Indexed on: user, group
Name Type Description
user User User name
group User Group name
type UserType Type of user in this group.
maxResults MaxResults MaxResults setting for the group.
maxScanRows MaxScanRows MaxScanRows setting for the group.
maxLockTime MaxLockTime MaxLockTime setting for the group.
timeout Int Length of time (in seconds) a login ticket remains valid.

db.have - Contains the 'have-list' for all clients

Indexed on: clientFile
Name Type Description
clientFile File The file in its location on the client
depotFile File The file in the depot
haveRev Rev The revision synced to the client
type FileType The filetype of the synced revision

db.integ - Integration records: obsolete since 2001.1

Indexed on: toFile, fromFile, startFromRev
Name Type Description
toFile File File to which integration is being performed (target).
fromFile File File from which integration is being performed (source).
startFromRev Rev Starting revision of fromFile
endFromRev Rev Ending revision of fromFile. If integrating from a single revision (not a revision range), the startFromRev and endFromRev fields will be identical.
toRev Rev Revision of toFile into which integration is being performed.
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete.
committed Int Flag: 0 for pending, 1 for committed.
resolved ResolvedStatus Resolution method: unresolved, resolved manually, or resolved as part of a branch or delete.
change Change Changelist associated with the integration.

db.integed - Permanent integration records

Indexed on: toFile, fromFile, startFromRev, endFromRev, startToRev, endToRev
Name Type Description
toFile File File to which integration is being performed (target).
fromFile File File from which integration is being performed (source).
startFromRev Rev Starting revision of fromFile
endFromRev Rev Ending revision of fromFile. If integrating from a single revision (not a revision range), the startFromRev and endFromRev fields will be identical.
startToRev Rev Start revision of toFile into which integration was performed.
endToRev Rev End revision of toFile into which integration was performed. Only varies from startToRev for reverse integration records.
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete.
change Change Changelist associated with the integration.
See also:db.resolve

db.ixdate - Indexing data for date-valued job attributes.

Indexed on: date, attr, value
Name Type Description
date Date Date value
attr Int The attribute number (from the jobspec) to which this date belongs
value String A job name
Note: Obsoleted in 2009.2
See also:db.ixtext

db.ixtext - Indexing data for job attributes.

Indexed on: word, attr, value
Name Type Description
word String The word being indexed
attr Int The attribute number (from the jobspec) to which this word belongs
value String A job name

db.job - Job records

Indexed on: job
Name Type Description
job String The job name
xuser User User name: defunct
xdate Date The date: defunct
xstatus JobStat Job status: defunct
description DescShort Short description
See also:db.bodtext

db.jobdesc - Obsolete in 98.2

Indexed on: job
Name Type Description
xjob String The job name
xdescription Text Jobdescription
See also:db.bodtext

db.jobpend - Obsolete in 98.2

Indexed on: user, job
Name Type Description
See also:db.bodtext

db.label - Lists the revisions of files in labels.

Indexed on: name, depotFile
Name Type Description
name Domain Name of the label
depotFile File File name
haveRev Rev The revision of the file in the label

db.locks - Locked/Unlocked files

Indexed on: depotFile, client
Name Type Description
depotFile File File in depot
client Domain Domain (client) in which file is open
user User User who presently has the file open
action Action Action file is open for: add, edit, delete, branch, integrate, or import
isLocked Int Flag: 0 for unlocked, 1 for locked
change Int Changelist in which the revision is open: 0 for the default changelist

db.logger - Support for 'p4 logger' command. Logs any changes to changelists and jobs

Indexed on: seq
Name Type Description
seq Int Sequence number of event
key String Either the word 'change' or the word 'job'
attr String The number of the change, or name of the job that was altered.

db.message - System messages

Indexed on: language, id
Name Type Description
language String The language for which this message applies
id Int The message number
message String The message text

db.monitor - System messages

Indexed on: id
Name Type Description
id Int Thread/process id
user User Username of the user running the command
function String The command being executed.
args String Arguments passed to the command
startDate Date The date and time the command started
runstate Int Flag: 0 for running, 1 for terminated
client Domain The client workspace
host Text The IP address of the client
prog Text The name (and version) of the client program

db.protect - The protections table

Indexed on: seq
Name Type Description
seq Int Sequence number: for ordering the protections table
isGroup Int Flag: 0 for a per-user setting, 1 for a per-group setting.
user UserWild User(s), or Group(s) for whom this record applies.
host DomainWild Domain(s) (IP addresses) for which this record applies.
perm Perm Permissions to be granted/revoked
mapFlag MapFlag Flag: Map the files in or out?
depotFile Mapping Files to be mapped in or out.

db.resolve - Pending integration records

Indexed on: toFile, fromFile, startFromRev
Name Type Description
toFile File File to which integration is being performed (target).
fromFile File File from which integration is being performed (source).
startFromRev Rev Starting revision of fromFile
endFromRev Rev Ending revision of fromFile. If integrating from a single revision (not a revision range), the startFromRev and endFromRev fields will be identical.
startToRev Rev Start revision of toFile into which integration was performed.
endToRev Rev End revision of toFile into which integration was performed. Only varies from startToRev for reverse integration records.
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete.
resolved ResolvedStatus How the user performed the resolve.
baseFile File File used as the base for merging.
baseRev Rev Revision of baseFile used as the merge base.
See also:db.integed

db.resolvex - Pending integration records

Indexed on: toFile, fromFile, startFromRev
Name Type Description
toFile File File to which integration is being performed (target).
fromFile File File from which integration is being performed (source).
startFromRev Rev Starting revision of fromFile
endFromRev Rev Ending revision of fromFile. If integrating from a single revision (not a revision range), the startFromRev and endFromRev fields will be identical.
startToRev Rev Start revision of toFile into which integration was performed.
endToRev Rev End revision of toFile into which integration was performed. Only varies from startToRev for reverse integration records.
how IntegHow Integration method: variations on merge/branch/copy/ignore/delete.
resolved ResolvedStatus How the user performed the resolve.
baseFile File File used as the base for merging.
baseRev Rev Revision of baseFile used as the merge base.
See also:db.integed

db.rev - Revision records

Indexed on: depotFile, depotRev
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy Int Flag specifying whether or not the revision gets its content from another file (i.e. whether or not depotFile and lbrFile differ)
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.revcx - Secondary index of db.rev

Indexed on: change, depotFile
Name Type Description
change Change The changelist that created the revision
depotFile File The file name
depotRev Rev The revision number
action Action The action that created the revision

db.revdx - Revision records for revisions deleted at the head revision.

Indexed on: depotFile
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy Int Flag specifying whether or not the revision gets its content from another file (i.e. whether or not depotFile and lbrFile differ)
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.revhx - Revision records for revisions NOT deleted at the head revision.

Indexed on: depotFile
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy Int Flag specifying whether or not the revision gets its content from another file (i.e. whether or not depotFile and lbrFile differ)
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.review - Contains user's review mappings

Indexed on: user, seq
Name Type Description
user User A user name
seq Int Sequence number: used for ordering multi-line views
mapFlag MapFlag Type of mapping
depotFile Mapping The files to be reviewed
type Reviewer Type of reviewer

db.revpx - Pending revision records.

Indexed on: depotFile, depotRev
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy Int Flag specifying whether or not the revision gets its content from another file (i.e. whether or not depotFile and lbrFile differ)
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.
Note: Only populated during content trigger execution to allow triggers access to the revisions being submitted.

db.revsh - Revision records for shelved files.

Indexed on: depotFile,depotRev,type,action,change
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy Int Flag specifying whether or not the revision gets its content from another file (i.e. whether or not depotFile and lbrFile differ)
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.revsx - Revision records for spec depot files.

Indexed on: depotFile, depotRev
Name Type Description
depotFile File The file name
depotRev Rev The revision number
type FileType The file type of the revision
action Action The action that created the revision
change Change The changelist that created the revision
date Date The date/time the changelist that created the revision was submitted
modTime Date The timestamp on the file in the user's workspace when the revision was submitted.
digest Digest The MD5 digest of the revision.
size FileSize The size of the file in bytes
traitLot TraitLot Group of traits (attributes) associated with the revision.
lbrIsLazy Int Flag specifying whether or not the revision gets its content from another file (i.e. whether or not depotFile and lbrFile differ)
lbrFile File Filename for librarian's purposes. Specifies location in the archives where the file containing the revision may be found. Usually the same as depotFile, but differs in the case of branched/copied revisions.
lbrRev String The revision of lbrFile that contains the revision content.
lbrType FileType The file type of the librarian revision. Usually the same as type, but differs in the case of branched/copied revisions.

db.traits - Attributes associated with file revisions

Indexed on: traitLot, name
Name Type Description
traitLot Int Indicates a specific collection of traits (referred to externally as "attributes".)
name String Trait (attribute) name
type TraitType Type of trait
value Octet String The value

db.trigger - Trigger specifications

Indexed on: seq
Name Type Description
seq Int Sequence number: for ordering the trigger list
name String Name of the trigger
mapFlag MapFlag Type of mapping: specifies whether the trigger applies to the files or not.
depotFile Mapping The files to apply the trigger to
trigger Trigger Type of trigger
action Text Command to execute when trigger runs

db.user - Lists users known to Perforce

Indexed on: user
Name Type Description
user User The username
email Text The user's email address
jobView Text The user's job view
updateDate Date The date/time the user record was last updated
accessDate Date The date/time the user record was last used
fullName Text The user's full name
password Password The MD5 hash of the users (encrypted) password
strength Strength Measure of the strength of the user's password
ticket Password 'p4 login' ticket for this user
endDate Date Date/time the user's ticket expires

db.view - Contains views for domains

Indexed on: name, seq
Name Type Description
name Domain Domain name to which this view applies
seq Int Sequence number: for ordering multi-line views
mapFlag MapFlag Type of mapping
viewFile Mapping The right-hand-side of the view. For clients, this is the client-side, for labels it's the generated label view. For branches, it's the target side of the branch view.
depotFile Mapping The left-hand-side of the view - a mapping to file(s) in the depot.

db.working - Records for work in progress

Indexed on: clientFile
Name Type Description
clientFile File File on the client
depotFile File File in the depot
client Domain The client the file is opened on
user User The user who has the file opened
haveRev Rev Revision presently in user's client workspace. This is normally identical to workRev except for the case in which you've tried to submit a file where you no longer have the head revision. Perforce schedules the integrate (moves workRev to headRev, but doesn't change the haveRev, so that a p4 revert will return the file originally checked-out instead of the new head revision.
workRev Rev Working revision; this is identical to the haveRev except in the case described above.
isVirtual Int Flag: if 1, file was opened with "p4 integ -v".
type FileType File type
action Action What the user's doing with the file
change Change Associated changelist, or zero for the default changelist.
modTime Date Modification timestamp on the file in the user's workspace.
isLocked Int Flag: 0 for unlocked, 1 for locked.
digest Digest MD5 digest of working file.
size Int64 File size
traitLot int Group of traits associated with file revision.
tampered TamperCheck Flag indicating the tamper-state of the file in the workspace.
clntType FileType Type of the file in the client workspace.
mFile File Moved filename

db.workingx - Records for shelved open files

Indexed on: clientFile
Name Type Description
clientFile File File on the client
depotFile File File in the depot
client Domain The client the file is opened on
user User The user who has the file opened
haveRev Rev Revision presently in user's client workspace. This is normally identical to workRev except for the case in which you've tried to submit a file where you no longer have the head revision. Perforce schedules the integrate (moves workRev to headRev, but doesn't change the haveRev, so that a p4 revert will return the file originally checked-out instead of the new head revision.
workRev Rev Working revision; this is identical to the haveRev except in the case described above.
isVirtual Int Flag: if 1, file was opened with "p4 integ -v".
type FileType File type
action Action What the user's doing with the file
change Change Associated changelist, or zero for the default changelist.
modTime Date Modification timestamp on the file in the user's workspace.
isLocked Int Flag: 0 for unlocked, 1 for locked.
digest Digest MD5 digest of working file.
size Int64 File size
traitLot int Group of traits associated with file revision.
tampered TamperCheck Flag indicating the tamper-state of the file in the workspace.
clntType FileType Type of the file in the client workspace.
mFile File Moved filename

Datatypes

Action - Type of action

Revisions are produced by user actions. The Action type defines the available actions and their internal values.

Value Explanation
0 add; user adds a file
1 edit; user edits a file
2 delete; user deletes a file
3 branch; add via integration
4 integ; edit via integration
5 import; add via remote depot
6 purge; purged revision, no longer available
7 movefrom; move from another filename
8 moveto; move to another filename

Change - A changelist number

The number of a changelist. The number 0 represents the default pending changelist.

ChangeStatus - The status of a change

A integer value representing the status of a change

Value Explanation
0 pending
1 committed
2 shelved

Counter - A counter name

A string representing the counter name. Counter names must contain no spaces, contain no slashes, and be identifiers (cannot begin with a dash and cannot be all-numeric)

Date - A unix-style date and time

A date and time represented as the number of seconds since the Epoch: 01 January 1970 00:00:00 UTC. This is the same convention as that used on Unix platforms.

DepotType - Type of Depot

The type of a given depot

Value Explanation
0 A local depot
1 A remote depot
2 A spec depot

DescShort - A short string value

The first 31 characters of a Text string
See also:Text

Digest - An MD5 digest

A string containing an MD5 digest.

Domain - A domain name

A string representing the name of a depot, label, client, branch or typemap.

DomainOpts - Options for domains

A integer value representing the options for a domain

Bits used to store the domain options (Mask: 0x10EF)

Value Explanation
0x0001 modtime
0x0002 clobber
0x0004 allwrite
0x0008 locked
0x0020 compress
0x0040 rmdir
0x1000 indirect (obsolete since 2004.2)

Bits used to store the line termination settings. (Mask: 0x0710)

Value Explanation
0x0000 local
0x0010 unix (LF)
0x0200 mac (CR)
0x0300 win (CRLF)
0x0400 share (LF/CRLF)

Bits used to store the submit options (Mask: 0x7000)

Value Explanation
0x1000 Revert unchanged files
0x2000 Leave unchanged files
0x4000 Submit, and re-open unchanged files

DomainType - A domain type

A integer value representing the type of a domain

Value Explanation
98 (ASCII 'b') branch
99 (ASCII 'c') client
100 (ASCII 'd') depot
108 (ASCII 'l') label
116 (ASCII 't') typemap

DomainWild - A string with optional wildcards

A string that may contain wildcards - usually an IP address in the protections table.

File - A file name

A string representing the filename
See also:FileType

FileSize - A file size

A 64-bit integer used to store file sizes. The value -1 is used to represent unknown filesizes.

FileType - Type of file

The FileType is a bitmask specifying the type and modifiers of a revision from both the client and server points of view. The first 16 bits are used to store the storage type and modifiers, the next 16 bits are used to store the client access method and modifiers.

Bits used to store the server's storage type (Mask: 0x000F)

Value Explanation
0x0000 RCS
0x0001 Binary
0x0002 Tiny
0x0003 Compressed
0x0004 tempobj (deprecated since 2002.1)
0x0005 Detect type. Used internally when no type is given by the user.
0x0006 Comressed tempobj (deprecated since 2002.1)
0x0007 Binary access to compressed data. Used internally.
0x0008 Stored externally via librarian trigger

Bits used to store the modifiers to the server's storage type (Mask: 0x00F0)

Value Explanation
0x0010 99.2-style keyword expansion/contraction
0x0020 2000.1-style keyword expansion/contraction
0x0030 Any type of keyword expansion
0x0040 Exclusive open
0x0080 New tempobj (+S modifier)

Bits used to store the number of revisions to be stored for +Sn files. (Mask: 0x0F00)

Value Explanation
0x0000 +S1
0x0100 +S2
0x0200 +S3
0x0300 +S4
0x0400 +S5
0x0500 +S6
0x0600 +S7
0x0700 +S8
0x0800 +S9
0x0900 +S10
0x0A00 +S16
0x0B00 +S32
0x0C00 +S64
0x0D00 +S128
0x0E00 +S256
0x0F00 +S512

Bits used to store the file type from the client's point of view. (Mask: 0x10D0000)

Value Explanation
0x0000000 text
0x0010000 binary
0x0020000 executable bit set
0x0040000 symlink
0x0050000 resource fork
0x0080000 unicode
0x0090000 raw text (nocrlf - 99.1)
0x00C0000 apple data + resource file (since 2000.2)
0x00D0000 apple data + resource file (99.2)
0x1000000 Used to support filetype detection

Bits used to store the modifiers applied to the file on the client. (Mask: 0x720000)

Value Explanation
0x0100000 writable
0x0200000 modtime
0x0400000 uncompress on client

FixStatus - Status of a fixed job

This type is a wrapper around the 'Text' type that handles the pre-2000.1 "closed" default value.

Int - A 32-bit integer

A 32-bit integer

Int64 - A 64-bit integer

A 64-bit integer.

Int8 - An 8-bit integer

An 8-bit integer: an unsigned char

IntegHow - Integration methods

Specifies how an integration was performed. Integrations always come in pairs: the 'forward' and 'reverse' records. As a general rule, the forward records contain the word 'from'; and the reverse records contain the word 'into'.

Value Explanation
0 merge from: integration with other changes
1 merge into: reverse merge
2 branch from: integration was branch of file
3 branch into: reverse branch
4 copy from: integration took source file whole
5 copy into: reverse take
6 ignored: integration ignored source changes
7 ignored by: reverse copy
8 delete from: integration of delete
9 delete into: reverse delete
10 edit into: reverse of integration downgraded to edit
11 add into: reverse of branch downgraded to add
12 edit from; merge that the user edited
13 add from; branch downgraded to add
14 moved into; file was renamed
15 moved from: reverse of renamed file
Note: All integration records should have a corresponding reverse record. The 'branch from' (2) and 'merge from' (0) records have corresponding "dirty" reverse records for cases where the target file took more than one change or was (re)opened for 'edit' or 'add'.

JobStat - Job status - defunct

Old (pre-98.2) job status values.

Value Explanation
0 open
1 closed
2 suspended

MapFlag - Types of mapping

Specifies how the files specified by a mapping should be treated

Value Explanation
0 mapped-in (the default)
1 mapped-out (mappings that start with '-')
2 overlay (mappings that start with '+')
3 haveMap (mappings that start with '$'). Used internally only

Mapping - A string representing a mapping

A Mapping is essentially a file name that may contain wildcards

MaxLockTime - Maximum number of milliseconds to hold locks

The number of milliseconds for which a command may hold locks. Commands that take longer than this time period will abort. The value 0 means 'unlimited'.

MaxResults - Maximum number of results permitted

The number of results that commands run by the restricted user are permitted to return. The value 0 means 'unlimited'.

MaxScanRows - Maximum number of records scanned

The maximum number of records that the server may read on behalf of the restricted user. The value 0 means 'unlimited'.

Octet String - Encoded hex string

A variable length encoded hex string. The first octet stores the length of the string.

Password - The MD5 hash of a password

The MD5 hash of an encrypted password.

Perm - Bitmask of permissions

A bitmask of granted permissions

Bits used to store granted permissions (Mask: 0x00FF)

Value Explanation
0x0001 Grants list access
0x0002 Grants read access
0x0004 Grants ability to branch/integ from
0x0008 Grants open access
0x0010 Grants write access
0x0020 Grants review access
0x0080 Grants admin access
0x0040 Grants super-user access

ResolvedStatus - Resolve methods

Specifies how the user resolved merge operations.

Value Explanation
0 Not yet resolved
1 Resolved manually
2 Resolved automatically as part of a branch
3 Resolved automatically as part of a delete
4 Resolved automatically as part of a move

Rev - A revision number

The positive integer number of a specific revision of a file. The number 0 represents '#none'.

Reviewer - Type of reviewer

The type of reviewer. Currently there is only one type of reviewer and 0 is the only valid value.

Strength - Strength check of a password

Whether or not a user's password has been tested for strength.

Value Explanation
0 Strength unknown
1 Password is strong
2 Password is not strong

String - A string up to 1024 characters long

A string up to 1024 characters in length. Depending on the context in which the string is used, restrictions may apply. Strings are often used as key fields in the schema.
  • Cannot be empty
  • Cannot consist solely of a dash (-)
  • Cannot be all-numeric
  • Cannot contain non-printable characters
  • Spaces are replaced with underscores ( _ )
  • Revision characters (# and @) are prohibited
  • Slashes (/) are prohibited
  • Wildcards (... and *) are prohibited

TamperCheck - Tamper-state of workspace file

Indicates the tamper-state of a file in a workspace. This is used to decide whether or not to check the file, and if checked, to hold the result.

Value Explanation
0 Do not check for tampering
1 Check for tampering
2 Tamper-check failed

Text - A string value

A text string value - used to hold longer blocks of text.

TraitLot - The id of a group of traits

An integer identifying a group of traits which may be shared by several revisions.

TraitType - A type of trait

The type of trait.

Value Explanation
0 special trait for reference counting
1 Binary trait
2 Binary trait that gets propagated

Trigger - A type of trigger

The type of a trigger.

Value Explanation
0 change-submit (formerly pre-submit triggers)
1 change-content
2 change-commit
3 form-in
4 form-out
5 form-save
6 form-delete
7 form-commit
8 auth-check
9 auth-set
10 fix-add
11 fix-delete
12 archive

User - A user or group name

The name of a Perforce user or group.
See also:String

UserType - The role of a user within a group

The role of a user (or group) within a group.

Bits used to store the role of a user in a group (Mask: 0x0007)

Value Explanation
0x0001 User is an ordinary user
0x0002 Group is a sub-group
0x0004 User is the owner of a group

UserWild - A user or group name with wildcards

A user/group name that may contain wildcards (*)
See also:User

Value - A number or a string

A number, stored in a string, or a string
Copyright 1999-2009, Perforce Software. All rights reserved.