Home
Perforce 2006.2 P4 User's Guide
Contents
1. Revision 1238 1238 This automatic label refers only to those files submitted in changelist 1238 Perforce 2006 2 P4 User s Guide 79 Chapter 6 Codelines and Branching Example Referring to the first revision of every file over multiple changelists You can use revision specifiers other than changelist specifiers in this example Earl is referring to the first revision 1 of every file in a branch Depending on how the branch was populated these files could have been created through multiple changelists over a long period of time Label first2 2 Owner earl Description The first revision in the 2 2 branch Options unlocked View depot release jam 2 2 src Revision 1 Because Perforce forms use the 4 character as a comment indicator Earl has placed quotation marks around the to ensure that it is parsed as a revision specifier Preventing inadvertent tagging and untagging of files To tag the files that are in your client workspace and label view if set and untag all other files issue the p4 labelsync command with no arguments To prevent the inadvertent tagging and untagging of files issue the p4 label labelname command and lock the label by setting the Options field of the label form to locked To prevent other users from unlocking the label set the owner field For details about Perforce privileges refer to the Perforce System Administrator s Guide 80 Perforc
2. The second mapping depot proj2 maps to joe project and conflicts with the first mapping Because these mappings conflict the first mapping is ignored no files in depot proj1 are mapped into the workspace depot proj1 file c is not mapped even if depot proj2 file c does not exist Mapping different depot locations to the same workspace location Overlay mappings enable you to map files from more than one depot directory to the same place in a client workspace To overlay the contents of a second directory in your client workspace use a plus sign in front of the mapping Example Overlaying multiple directories in the same workspace Joe wants to combine the files from his projects when they are synced to his workspace so he has constructed a view as follows View depot proj1 j0e project depot proj2 j0e project Perforce 2006 2 P4 User s Guide 27 Chapter 2 Configuring P4 The overlay mapping depot proj2 maps to joe project and overlays the first mapping Overlay mappings do not conflict Files even deleted files in depot proj2 take precedence over files in depot proj1 If depot proj2 file c is missing as opposed to being present but deleted then depot proj1 file c is mapped into the workspace instead Overlay mappings are useful for applying sparse patches in build environments Mapping Windows workspaces across multiple drives To specify
3. Example Using p4 annotate to display changes to a file A file is added ile txt 1 to the depot containing the following lines This is a text file The second line has not been changed The third line has not been changed The third line is deleted and the second line edited so that file txt 2 reads This is a text file The second line is new Perforce 2006 2 P4 User s Guide 91 Chapter 8 Scripting and Reporting The output of p4 annotate and p4 annotate c look like this p4 annotate file txt depot files file txt 3 edit change 153 text 1 This is a text file 2 The second line is new p4 annotate c file txt depot files file txt 3 edit change 153 text 151 This is a text file 152 The second line is new The first line of ile txt has been present since revision 1 which was submitted in changelist 151 The second line has been present since revision 2 which was submitted in changelist 152 To show all lines including deleted lines in the file use p4 annotate a as follows p4 annotate a file txt depot files file txt 3 edit change 12345 text 1 3 This is a text file 1 1 The second line has not been changed 1 1 The third line has not been changed 2 3 The second line is new The first line of output shows that the first line of the file has been present for revisions 1 through 3 The next two lines of output show line
4. If bugs are found in one codeline fixes can be integrated to the other One basic strategy is to develop code in depot main and create branches for releases for example depot re11 1 Make release specific bug fixes in the release branches and if required integrate them back into the depot main codeline Perforce 2006 2 P4 User s Guide 69 Chapter 6 Codelines and Branching Creating branches To create a branch use the p4 integrate command When you create a branch the Perforce server records the relationships between the branched files and their ancestors You can create branches using file specifications or branch specifications For simple branches use file specifications For branches that are based on complex sets of files or to ensure that you have a record of the way you defined the branch use branch specifications Branch specifications can also be used in subsequent integrations Branch specifications also can serve as a record of codeline policy Using branch specifications To map a set of files from source to target you can create a branch specification and use it as an argument when you issue the p4 integrate command To create a branch specification issue the p4 branch branchname command and specify the desired mapping in the view field with source files on the left and target files on the right Make sure that the target files and directories are in your client view Creating or altering a branch
5. This guide the Perforce Command Reference and the p4 help command are the primary documentation for the Perforce Command Line Client This guide describes the current release For documentation for older releases refer to the Perforce web site For documentation on other Perforce client programs see our documentation web page available from our web site at http www perforce com For specific information about The basics of Perforce Installing and administering the Perforce server the proxy server and security settings p4 command line flags and options reference PAV the cross platform Perforce Visual Client P4Web the browser based Perforce client application P4Win the Perforce Windows GUI Perforce plug ins Developing Perforce client applications using the Perforce C C API Please give us feedback See this documentation Introducing Perforce Perforce System Administrator s Guide Perforce Command Reference p4 help Getting Started with P4V P4V online help How to use P4Web P4Web online help Getting Started with P4Win P4Win online help IDEs Using IDE Plug ins Others online help from the Perforce menu C C API User s Guide We are interested in receiving opinions on this guide from our users In particular we d like to hear from users who have never used Perforce before Does this guide teach the topic well Please let us know what you think we can be reached at ma
6. To list changelists issue the p4 changes command By default p4 changes displays one line for every changelist known to the system The following table lists command line flags that you can use to filter the list To list changelists Use this command With the first 31 characters of the changelist p4 changes descriptions With full descriptions p4 changes 1 The last n changelists p4 changes m n With a specified status p4 changes s pending or p4 changes s submitted From a specified user p4 changes u user From a specified workspace p4 changes c workspace That affect specified files p4 changes filespec That affect specified files including changelists p4 changes i filespec that affect files that were later integrated with the named files That affect specified files including only those p4 changes filespec m n changelists between revisions mand n of these files That affect specified files at each revision p4 changes filespec lab1 lab2 between the revisions specified in labels 1ab1 and lab2 Submitted between two dates p4 changes datel date2 Submitted on or after a specified date p4 changes datel now Perforce 2006 2 P4 User s Guide 93 Chapter 8 Scripting and Reporting Listing files and jobs affected by changelists To list files and jobs affected by a specified changelist along with the diffs of the changes issue the p4 describe command To suppress display of the diffs for shorter output specify the
7. a Windows application that enables you to perform Perforce operations and view results graphically A changelist that has not been submitted The Perforce depot and metadata on a central host Also the program that manages the depot and metadata The permissions stored in the Perforce server s protections table Revision Control System format Used for storing revisions of text files RCS format uses reverse delta encoding for file storage Perforce uses RCS format to store text files See also reverse delta storage A protection level that enables you to read the contents of files managed by Perforce A depot located on a server other than the current Perforce server The process of resolving a file after the file is resolved and before it is submitted The process you use to reconcile the differences between two revisions of a file One fork of a Macintosh file Macintosh files are composed of a resource fork and a data fork You can store resource forks in Perforce depots as part of an AppleSingle file by using Perforce s apple file type The method that Perforce uses to store revisions of text files Perforce stores the changes between each revision and its previous revision plus the full text of the head revision To discard the changes you have made to a file in the client workspace A special protections level that includes read and list accesses and grants permission to run the p4 review command Any dae
8. in the Jobs field of the changelist specification When you submit the changelist the job is by default closed To unlink a job from a pending changelist edit the changelist and delete its name from the Jobs field To unlink a job from a submitted changelist issue the p4 fix d c changenum jobname command 86 Perforce 2006 2 P4 User s Guide chapters Scripting and Reporting This chapter provides details about using p4 commands in scripts and for reporting purposes For a full description of any particular command consult the Perforce Command Reference or issue the p4 help command Common flags used in scripting and reporting The following command line flags enable you to specify settings on the command line and in scripts For full details refer to the description of global options in the Perforce Command Reference Flag c client_workspace G p server port P password Yl USSE x argfile Description Specifies the client workspace name Causes all output and batch input for form commands with i to be formatted as marshaled Python dictionary objects Specifies the host and port number of the Perforce server Specifies the user password if any If you prefer your script to log in before running commands instead of specifying the password every time a command is issued use the p4 login command For example echo mypassword p4 login Prepends a descriptive field for example text
9. info error exit to each line of output produced by a Perforce command Specifies the Perforce user name Reads arguments one per line from the specified file If argfile is a single hyphen then standard input is read Scripting with Perforce forms If your scripts issue p4 commands that require the user to fill in a form such as the p4 client and p4 submit commands use the the o flag to write the form to standard output and the i flag to read the edited form from standard input Perforce 2006 2 P4 User s Guide 87 Chapter 8 Scripting and Reporting For example to create a job using a script on UNIX 1 Issue the p4 job o gt temp1 command to write a blank job specification into a text file 2 Make the necessary changes to the job For example sed s lt enter description here gt Crash when exiting templ gt temp2 3 Issue the p4 job i lt temp2 command to save the job To accomplish the preceding without a temporary file issue the following command p4 job o sed s lt enter description here gt Crash when exiting p4 job i The commands that display forms are e p4 branch e p4 change e p4 client e p4 job e p4 label e p4 submit use p4 change oto create changelist or p4 submit d A changelist description to supply a description to the default changelist during changelist submission e p4 user File reporting The following sections describe co
10. logged in If you use Perforce from multiple machines that share a home directory typical in many UNIX environments log in with p4 login a Using p4 login a creates a ticket in your home directory that is valid from all IP addresses enabling you to remain logged into Perforce from more than one machine To log out from all machines simultaneously issue the following command p4 logout a For more information about the p4 login and p4 logout commands see the Perforce Command Reference 34 Perforce 2006 2 P4 User s Guide chapters Issuing P4 Commands This chapter provides basic information about p4 commands including command line syntax arguments and flags For full details about command syntax refer to the Perforce Command Reference Certain commands require administrator or superuser permission For details consult the Perforce System Administrator s Guide Command line syntax The basic syntax for commands is as follows p4 global options command command specific flags command arguments The following flags can be used with all p4 commands Global options c clientname d directory H host p server P password Description and Example Specifies the client workspace associated with the command Overrides P4CLIENT p4 c bruno_ws edit depot dev main jam Jambase Specifies the current directory overriding the environment variable PWD p4 d c bruno_ws dev main jam Jambase
11. s flag 53 94 scripting 35 87 sd flag 55 se flag 55 searching jobs 83 server configuring 19 20 21 default 19 diffing files 54 65 files in the workspace and 18 specifying on command line 35 timestamps and 42 verifying connection 16 working detached from 55 share option 32 spaces in file and path names 38 static labels 78 SubmitOptions field 31 submitunchanged option 31 submitunchanged reopen option 31 118 Perforce 2006 2 P4 User s Guide Index syntax branch specifications 70 command line 35 file revisions 40 integrating using branch specifications 72 label view 78 local 36 Perforce 36 view 43 T t flag 109 team development 45 timestamp 112 U UNIX alternate client roots 28 comment delimiter 38 finding locked files 66 line endings on mounted drives 32 LOCALE environment variable 39 path component separator 38 symlink file type 109 wildcard 38 unix option 32 unlocked option 30 UTF 16 20 V v flag 61 version of P4 36 View field 29 views conflicting mappings 27 label 78 Ww wildcards client views and 25 defined 107 escaping 52 overview 37 renaming files 53 reserved characters 38 restriction on adding files recursively 47 searching jobs 83 syncing files using 47 Windows binary file storage 112 installation 15 line endings 32 multiple drives 28 regional settings 39 timestamps on DLLs 111 workspace spanning multiple drives 28 write permission 18 X x flag
12. the JobView field value to a valid expression that locates the jobs you want attached Perforce 2006 2 P4 User s Guide 85 Chapter 7 Defect Tracking Example Automatically linking jobs to changelists Bruno wants to see all open jobs that he owns in all changelists he creates He types p4 user and adds the JobView field User bruno Update 2005 06 02 13 11 57 Access 2005 06 03 20 11 07 JobView user bruno amp status open All of Bruno s open jobs now are automatically attached to his default changelist When he submits changelists he must be sure to delete jobs that aren t fixed by the changelist he is submitting Linking manually To link a job to a changelist manually issue the p4 fix c changenum jobname command If the changelist has already been submitted the value of the job s Status field is changed to closed Otherwise the status is not changed Example Manually linking jobs to changelists You can use p4 fix to link a changelist to a job owned by another user Sarah has just submitted a job called options bug to Bruno but the bug has already been fixed in Bruno s previously submitted changelist 18 Bruno links the job to the changelist by typing p4 fix c 18 options bug Because changelist 18 has already been submitted the job s status is changed to closed Linking jobs to changelists To link jobs to changelists when submitting or editing the changelist enter the job names
13. 2005 03 07 13 13 35 Owner earl Description Created by earl Options unlocked View depot release jam 2 1 src This label can tag only files in the release 2 1 source code directory Using static labels to archive workspace configurations You can use static labels to archive the state of your client workspace meaning the currently synced file revisions by issuing the p4 labelsync command The label you specify must have the same view as your client workspace For example to record the configuration of your current client workspace using the existing ws_config label use the following command p4 labelsync 1 ws_config All file revisions that are synced to your current workspace and visible through both the client view and the label view if any are tagged with the ws_config label Files that were previously tagged with ws_config then subsequently removed from your workspace p4 sync none are untagged To sync the files tagged by the ws_config label thereby recreating the workspace configuration issue the following command p4 sync ws_config 78 Perforce 2006 2 P4 User s Guide Chapter 6 Codelines and Branching Using automatic labels as aliases for changelists or other revisions You can use automatic labels to specify files at certain revisions without having to issue the p4 labelsync command To create an automatic label fill in the Revision field of the p4 label form witha revision s
14. 5 Resolving Conflicts Editing the merge file To resolve files by editing the merge file choose the e option Perforce launches your default text editor displaying the merge file In the merge file diffs and conflicts appear in the following format gt gt gt gt ORIGINAL file n text from the original version THEIR file m text from their file YOURS file text from your file lt lt lt To locate conflicts and differences look for the difference marker gt gt gt gt and edit that portion of the text Examine the changes made to theirs to make sure that they are compatible with your changes Make sure you remove all conflict markers before saving After you make the desired changes save the file At the p4 resolve prompt choose ay By default only the conflicts between the yours and theirs files are marked To generate difference markers for all differences specify the v flag when you issue the p4 resolve command Merging to resolve conflicts A merge program displays the differences between yours theirs and the base file and enables you to select and edit changes to produce the desired result file To configure a merge program set P4MERGE to the desired program To use the merge program during a resolve choose the m option For details about using a specific merge program consult its online help After you merge save your results and exit the merge program At the p4 resolve
15. Client root The client root is the top directory of your client workspace where Perforce stores your working copies of depot files Be sure to set the client root or you might inadvertently sync files to your client machine s root directory Your client view determines which files in the depot are mapped to a client workspace and enables the server to construct a one to one mapping between individual depot and workspace files You can map files to have different names and locations in your workspace than they have in the depot but you cannot map files to multiple locations in the workspace or the depot By default the entire depot is mapped to your workspace You can define a client view to map only files and directories of interest so that you do not inadvertently sync the entire depot into your workspace For details see Refining client views on page 24 22 Perforce 2006 2 P4 User s Guide Chapter 2 Configuring P4 Example Setting the client view Bruno issues the p4 client command and sees a form containing this default client view definition Client bruno ws Update 2004 11 29 09 46 53 Access 2005 03 02 10 28 40 Owner bruno Root c bruno_ws SubmitOptions submitunchanged LineEnd local View depot bruno_ws Options noallwrite noclobber nocompress unlocked nomodtime normdir He modifies the view to map only the development portion of the depot View depot dev bruno
16. For example compiled objects libraries executables and developers temporary files that are created while developing software but not added to the depot are not affected by Perforce commands After defining your client workspace you can fine tune the workspace definition Probably most important you can restrict the portion of the depot that is visible to you to prevent you from inadvertently syncing the entire depot For details refer to Refining client views on page 24 18 Perforce 2006 2 P4 User s Guide Chapter 2 Configuring P4 Configuring Perforce settings This guide refers to Perforce settings using environment variables for example set P4CLIENT but you can specify Perforce settings such as server port user and workspace names using the following methods listed in order of precedence 1 On the command line using flags 2 Ina config file if P4cONFIG is set 3 User environment variables on UNIX or Windows 4 System environment variables on Windows system wide environment variables are not necessarily the same thing as user environment variables g On Windows in the Perforce user registry set by issuing the p4 set command 6 On Windows in the Perforce system registry set by issuing the p4 set s command To configure your client machine to connect to a Perforce server you specify the name of the host where the server is running and the port on which the server is listeni
17. Guide Perforce 2006 2 P4 User s Guide 97 Chapter 8 Scripting and Reporting Sample script The following sample script parses the output of the p4 fstat command to report files that are opened where the head revision is not in the client workspace a potential problem Example Sample shell script showing parsing of p4 fstat command output bin sh Usage opened not head sh files Displays files that are open when the head revision is not on the client workspace echo echo exit exit p4 p4 sed sed if ne 1 then Secho Usage 0 files Sexit 1 fi p4 fstat Ro 1 while read line do name echo line sed s I 8 1 gt value Secho line sed s 1 gt if name depotFile then depot File Svalue elif Sname headRev then headRev S value elif name haveRev then haveRev S value if SheadRev ShaveRev then echo S depotFile fi fi done 98 Perforce 2006 2 P4 User s Guide Appendix A G lossa ry Term access level admin access apple file type atomic change transaction base binary file type branch branch form branch specification branch view Definition A permission assigned to a user to control which Perforce commands the user can execute See protections An access level that gives the user permission to run Perforce commands that override metadata b
18. Jamfile Format all output as marshaled Python dictionary objects for scripting with Python p4 G info Specifies the hostname of the client workstation overriding P4HOST p4 H deneb print depot dev main jam Jambase Specifies the Perforce server s host and port number overriding P4 PORT p4 p deneb 1818 clients Supplies a Perforce password overriding P4PASSWD Usually used in combination with the u username flag p4 u earl P secretpassword job Prepend a tag to each line of output for scripting purposes p4 s info Perforce 2006 2 P4 User s Guide 35 Chapter 3 Issuing P4 Commands Global options Description and Example u username Specifies a Perforce user overriding P4USER p4 u bill user x filename Read arguments one per line from the specified file To read arguments from standard input specify x p4 x myargs txt V Displays the version of the p4 executable To display the flags for a specific command issue the p4 help command For example p4 help add add Open a new file to add it to the depot p4 add c changelist t filetype file Open a new file for adding to the depot If the file exists on the client it is read to determine if it is text or binary If it does not exist it is assumed to be text The file must either not exist in the depot or it must be deleted at the current head revision Files may be deleted and re added For the f
19. The following text is displayed Jam MR formerly jam make 1 redux gt gt gt gt ORIGINAL README 26 Copyright 1993 1997 Christopher Seiwald THEIRS README 27 Copyright 1993 1997 2004 Christopher Seiwald YOURS README Copyright 1993 1997 2005 Christopher Seiwald lt lt lt Bruno and Earl have updated the copyright date differently Bruno edits the merge file so that the header is correct exits from the editor and types am The edited merge file is written to the client workspace and he proceeds to resolve the next file When a version of the file is accepted during a resolve the file in the workspace is overwritten and the new client file must still be submitted to the depot New conflicts can occur if new versions of a file are submitted after you resolve but before you submit the resolved files This problem can be prevented by locking the file before you perform the resolve For details see Locking files on page 65 Perforce 2006 2 P4 User s Guide 63 Chapter 5 Resolving Conflicts Resolve command line flags The following p4 resolve flags enable you to resolve directly instead of interactively When you specify one of these flags in the p4 resolve command files are resolved as described in the following table Flag a ay Ja am af as Description Accept the autoselected file Accept yours Accept theirs Use this option with caution be
20. Types Keyword Description Comments How stored by the Perforce server unicode Unicode file Perforce servers operating in unicode UTE 8 UTF 16 mode support the unicode file type or UTF 32 These files are translated into the local character set For details see the Internationalization Notes File type modifiers You can apply file type modifiers to the base types of specific files to preserve timestamps expand RCS keywords specify how files are stored on the server and more For details about applying modifiers to file types see Specifying how files are stored in the server on page 111 The following table lists the file type modifiers Modifier Description Comments C Server stores the full Default server storage mechanism for compressed version of each binary files file revision D Server stores deltas in RCS Default server storage mechanism for text format files F Server stores full file per For large ASCII files that aren t treated as revision text such as PostScript files where storing the deltas is not useful or efficient k RCS Revision Control System Supported keywords are keyword expansion eeenuthons e SChanges e SDate e SDateTimes e File e SHeaders e Id e SRevisions RCS keywords are case sensitive A colon after the keyword for example 1d is optional 110 Perforce 2006 2 P4 User s Guide Appendix B Perforce File Types Modifier Description Comments ko L
21. being submitted To edit a newly integrated file before submission resolve it then issue the p4 edit command If the range of revisions being integrated includes deleted revisions for example a file was deleted from the depot then re added you can specify how deleted revisions are integrated using the dor D flags For details refer to the Perforce Command Reference Integrating using branch specifications To integrate changes from one set of files and directories to another you can use a branch specification when you issue the p4 integrate command The basic syntax of the integrate command when using a branch specification is p4 integrate b branchname tofiles Target files must be mapped in both the branch view and the client view The source files need not be in the client view If you omit the tofiles argument all the files in the branch are affected To reverse the direction of integration using a branch specification specify the r flag This flag enables you to integrate in either direction between two branches without requiring you to create a branch specification for each direction Example Integrating changes to a single file in a branch A feature has been added in the main Jam codeline and Bruno wants to propagate the feature to release 1 0 He types p4 integrate b jamgraph 1 0 dev2release c 72 Perforce 2006 2 P4 User s Guide Chapter 6 Codelines and Branching and sees depot release jam 1 0
22. conflict Merging changes from a development branch to a release branch is another typical task that requires you to resolve files To prevent conflicts Perforce enables you to lock files when they are edited However locking can restrict team development Your team needs to choose the strategy that maximizes file availability while minimizing conflicts For details refer to Locking files on page 65 You might prefer to resolve files using graphical tools like P4V the Perforce Visual Client and its associated visual merge tool P4Merge How conflicts occur File conflicts can occur when two users edit and submit two versions of the same file Conflicts can occur in a number of ways for example 1 Bruno opens depot dev main jam command c 8 for edit 2 Gale subsequently opens the same file for edit in her own client workspace 3 Bruno and Gale both edit depot dev main jam command c 8 4 Bruno submits a changelist containing depot dev main jam command c and the submit succeeds 5 Gale submits a changelist with her version of depot dev main jam command c Her submit fails If Perforce accepts Gale s version into the depot her changes will overwrite Bruno s changes To prevent Bruno s changes from being lost the Perforce server rejects the changelist and schedules the conflicting file to be resolved If you know of file conflicts in advance and want to schedule a file for resolution sync it Perforce det
23. made after syncing the file To diff two revisions that reside in the depot but not in your workspace use the p4 diff2 command To diff a set of files specify wildcards in the filename argument when you issue the p4 diff2 command The p4 diff command performs the diff on your client machine but the p4 diff2 command performs the diff on the server machine and sends the results to your client machine The following table lists some common uses for diff commands To diff Against Use this command The workspace The head p4 ditt file file revision or p4 diff file thead The workspace Revision 3 p4 diff file 3 file The head Revision 134 p4 diff2 file file 134 revision File revision at Filerevisionat p4 diff2 file 32 file 177 changelist 32 changelist 177 All files in All files in p4 diff2 depot rel1 depot rel2 release 1 release 2 By default the p4 diff command launches the Perforce client s internal diff program To use a different diff program set the P4DIFF environment variable to specify the path and executable of the desired program To specify arguments for the external diff program use the d flag For details refer to the Perforce Command Reference 54 Perforce 2006 2 P4 User s Guide Chapter 4 Managing Files and Changelists Working detached If you need to work detached without access to your Perforce server on files under Perforce control you must reconcile your work with the Perforce ser
24. pair of files are summarized by p4 resolve Groups of lines chunks in the yours theirs and base files can differ in various ways Chunks can be e Diffs different between two of the three files yours theirs or base e Conflicts different in all three files In the preceding example e Four chunks are identical in theirs and base but are different in yours e Two chunks are identical in yours and base but are different in theirs e One chunk was changed identically in yours and theirs e One chunk is different in yours theirs and base Perforce s recommended choice is displayed at the end of the command line Pressing ENTER or choosing Accept performs the recommended choice You can resolve conflicts in three basic ways e Accept a file without changing it see Accepting yours theirs or merge on page 60 e Edit the merge file with a text editor see Editing the merge file on page 61 e Merge changes selectively using a merge program see Merging to resolve conflicts on page 61 The preceding options are interactive You can also specify resolve options on the p4 resolve command line if you know which file you want to accept For details see Resolve command line flags on page 64 To reresolve a resolved but unsubmitted file specify the flag when you issue the p4 resolve command You cannot reresolve a file after you submit it Perforce 2006 2 P4 User s Guide 59 Chapter 5 Resolving Confli
25. preview the results of a revert operation without actually reverting files specify the n flag when you issue the p4 revert command Deleting files To delete files from the depot you open them for delete by issuing the p4 delete command then submit the changelist in which they are open When you delete a file from the depot previous revisions remain and a new head revision is added marked as deleted You can still sync previous revisions of the file When you issue the p4 delete command the files are deleted from your workspace but not from the depot If you revert files that are open for delete they are restored to your workspace When you successfully submit the changelist in which they are open the files are deleted from the depot Example Deleting a file from the depot Bruno deletes vendor doc from the depot as follows p4 delete depot dev main docs manuals vendor doc depot dev main docs manuals vendor doc 1 opened for delete The file is deleted from the client workspace immediately but it is not deleted from the depot until he issues the p4 submit command Perforce 2006 2 P4 User s Guide 49 Chapter 4 Managing Files and Changelists Managing changelists To change files in the depot you open them in a changelist make any changes to the files and then submit the changelist A changelist contains a list of files their revision numbers and the operations to be performed on the f
26. set the P4CLIENT environment variable Client workspaces labels and branch specifications cannot share the same name A set of files that evolve collectively One codeline can be branched from another allowing each set of files to evolve separately 100 Perforce 2006 2 P4 User s Guide Appendix A Glossary Term conflict counter default changelist default depot deleted file delta depot depot root depot side depot syntax detached diff donor file Definition One type of conflict occurs when two users open a file for edit One user submits the file after which the other user can t submit because of a conflict The cause of this type of conflict is two users opening the same file The other type of conflict is when users try to merge one file into another This type of conflict occurs when the comparison of two files to a common base yields different results indicating that the files have been changed in different ways In this case the merge can t be done automatically and must be done by hand The type of conflict is caused by nonmatching diffs See file conflict A numeric variable used by Perforce to track changelist numbers in conjunction with the review feature The changelist used by Perforce commands unless a numbered changelist is specified A default pending changelist is created automatically when a file is opened for edit The depot name that is assumed when no name is specif
27. settings for your server Configuring Perforce settings on page 19 host and port to specify where the Perforce Server is running 2 Define your client workspace ata Defining client workspaces on page 22 minimum assign a name and specify a workspace root where you want local copies of depot files stored 3 Verify the connection Verifying connections on page 23 After you configure your workspace you can populate it by syncing files that are stored in the depot For details see Syncing retrieving files on page 46 and the description of the p4 sync command in the Perforce Command Reference Before you start to configure your client machine ask your Perforce administrator for the server host and port setting Also ask whether a workspace has already been configured for your client machine What is a client workspace A Perforce client workspace is a set of directories on the client machine where you work on file revisions that are managed by Perforce Each workspace is given a name that identifies the client workspace to the Perforce Server If no workspace name is specified by setting the P4CLIENT environment variable the default workspace name is the name of the client machine To specify the effective workspace name set the P4CLIENT environment variable A client machine can contain multiple workspaces Perforce 2006 2 P4 User s Guide 17 Chapter 2 Configuring P4 All files within a Pe
28. specification has no effect on any files in the depot or client workspace The branch specification merely maps source files to target files To use the branch specification to create a branch issue the p4 integrate b branchname command then use p4 submit to submit the target files to the depot Branch specifications can contain multiple mappings and exclusionary mappings just as client views can For example the following branch specification branches the Jam 1 0 source code excluding test scripts from the main codeline Branch jamgraph 1 0 dev2release View depot dev main jamgraph depot release jamgraph 1 0 depot dev main jamgraph test depot release jamgraph 1 0 test depot dev main bin glut32 d1l1 depot release jamgraph 1 0 bin glut32 d11 To create a branch using the preceding branch specification issue the following command p4 integrate b jamgraph 1 0 dev2release To delete a branch specification issue the p4 branch d branchname command Deleting a branch specification has no effect on existing files or branches Using file specifications To branch using file specifications issue the p4 integrate command specifying the source files and target files The target files must be in the client view If the source files are not in your client view specify them using depot syntax 70 Perforce 2006 2 P4 User s Guide Chapter 6 Codelines and Branching To create a branch using f
29. that is not an edit of the head revision of the file in the depot typically occurs when another user opens the file for edit after you have opened the file for edit Perforce command line syntax that enables you to specify files using wildcards The master copy of all files shared by all users In Perforce this is called the depot A specific version of a file within the depot Each revision is assigned a number in sequence Any revision can be accessed in the depot by its revision number for example test file 3 All the subdirectories and files under a given root directory An attribute that determines how Perforce stores and diffs a particular file Examples of file types are text and binary A job that has been linked to a changelist Screens displayed by certain Perforce commands For example you use the Perforce change form to enter comments about a particular changelist and to verify the affected files The method by which Perforce stores revisions of binary files in the depot every file revision is stored in full Contrast this with reverse delta storage which Perforce uses for text files An obsolete Perforce term replaced by sync A list of Perforce users The list of file revisions currently in the client workspace The most recent revision of a file within the depot Because file revisions are numbered sequentially this revision is the highest numbered revision of that file 102 Perforce 2006 2 P4 Us
30. the p4 help p4 help command The Perforce settings configured for your client machine p4 info The file revisions in the client workspace p4 have Preview the results of ap4 sync to see which files would p4 sync n be transferred Preview the results of ap4 delete to see which files pi delete sal iexdlos would be marked for deletion Using Perforce forms Some Perforce commands for example p4 client and p4 submit use a text editor to display a form into which you enter the information that is required to complete the command for example a description of the changes you are submitting After you change the form save it and exit the editor Perforce parses the form and uses it to complete the command To configure the text editor that is used to display and edit Perforce forms set P4EDITOR When you enter information into a Perforce form observe the following rules e Field names for example view must be flush left not indented and must end witha colon e Values your entries must be on the same line as the field name or indented with tabs on the lines beneath the field name Some field names such as the Client field in the p4 client form require a single value other fields such as Description take a block of text and others like view take a list of lines Certain values like Client in the client workspace form cannot be changed Other fields like Description inp4 submit must be changed If you d
31. the results of an integration p4 integrate n filepatterns Files that are scheduled for resolve p4 resolve n filepatterns Files that have been resolved but not yet p4 resolved submitted List of branch specifications p4 branches The integration history of the specified files p4 integrated filepatterns The revision histories of the specified files p4 filelog i filepatterns including the integration histories of files from which the specified files were branched Using labels A Perforce label is a set of tagged file revisions For example you might want to tag the file revisions that compose a particular release with the label release2 0 1 In general you can use labels to e Keep track of all the file revisions contained in a particular release of software e Distribute a particular set of file revisions to other users for example a standard configuration e Populate a clean build workspace e Specify a set of file revisions to be branched for development purposes e Sync the revisions as a group to a client workspace 74 Perforce 2006 2 P4 User s Guide Chapter 6 Codelines and Branching Labels and changelist numbers both refer to particular sets of file revisions but differ as follows e A label can refer to any set of file revisions A changelist number refers to the contents of all the files in the depot at the time the changelist was submitted If you need to refer to a group of file revisions
32. third party DLLs for versioning information both within the development environment and also by the operating system and the m modifier enables you to preserve the original timestamps to prevent spurious version mismatches The m modifier overrides the client workspace no modt ime setting for the files to which it is applied For details about this setting refer to File type modifiers on page 110 112 Perforce 2006 2 P4 User s Guide Appendix B Perforce File Types Expanding RCS keywords RCS Revision Control System an early version control system defined keywords that you can embed in your source files These keywords are updated whenever a file is committed to the repository Perforce supports some RCS keywords To activate RCS keyword expansion for a file use the k modifier RCS keywords are expanded as follows Keyword sAuthors Changes Dates DateTimes Files SHeaders Id SRevisions Expands To Perforce user submitting the file Perforce changelist number under which file was submitted Date of last submission in format YYYY MM DD Date and time of last submission in format YYYY MM DD hh mm ss Date and time are as of the local time on the Perforce server at time of submission Filename only in depot syntax without revision number Synonymous with Id Filename and revision number in depot syntax Perforce revision number Example SAuthor bruno Chan
33. 109 v flag 61 x flag 55 commands See p4 commands creating branches 67 69 70 changelists 50 51 client workspaces 22 directories in the client workspace 46 fixes 85 jobs 81 labels 77 passwords 33 Perforce 2006 2 P4 User s Guide 115 Index D date and time specifications 41 42 default client options 30 client view 22 file storage on server 99 110 host and port 19 integration revision range 73 job naming 81 job specification 81 line ending setting 32 p4 annotate command 91 p4 changes command 93 port 19 submit option setting 31 text editor 61 time 41 workspace name 17 default changelist 47 50 52 deleting branch specifications 70 changelists 52 client workspace 32 empty directories 30 files from the depot 45 jobs 82 labels 77 depots displaying file location 90 listing 97 mapping multiple 23 mapping to workspace 22 structure 68 displaying p4 version 36 E environment variables LOCALE 39 P4CHARSET 20 P4CLIENT 17 20 22 35 P4COMMANDCHARSET 20 P4DIFF 20 63 65 P4EDITOR 20 43 P4HOST 20 35 P4LANGUAGE 20 P4MERGE 20 61 63 P4PASSWD 20 35 P4PORT 20 21 23 35 PAUSER 20 36 PWD 35 exclusionary mappings 27 F flag 30 59 74 file names config files 20 reserved characters 38 restrictions on 38 file revisions 40 files deleting from labels 77 moving between changelists 50 flags See command line flags forms 43 forward slash specifying file paths with 36 H head revisio
34. 55 Perforce 2006 2 P4 User s Guide 119 Index 120 Perforce 2006 2 P4 User s Guide
35. Guide Chapter 8 Scripting and Reporting e To see where files will be synced in your workspace preview the sync by issuing the p4 sync n command You can use these commands with or without filespec arguments The following table lists some useful location reporting commands To display Use this command The revision number of a file that you synced to p4 have filespec your workspace How a particular file in the depot maps to your p4 where depot filespec workspace Displaying file contents To display the contents of a file in the depot issue the p4 print filespec command This command prints the contents of the file to standard output or to a specified output file with a one line banner that describes the file To suppress the banner specify the q flag By default the head revision is displayed but you can specify a file revision To display the contents of files Use this command At the head revision p4 print filespec Without the banner p4 print q filespec At a specified changelist number p4 print filespec changenum Displaying annotations details about changes to file contents To find out which file revisions or changelists affected lines in a text file issue the p4 annotate command By default p4 annotate displays the file line by line with each line preceded by a revision number indicating the revision that made the change To display changelist numbers instead of revision numbers specify the c flag
36. Perforce 2006 2 P4 User s Guide December 2006 This manual copyright 2005 2006 Perforce Software All rights reserved Perforce software and documentation is available from http www perforce com You can download and use Perforce programs but you can not sell or redistribute them You can download print copy edit and redistribute the documentation but you can not sell it or sell any documentation derived from it You can not modify or attempt to reverse engineer the programs Perforce programs and documents are available from our Web site as is No warranty or support is provided Warranties and support along with higher capacity servers are sold by Perforce Software Perforce Software assumes no responsibility or liability for any errors or inaccuracies that might appear in this book By downloading and using our programs and documents you agree to these terms Perforce and Inter File Branching are trademarks of Perforce Software Perforce software includes software developed by the University of California Berkeley and its contributors All other brands or product names are trademarks or registered trademarks of their respective companies or organizations Table of Contents List of Examples secre iasi n ira 9 Preface About This Manual cccccccccccccsssssscceceesssssececeeees 13 Command line versus GUlSie rennen iein e e E REO i 13 Getting started with PerfofCe ssni 13 Perforce COCUMENAtION ccc
37. _ws dev He further modifies the view to map files from multiple depots into his workspace View depot dev bruno_ws depot dev testing bruno_ws testing archive bruno_ws archive Verifying connections To verify a connection issue the p4 info command If P4PORT is set correctly information like the following is displayed User name bruno Client name bruno_ws Client host workstation_12 Client root c bruno_ws Current directory c bruno_ws Client address 127 0 0 1 28 Server address localhost 1667 Server root c p4root Server date 2005 03 02 11 16 11 0800 Pacific Standard Time Server version P4D NTX86 2005 1 75548 2005 02 07 Server license 100 clients 100 users expires 206 09 06 Perforce 2006 2 P4 User s Guide Chapter 2 Configuring P4 The Server address field shows the Perforce server to which p4 connected and also displays the host and port number on which the Perforce server is listening If P4PORT is set incorrectly you receive a message like the following Perforce client error Connect to server failed check P4PORT TCP connect to perforce 1666 failed perforce host unknown If the value you see in the third line of the error message is perforce 1666 as above P4PORT has not been set If the value is anything else P4PORT is set incorrectly Refining client views By default when you create a client wor
38. a Perforce client workspace that spans multiple Windows drives use a Root of null and specify the drive letters uppercase in the client view For example Client bruno_ws Update 2004 11 29 09 46 53 Access 2005 03 02 10 28 40 Owner bruno Root null Options noallwrite noclobber nocompress unlocked nomodtime normdir SubmitOptions submitunchanged LineEnd local View depot dev bruno_ws c Current Release depot release bruno_ws d Prior Releases depot www bruno_ws d website Using the same workspace from different machines By default you can only use a workspace on the machine that is specified by the Host field If you want to use the same client workspace on multiple machines with different platforms delete the Host entry and set the AltRoots field in the client specification You can specify a maximum of two alternate client workspace roots The locations must be visible from all machines that will be using them for example through NFS or Samba mounts Perforce compares the current working directory against the main Root first and then against the two AltRoots if specified The first root to match the current working directory is used If no roots match the main root is used Note If you are using a Windows directory in any of your client roots specify the Windows directory as your main client Root and specify your other workspace root directories in th
39. a changelist containing that file and his submit succeeds 5 Gale submits a changelist with her version of the file her submit fails because of file conflicts with the new depot s file a Gale starts a resolve 7 Bruno edits and submits a new version of the same file 8 Gale finishes the resolve and attempts to submit the submit fails and must now be merged with Bruno s latest file and so on Perforce 2006 2 P4 User s Guide 65 Chapter 5 Resolving Conflicts To prevent such problems you can lock files as follows 1 Before scheduling a resolve lock the file 2 Sync the file to schedule a resolve 3 Resolve the file 4 Submit the file 5 Perforce automatically unlocks the file after successful changelist submission To list open locked files on UNIX issue the following command p4 opened grep locked Preventing multiple checkouts To ensure that only one user at a time can work on the file use the 1 exclusive open file type modifier For example p4 reopen t binary l file Although exclusive locking prevents concurrent development for some file types binary files merging and resolving are not meaningful so you can prevent conflicts by preventing multiple users from working on the file simultaneously Your Perforce administrator can use the p4 typemap command to ensure that all files of a specified type for instance depot gif for all gif files can only be opened b
40. able 20 43 P4HOST environment variable 20 35 P4LANGUAGE environment variable 20 P4MERGE environment variable 61 63 P4MERGE environment variables 20 P4PASSWD environment variable 20 35 P4PORT environment variable 20 21 23 35 Perforce 2006 2 P4 User s Guide 117 Index P4USER environment variable 20 36 Perforce syntax 36 permissions administrative commands and 35 files in client workspace and 18 48 52 integration and 72 renaming files 53 working detached 55 port configuring 15 19 20 default 19 error if invalid 24 specifying on command line 35 preview delete results 43 integration results 95 n flag 74 resolve results 95 revert results 49 sync results 43 88 91 syncing to a label 94 tagging results 76 PWD environment variable 35 Python scripting 35 Q q flag 91 R r flag 72 re resolving 59 removing files from the client workspace 42 renumbering of changelists 51 reserved characters 38 restrictions binaries stored as text 112 changing file permissions 18 entries in forms 43 file names 38 label names 77 name length 38 non ASCII characters in file and object names 39 relative path components 36 searching jobs 82 white space in exclusionary mappings 27 revertunchanged option 31 revertunchanged reopen option 31 revision range 42 73 94 106 root alternate for different platforms 28 changing 29 defined 22 100 depot 101 displaying 97 null 28 server 106 S
41. alled the Perforce Command line Client type p4 info at the command line and press ENTER If you have a server running on the specified host and port the following message is displayed User name ona Client name ona agave Client host agave Client root home ona p4 ona Current directory home ona p4 ona Client address 10 0 0 196 2345 Server address ida 1818 Server root usr depot p4d Server date 2005 06 13 08 46 34 0700 PDT Server version P4D FREEBSD4 2005 1 79540 2005 05 10 Server license Perforce Software 200 users expires 2007 01 31 If your configuration settings are incorrect the following message is displayed Perforce client error Connect to server failed check P4PORT TCP connect to lt hostname gt failed lt hostname gt host unknown 16 Perforce 2006 2 P4 User s Guide chapter2 Configuring P4 This chapter tells you how to configure connection settings Configuration overview Perforce uses a client server architecture you sync files from the server repository called the depot and edit them on your client machine in your client workspace This chapter assumes that your system administrator has a Perforce server running For details about installing the Perforce Server refer to the Perforce System Administrator s Guide To set up your client workspace so you can work with the server perform the following steps Step For details see 1 Configure
42. and Branching sssssesesessisisisesiriseseeenss 67 Creating a branch using a file specification cccccsccsesesteteeetesesesteteteneees 71 Propagating changes between branched files cece cesses te eeeeeeees 71 Integrating changes to a single file in a branch cceeseseecesestetesesteteteeees 72 Integrating specific file revisions cc ccc cee eeceeeeeee este seseeeeetenesesesens 73 Retrieving files tagged by a label into a client workspace ccccee 76 Using a label view to control which files can be tagged cccceseeeceees 78 Using an automatic label as an alias for a changelist numbet 79 Referring specifically to the set of files submitted in a single changelist 79 Referring to the first revision of every file over multiple changelists 80 Chapter Defect Tracking 6415 3 cra eae easier ade ee 81 Creating a job ii cis scstst iti opetstevnte Pett pants aniteadbassinestasasbedeisgeisepesosbites 81 Searching jobs for specific words ccsccsessesestetsneeseseeteeseseetesesesesnaeneneees 83 Finding jobs that contain any of a set of words in any field 04 83 Finding jobs that contain words in specific fields eee eeeeeeees 83 Excluding jobs that contain specified values in a field cece 83 Using dates within expressions ccccccceecceetesnsneessseeneteseececesesssesnaneneseens 85 Automatically linking jobs to changelists c cccccsccsseseseeeee
43. ations in the workspace perform a p4 sync If you forget to perform the p4 sync none before you change the client view you can always remove the files from their client workspace locations manually 4 Change the view field 5 Again perform a p4 sync The files in the client workspace are synced to their new locations Perforce 2006 2 P4 User s Guide 29 Chapter 2 Configuring P4 Configuring workspace options The following table describes workspace Options in detail Option no allwrite no clobber no compress un locked no modt ime no rmdir Description Default Specifies whether unopened files are always noallwrite writable By default the Perforce server makes unopened files read only To avoid inadvertently overwriting changes or causing syncs to fail specify noallwrite Specifies whether p4 sync overwrites writable but noclobber unopened workspace files By default Perforce does not overwrite unopened files if they are writable Specifies whether data is compressed when it is nocompress sent between the client and the server Specifies whether other users can use edit or unlocked delete the client workspace specification A Perforce administrator can override the lock with the force flag If you lock your client workspace specification be sure to set a password for the workspace s owner using the p4 passwd command For files without the m modtim
44. bout specifying client views see Refining client views on page 24 Example Copying files from the depot to a client workspace The following command retrieves the most recent revisions of all files in the client view from the depot into the workspace As files are synced they are listed in the command output c bruno_ws gt p4 sync depot dev main bin bin 1linux24x86 readme txt 1 added as c bruno_ws dev main bin bin linux24x86 readme txt depot dev main bin bin ntx86 glut32 d1l 1 added as c bruno_ws dev main bin bin ntx86 glut32 dll depot dev main bin bin ntx86 jamgraph exe 2 added as c bruno_ws dev main bin bin ntx86 jamgraph exe Ferata The p4 sync command adds updates or deletes files in the client workspace to bring the workspace contents into agreement with the depot If a file exists within a particular subdirectory in the depot but that directory does not exist in the client workspace the directory is created in the client workspace when you sync the file If a file has been deleted from the depot p4 sync deletes it from the client workspace 46 Perforce 2006 2 P4 User s Guide Chapter 4 Managing Files and Changelists To sync revisions of files prior to the latest revision in the depot use revision specifiers For example to sync the first revision of Jamfile which has multiple revisions issue the following command p4 sync depot dev main jam Jamfile 1 For more details r
45. cause the file revision in your client workspace is overwritten with the head revision from the depot and you cannot recover your changes Accept the recommended file revision according to the following logic e If theirs is identical to base accept yours e If yours is identical to base accept theirs e If yours and theirs are different from base and there are no con flicts between yours and theirs accept merge e Otherwise there are conflicts between yours and theirs so skip this file leaving it unresolved Accept the recommended file revision even if conflicts remain If this option is used edit the resulting file in the workspace to remove any difference markers Accept the recommended file revision according to the following logic e If theirs is identical to base accept yours e If yours is identical to base accept theirs e Otherwise skip this file Example Automatically accepting particular revisions of conflicting files Bruno has been editing the documentation files in doc and knows that some of them require resolving He types p4 sync doc guide and all of these files that conflict with files in the depot are scheduled for resolve He then types p4 resolve amand the merge files for all scheduled resolves are generated and those merge files that contain no line set conflicts are written to his client workspace He ll still need to manually resolve any conflicting files but the amount of work he needs
46. ccccccssccsscessecessecsseceseecseseessceeseeseeesaeceseecsseeesseeses 14 Please give tis feedback iiss cccessats cvcncsies ov san deieee atteaeaedesvedvessloriatersdesveanees 14 Chapteei dnistalline B rsenieirei sennen n ais 15 Installing P4 on UNIX and OS X sssssssssssssssssssssssissessessseninrinsesssentenienesnesneenees 15 Installing P4 or Wind OWS sitse esnie ae sa aoa 15 Verifying the installation inier iiini oaiae iiras 16 Chapter2 Configuring P4 s sse ssssesesssesesisesisisisisinissssssrirnesesesenes 17 Configuration OVELVICW ss ssssssssseseessssteesissessentensesresressseniesienesnsentestenesnenneeseet 17 What is a client Workspace ss sssssesssssissssssesisstestsssessessinsissisneeniesienesneen 17 How Perforce manages the workspace c ccccsecsessseeseteseeceneseseseeneneneseeees 18 Configuring Perforce Settings ccc sees ssesseseseessessesesesssseeseesseeeeees 19 Using the command litte sessies iiaa Sii ri 19 Using config filesi sie eiia E E E y 19 Using environment variables s ssssssssesssseesisstestsssesssssensinsisseeninsiesesees 21 Using the Windows registry ssssssessssessssesssssitiesisnessinsinsissteneesneseenness 21 Defining client workspaces s ssessssssssssesssstesiesississtesinsiesesntnntesiesesnenneenees 22 Verifying connections aean eeg E aaae E e ee TE 23 Refining cient VIC WS issccce viveeiecd hsxsusieeasiaS vetevcte ioti E o EE Ei e 24 Specif
47. ce views always refer to the locations of files and directories in the depot you cannot refer to specific revisions of a file in a client view Perforce 2006 2 P4 User s Guide 25 Chapter 2 Configuring P4 Mapping part of the depot If you are interested only in a subset of the depot files map that portion Reducing the scope of the client view also ensures that your commands do not inadvertently affect the entire depot To restrict the client view change the left hand side of the view field to specify the relevant portion of the depot Example Mapping part of the depot to the client workspace Dai is working on the Jam project and maintaining the web site so she sets the View field as follows depot dev main jam dai beos locust jam depot www live dai beos locust www live Mapping files to different locations in the workspace Views can consist of multiple mappings which are used to map portions of the depot file tree to different parts of the workspace file tree If there is a conflict in the mappings later mappings have precedence over the earlier ones Example Multiple mappings in a single client view The following view ensures that Microsoft Word files in the manuals folder reside in the workspace in a top level folder called wordfiles View depot pruno_ws depot dev main docs manuals doc pruno_ws wordfiles Mapping files to different filenames Mappings ca
48. configure Perforce settings in the registry e p4 set setting value for the current Windows login e p4 set s setting value for all users on the local machine Overrides any registry settings made for the local user Requires Perforce admin privilege To see which settings are in effect type the p4 set command For details about the p4 set command see the Perforce Command Reference Perforce 2006 2 P4 User s Guide 21 Chapter 2 Configuring P4 Defining client workspaces To define a client workspace 1 Specify the workspace name by setting P4CLIENT for example on a UNIX system P4CLIENT bruno_ ws export P4CLIENT 2 Issue the p4 client command Perforce displays the client specification form in your text editor For details about Perforce forms refer to Using Perforce forms on page 43 3 Specify at least the minimum settings and save the specification No files are synced when you create a client specification To find out how to sync files from the depot to your workspace refer to Syncing retrieving files on page 46 For details about relocating files on your machine see Changing the location of your workspace on page 29 The minimum settings you must specify to configure a client workspace are e Workspace name The workspace name defaults to the client machine s hostname but a client machine can contain multiple workspaces To specify the effective workspace set P4CLIENT e
49. cters are found the file is assumed to be binary otherwise the file is assumed to be text Files of type unicode are detected only when the server is running in Unicode mode for details see your system administrator To determine the type of a file under Perforce control issue the p4 openedor p4 files command To change the Perforce file type specify the t filetype flag For details about changing file type refer to the descriptions of p4 add p4 edit and p4 reopen in the Perforce Command Reference Perforce file types Perforce supports the following file types Keyword Description Comments How stored by the Perforce server apple Macintosh file AppleSingle storage of Macintosh data full file fork resource fork file type and file compressed creator AppleSingle For full details please see the Mac client format release notes binary Nontext file Synced as binary files in the workspace full file Stored compressed within the depot compressed resource Macintosh Obsolete This type is supported for full file resource fork backward compatibility but the apple compressed file type is recommended symlink Symbolic link UNIX and BeOS client machines treat delta these files as symbolic links Non UNIX client machines treat them as text files text Text file Synced as text in the workspace Line delta ending translations are performed automatically Perforce 2006 2 P4 User s Guide 109 Appendix B Perforce File
50. cts The following sections describe the resolve options in more detail Accepting yours theirs or merge To accept a file without changing it specify one of the following options Option Description Remarks a Accept e If theirs is identical to base accept yours recommended e If yours is identical to base accept theirs file e If yours and theirs are different from base and there are no conflicts between yours and theirs accept merge e Otherwise there are conflicts between yours and theirs so skip this file ae Accept edit If you edited the merge file by selecting e from the p4 resolve dialog accept the edited version into the client workspace The version in the client workspace is overwritten am Accept merge Accept merge into the client workspace as the resolved revision The version in the client workspace is overwritten at Accept theirs Accept theirs into the client workspace as the resolved revision The version in the client workspace is overwritten ay Accept yours Accept yours into the client workspace as the resolved revision ignoring changes that might have been made in theirs Accepting yours theirs edit or merge overwrites changes and the generated merge file might not be precisely what you want to submit to the depot The most precise way to ensure that you submit only the desired changes is to use a merge program or edit the merge file 60 Perforce 2006 2 P4 User s Guide Chapter
51. d file revision to your workspace p4 sync Open the file for edit in a changelist p4 edit Make your changes Submit the changelist p4 submit To discard changes issue the p4 revert command Open the file for delete in a changelist p4 delete The file is deleted from your workspace Submit the changelist p4 submit The file is deleted from the depot Perforce 2006 2 P4 User s Guide 45 Chapter 4 Managing Files and Changelists Task Description Discarding changes Revert the files or the changelist in which the files are open Reverting has the following effects on open files Add no effect the file remains in your workspace Edit the revision you opened is resynced from the depot overwriting any changes you made to the file in your workspace Delete the file is resynced to your workspace Files are added to deleted from or updated in the depot only when you successfully submit the pending changelist in which the files are open A changelist can contain a mixture of files open for add edit and delete For details about the syntax that you use to specify files on the command line refer to Specifying filenames on the command line on page 36 The following sections provide more details about working with files Syncing retrieving files To retrieve files from the depot into your client workspace issue the p4 sync command You cannot sync files that are not in your client view For details a
52. dify their client views to map the files in their project excluding other projects that are not of interest For example if Earl maintains the web site his client view might look like this depot www dev earl web catalpa www development depot www review earl web catalpa www review depot www live earl web catalpa www live And Gale who s working on Jam sets up her client view as depot dev main jam gale jam oak jam You can organize according to projects or according to the purpose of a codeline For example to organize the depot according to projects you can use a structure like the following depot project1 main depot project1 release 1 0 depot project1 release 1 1 Or to organize the depot according to the purpose of each codeline you can use a structure like the following depot main project1 depot main project2 depot releasel 0 project1 depot releasel 0 project2 depot release2 0 projecti1 depot release2 0 project2 68 Perforce 2006 2 P4 User s Guide Chapter 6 Codelines and Branching Another approach is to create one depot for each project Choose a structure that makes branching and integrating as simple as possible so that the history of your activities makes sense to you Branching Branching is a method of maintaining the relationship between sets of related files Branches can ev
53. e specify the start and end revisions separated by a comma for example 3 4 The commands that accept revision range specifications are e p4 changes e p4 files e p4 integrate e p4 jobs e p4 print e p4 sync For the preceding commands e If you specify a single revision the command operates on revision 1 through the revision you specify except for p4 sync p4 print and p4 files which operate on the highest revision in the range e If you omit the revision range entirely the command affects all file revisions Example Listing changes using revision ranges A release manager needs to see a quick list of all changes made to the jam project in July 2000 He types p4 changes depot dev main jam 2000 7 1 2000 8 1 The resulting list of changes looks like this Change 673 on 2000 07 31 by bruno bruno_ws Final build for QA Change 633 on 2000 07 1 by bruno bruno_ws First build w bug fix Change 632 on 2000 07 1 by bruno bruno ws Started work 42 Perforce 2006 2 P4 User s Guide Chapter 3 Issuing P4 Commands Reporting commands The following table lists some useful reporting commands To display Use this command A list of p4 commands with a brief description p4 help commands Detailed help about a specific command p4 help command Command line flags common to all Perforce commands p4 help usage Details about Perforce view syntax p4 help views All the arguments that can be specified for
54. e file type nomodt ime modifier date and time e If modtime is set the modification date on the of sync local filesystem of a newly synced file is the dat Ignored for files estamp on the file when the file was submitted to with the m file the depot type modifier e If nomodtime is set the modification date is the date and time of sync regardless of Perforce cli ent version For files with the m modtime file type the modification date on the local filesystem of a newly synced file is the datestamp on the file when the file was submitted to the depot regardless of the setting of modt ime or nomodt ime on the client Specifies whether p4 sync deletes empty normdir directories in a workspace if all files in the directory have been removed 30 Perforce 2006 2 P4 User s Guide Chapter 2 Configuring P4 Configuring submit options To control what happens to files in a changelist when you submit the changelist to the depot set the SubmitOptions field Valid settings are as follows Option submitunchanged submitunchanged reopen revertunchanged revertunchanged reopen leaveunchanged leaveunchanged reopen Description All open files with or without changes are submitted to the depot This is the default behavior of Perforce All open files with or without changes are submitted to the depot and all files are automatically reopened in the default changelist Only those files wit
55. e 2006 2 P4 User s Guide chapter Defect Tracking A job is anumbered or named work request managed by the Perforce server Perforce jobs enable you to track the status of bugs and enhancement requests and associate them with changelists that implement fixes and enhancements You can search for jobs based on the contents of fields the date the job was entered or last modified and many other criteria Your Perforce administrator can customize the job specification for your site s requirements For details on modifying the job specification see the Perforce System Administrator s Guide If you want to integrate Perforce with your in house defect tracking system or develop an integration with a third party defect tracking system see the P4DTI product information page on the Perforce web site Managing jobs To create a job using Perforce s default job naming scheme issue the p4 job command To assign a name to a new job or edit an existing job issue the p4 job jobname command Example Creating a job Gale discovers about a problem with Jam so she creates a job by issuing the p4 job command and describes it as follows Job job000006 Status open User gale Date 2005 11 14 17 12 21 Description MAXLINE on NT can t account for NT 4 0 expanded cmd buffer size The following table describes the fields in the default job specification Field Name Description Default Job The name of the job white space i
56. e 98 Appendix A GIOSSATY ssescvsssagansaavainctoarantainarenoanieletannss ai aT ra 99 AppendixB Perforce File Types cccccseceseeseeeessceeeesseeeeeeees 109 Perforce file ty pestis siete sti raan aie niet tte 109 Filetype modifiers sisi sesen iia a A Aa a A E a ia 110 Specifying how files are stored in the servet ssssesssssssrssssssestesrtessessteess 111 Overriding file tYpessisnienn pa h a a aa aS 112 Preserving timestiMipS eissien eiii sin ii E E 112 Expanding RCS keywotds ss sieniin Kese e iarsa sir SR 113 MTV od E EE E EEE OAT 115 Perforce 2006 2 P4 User s Guide 7 Table of Contents 8 Perforce 2006 2 P4 User s Guide Preface Chapter 1 Chapter 2 Chapter 3 Chapter 4 List of Examples About This Manualen iosian 13 IniS talline PA nran peii te aasar a e tay 15 Configuring PS vssscscssssccssescditesstsettestssrentercticptedenseat 17 Using config files to handle switching between two workspaces 20 Setting the cli nt VieWss insegni iaa er eaea EA aE E EEan 23 Mapping part of the depot to the client Workspace s sssssssssssissessssseesees 26 Multiple mappings in a single client VIEW ccc cere ceeeeee 26 Files with different names in the depot and client workspace 005 26 Using views to exclude files from a client Workspace c eseseceeeseseetens 27 Erroneous mappings that COnfliCt cece ee cccee cece ceseeeeecesesenenenetesenees 27 Overlayin
57. e AltRoots field In the following example if user bruno s current working directory is located under usr bruno Perforce uses the UNIX path as his client workspace root rather than 28 Perforce 2006 2 P4 User s Guide Chapter 2 Configuring P4 c bruno_ws This approach allows bruno to use the same client workspace specification for both UNIX and Windows development Client bruno_ws Owner bruno Description Created by bruno Root c bruno_ws AltRoots usr bruno To find out which workspace root is in effect issue the p4 info command and check the Client root field If you edit text files in the same workspace from different platforms ensure that the editors and settings you use preserve the line endings For details about line endings in cross platform settings refer to the Perforce System Administrator s Guide Changing the location of your workspace To change the location of files in your workspace issue the p4 client command and change either or both of the Root and view fields Before changing these settings ensure that you have no files checked out by submitting or reverting open files If you intend to modify both fields perform the following steps to ensure that your workspace files are located correctly 1 To remove the files from their old location in the workspace issue the p4 sync none command 2 Change the Root field 3 To copy the files to their new loc
58. e per changelist and an abbreviated description p4 changes m count Limits the number of changelists reported on to the last specified number of changelists p4 changes s status Limits the list to those changelists with a particular status for example p4 changes s submitted lists only already submitted changelists p4 changes u user Limits the list to those changelists submitted by a particular user p4 changes c workspace Limits the list to those changelists submitted from a particular client workspace p4 describe changenum Displays full information about a single changelist If the changelist has already been submitted the report includes a list of affected files and the diffs of these files You can use the s flag to exclude the file diffs For more information see Changelist reporting on page 93 Perforce 2006 2 P4 User s Guide 53 Chapter 4 Managing Files and Changelists Diffing files Perforce provides a program that enables you to diff compare revisions of text files By diffing files you can display e Changes that you made after opening the file for edit e Differences between any two revisions e Differences between file revisions in different branches To diff a file that is synced to your workspace with a depot revision issue the p4 diff filename rev command If you omit the revision specifier the file in your workspace is compared with the revision you last synced to display changes you
59. ects the conflicts and schedules the file for resolution Perforce 2006 2 P4 User s Guide 57 Chapter 5 Resolving Conflicts How to resolve conflicts To resolve a file conflict you determine the contents of the files you intend to submit by issuing the p4 resolve command and choosing the desired method of resolution for each file After you resolve conflicts you submit the changelist containing the files Note If you open a file for edit then sync a subsequently submitted revision from the depot Perforce requires you to resolve to prevent your own changes from being overwritten by the depot file By default Perforce uses its diff program to detect conflicts You can configure a third party diff program For details see Diffing files on page 54 To resolve conflicts and submit your changes perform the following steps 1 Sync the files for example p4 sync depot dev main jam Perforce detects any conflicts and schedules the conflicting files for resolve 2 Issue the p4 resolve command and resolve any conflicts See Options for resolving conflicts on page 59 for details about resolve options 3 Test the resulting files for example compile code and verify that it runs 4 Submit the changelist containing the files Note If any of the three file revisions participating in the merge are binary instead of text a three way merge is not possible Instead p4 resolve performs a two way merge
60. eeeeees 53 Diffing fil s grier eresi deaths en A te red cca visas a Sb R i 54 Working detached nngsnasgohinii a aa r a E aA 55 Finding changed fleSu sireiiirsipss ses i na a ERES 55 Submitting your ChaNgeS cece ie esis oie aeaeaiue pareta 55 4 Perforce 2006 2 P4 User s Guide Table of Contents Chapters Resolving Conflicts sich casio taeiclmmarn desk 57 How contliCts O6CuUr ssis sesves Sieve hc tsk meh a asis 57 How to resolve conflicts ccccecccesscessecescecsssessecescecsscecseceeecssecesaeceseeesseeeseesees 58 Your theirs base and merge files eee eeeseseesceneeseseseeeseseseees 58 Options for resolving conflicts 0 ccc eee eenseseescseneseeeseseeseseeeee 59 Accepting yours theirs OF Merge ssessssssesssssiesisrissssisierissteneesiesessees 60 Editing the merge tile 23s cces ss itetess ari Geach eneetess Sates eaae aaisa 61 Merging to resolve COMfLICES cece ce sseeesteseseseeneeseseseseeecscesseseseeceeenees 61 Full list of resol ve Options sinsssyieiikania ariii 62 Resolve command line flags ccccccccssssesecsceeseecscsceseseececessnseseeceesnens 64 Resolve reporting COMMANAS cccee cesses ete tseeseseeeseeseseeneeseeeees 65 Locking filesi iis laasia a itari iaa tucsistoe Pavabel aaaeaii 65 Preventing multiple resolves by locking files ccccsceesteeeeeteseeeetenes 65 Preventing multiple checkouts ssssssssesssessessesserssssissesssssensrsntessessesnsene 66 C
61. efer to Specifying file revisions on page 40 To sync groups of files or entire directories use wildcards For example to sync everything in and below the jam folder issue the following command p4 sync depot dev main jam For more details see Perforce wildcards on page 37 The Perforce server tracks the revisions that you sync in a database located on the server machine For maximum efficiency Perforce does not resync an already synced file revision To resync files you perhaps inadvertently deleted manually specify the flag when you issue the p4 sync command Adding files To add files to the depot create the files in your workspace then issue the p4 add command The p4 add command opens the files for add in the default pending changelist The files are added when you successfully submit the default pending changelist You can open multiple files for add using a single p4 add command by using wildcards You cannot use the Perforce wildcard to add files recursively For platform specific details about adding files recursively meaning files in subdirectories see Tech Note 12 on the Perforce web site http www perforce com perforce technotes note012 html Example Adding files to a changelist Bruno has created a couple of text files that he needs to add to the depot To add all the text a files at once he uses the wildcard when he issues the p4 add command c bruno_ws de
62. er s Guide Appendix A Glossary Term integrate Inter File Branching job job specification job view journal journaling label label view lazy copy license file list access local depot local syntax lock Definition To compare two sets of files for example two codeline branches and e Determine which changes in one set apply to the other e Determine if the changes have already been propagated e Propagate any outstanding changes Perforce s proprietary branching mechanism A user defined unit of work tracked by Perforce The job template determines what information is tracked The template can be modified by the Perforce system administrator A specification containing the fields and valid values stored for a Perforce job A syntax used for searching Perforce jobs A file containing a record of every change made to the Perforce server s metadata since the time of the last checkpoint The process of recording changes made to the Perforce server s metadata A named list of user specified file revisions The view that specifies which filenames in the depot can be stored in a particular label A method used by Perforce to make internal copies of files without duplicating file content in the depot Lazy copies minimize the consumption of disk space by storing references to the original file instead of copies of the file Ensures that the number of Perforce users on your site does no
63. er to variables 38 Perforce 2006 2 P4 User s Guide Chapter 3 Issuing P4 Commands To specify these characters in filenames or paths use the ASCII expression of the character s hexadecimal value as shown in the following table Character ASCII 40 23 2A 25 Specify the filename literally when you add it then use the ASCII expansion to refer to it thereafter For example to add a file called recommendedeconfiguration doc issue the following command p4 add f depot dev main docs manuals recommended configuration doc When you submit the changelist the characters are automatically expanded and appear in the change submission form as follows depot dev main docs manuals recommended 40configuration doc After you submit the changelist with the file s addition you must use the ASCII expansion to sync the file to your workspace or to edit it within your workspace For example p4 sync depot dev main docs manuals recommended 40configuration doc Filenames containing extended non ASCII characters Non ASCII characters are allowed in filenames and Perforce identifiers but entering them from the command line might require platform specific solutions If you are using Perforce in unicode mode all users must have P4CHARSET set properly For details about setting P4CHARSET see the Perforce Command Reference and the Internationalization Notes In international environments use a common code page or locale setti
64. es edit the merge file or use a merge program The changes are made to the target files in the client workspace 3 Submit the changelist containing the resolved files Example Propagating changes between branched files Bruno has fixed a bug in the release 2 2 branch of the Jam project and needs to integrate it back to the main codeline From his home directory Bruno types p4 integrate depot release jam 2 2 src Jambase depot dev main jam Jambase Perforce 2006 2 P4 User s Guide 71 Chapter 6 Codelines and Branching and sees the following message depot dev main jam Jambase 134 integrate from depot release jam 2 2 src Jambase 9 The file has been scheduled for resolve He types p4 resolve and the standard merge dialog appears on his screen depot dev main jam Jambase merging depot release jam 2 2 src Jambase 9 Diff chunks 0 yours 1 theirs 0 both 0 conflicting Accept a Edit e Diff d Merge m Skip s Help at He resolves the conflict When he s done the result file overwrites the file in his workspace The changelist containing the file must be submitted to the depot To run the p4 integrate command you must have Perforce write permission on the target files and read access on the source files See the Perforce System Administrator s Guide for information on Perforce permissions By default a file that has been newly created in a client workspace by p4 integrate cannot be edited before
65. esessssnesesesesesenesesesesesees 35 Specifying filenames on the command line cecceceeseeeeteeseetetee tetas 36 Perforce Wild Card 8 anna ecclesia vs cee et ca oe asec eas vee oases Se 37 Restrictions on filenames and identifiers ccccccesceccesseseessecssesseeees 38 Specifying file reVISIONS cece cesesesesteeeseecesesescetaenssesesneneneseeeeees 40 Reporting Comma ids cciiestccscc sstiatecdscsesslecassresessctlestipcovessesucesstantbesvsevaied 43 Using Perforce forms minsen oyidin dita re E E es 43 Chapter4 Managing Files and Changelists cesses 45 Matha ginig files oestied Mov iideaien te E R A A RA greteevtet eects 45 Syncing retrieving files svsssssienisnnanpuaians naa 46 Adding THOS icccdscscies tes narena Ris Ea a a castosvleg valle 47 Changing fil s oyesn raea oe nE teeing E e OSAS ae De 48 Discarding changes reverting esessesssessssississsssirsissesssesseriesesnenenees 49 Deleting fileSrines eisir ia E e e R E ATE 49 Managing changelistg aerie e e a aae a aera a AAE 50 Creating numbered changelists ssssssssssssissesstsssssirstsrtsnseniesiesesneeseesees 51 Submitting changelists 0 0 cccecceseseesesessssessesesseseseseensseeseseeeseeeees 52 Deleting cha gelistsicsen niinen eneas ii i 52 Renaming and moving files ccscccescsceesesceneteseececesescsteneneseseseeneneseeeeees 53 Displaying information about changelists 0 cccscsssseseseenen
66. ever changelists that affect particular files are submitted An access level that gives the user permission to run every Perforce command including commands that set protections install triggers or shut down the server for maintenance A Perforce file type assigned to UNIX symbolic links On non UNIX clients symlink files are stored as text files To copy a file revision or set of file revisions from the depot to a client workspace The file that receives the changes from the donor file when you are integrating changes between a branched codeline and the original codeline Perforce file type assigned to a file that contains only ASCII text See also binary file type The revision in the depot with which the client file is merged when you resolve a file conflict When you are working with branched files theirs is the donor file 106 Perforce 2006 2 P4 User s Guide Appendix A Glossary Term three way merge tip revision trigger two way merge typemap user view wildcard workspace write access yours Definition The process of combining three file revisions During a three way merge you can identify where conflicting changes have occurred and specify how you want to resolve the conflicts In Perforce the head revision Tip revision is a term used by some other SCM systems A script automatically invoked by the Perforce server when changelists are submitted The process of combining tw
67. evisions since the fixes were submitted Earl knows that the bug fixes he wants were made to file revisions submitted in changelist 30 He types p4 integrate b jamgraph 1 0 dev2release depot dev main jam scan c 30 30 The target file is given as an argument but the file revisions are applied to the source When Earl runs p4 resolve only the revision of Bruno s file that was submitted in changelist 30 is scheduled for resolve That is Earl sees only the changes that Bruno made to scan c in changelist 30 The file revision that was present in the depot at changelist 29 is used as the base file Perforce 2006 2 P4 User s Guide 73 Chapter 6 Codelines and Branching Reintegrating and reresolving files After a revision of a source file has been integrated into a target that revision is usually skipped in subsequent integrations with the same target To force the integration of already integrated files specify the flag when you issue the p4 integrate command A target that has been resolved but not submitted can be resolved again by specifying the f flag to p4 resolve When you reresolve a file yours is the new client file the result of the original resolve Integration reporting The following reporting commands provide useful information about the status of files being branched and integrated Note the use of the preview flag n for reporting purposes To display this information Use this command Preview of
68. f files to another merging The process of combining the contents of two conflicting file revisions into a single file typically using a merge tool like P4Merge The process you use to reconcile the differences between two revisions of a file You can choose to resolve conflicts by selecting a file to be submitted or by merging the contents of conflicting files Perforce 2006 2 P4 User s Guide 67 Chapter 6 Codelines and Branching Organizing the depot You can think of a depot as a top level directory Consider the following factors as you decide how to organize your depot e Type of content create depots or mainline directories according to the nature of your projects and their relationships for example applications with multiple components developed on separate schedules e Release requirements within a project create branches for each release and integrate changes between branches to control the introduction of features and bug fixes Build management use labels and changelists to control the file revisions that are built use client specifications and views to ensure clean build areas A basic and logical way to organize the depot is to create one subdirectory codeline for each project For example if your company is working on Jam you might devote one codeline to the release presently in development another to already released software and perhaps one to your corporate web site Your developers can mo
69. fer to the p4 submit command description in the Perforce Command Reference To move files from one changelist to another issue the p4 reopen c changenum filenames command where changenum specifies the number of the target changelist If you are moving files to the default changelist use p4 reopen c default filenames 50 Perforce 2006 2 P4 User s Guide Chapter 4 Managing Files and Changelists Creating numbered changelists To create a numbered changelist issue the p4 change command This command displays the changelist form Enter a description and make any desired changes then save the form and exit the editor All files open in the default changelist are moved to the new changelist When you exit the text editor the changelist is assigned a number If you delete files from this changelist the files are moved back to the default changelist Example Working with multiple changelists Bruno is fixing two different bugs and needs to submit each fix in a separate changelist He syncs the head revisions of the files for the first fix and opens the for edit in the default changelist C bruno_ws gt p4 sync depot dev main jam c list of files synced c bruno_ws gt p4 edit depot dev main jam c list of files opened for edit Now he issues the p4 change command and enters a description in the changelist form After he saves the file and exits the editor Perforce creates a numbered changelist c
70. file for edit Perforce enables write permission for the file in your workspace and adds the file to a changelist If the file is in the depot but not in your workspace you must sync it before you open it for edit You must open a file for edit before you attempt to edit the file Example Opening a file for edit Bruno wants to make changes to command c so he syncs it and opens the file for edit p4 sync depot dev command c depot dev command c 8 added as c bruno_ws dev command c p4 edit depot dev command c depot dev command c 8 opened for edit He then edits the file with any text editor When he s finished he submits the file to the depot with p4 submit as described above 48 Perforce 2006 2 P4 User s Guide Chapter 4 Managing Files and Changelists Discarding changes reverting To remove an open file from a changelist and discard any changes you made issue the p4 revert command When you revert a file the Perforce server restores the last version you synced to your workspace If you revert a file that is open for add the file is removed from the changelist but is not deleted from your workspace Example Reverting a file Bruno decides not to add his text files after all c bruno_ws dev main docs manuals gt p4 revert txt depot dev main docs manuals installnotes txt none was add abandoned depot dev main docs manuals requirements txt none was add abandoned To
71. from different points in time use a label If there is a point in time at which the files are consistent for your purposes use a changelist number e You can change the contents of a label You cannot change the contents of a submitted changelist e You can assign your own names to labels Changelist numbers are assigned by the Perforce server Changelists are suitable for many applications that traditionally use labels Unlike labels changelists represent the state of a set of files at a specific time Before you assume that a label is required consider whether simply referring to a changelist number might fulfill your requirements Tagging files with a label To tag a set of file revisions in addition to any revisions that have already been tagged use p4 tag specifying a label name and the desired file revisions For example to tag the head revisions of files that reside under depot release jam 2 1 src with the label jam 2 1 0 issue the following command p4 tag l jam 2 1 0 depot release jam 2 1 src To tag revisions other than the head revision specify a changelist number in the file pattern p4 tag l jam 2 1 0 depot release jam 2 1 src 1234 Only one revision of a given file can be tagged with a given label but the same file revision can be tagged by multiple labels Untagging files You can untag revisions with p4 tag d 1 labelname filepattern This command removes the association between the spec
72. g multiple directories in the same Workspace cccc ees 27 Issuing P4 Commands ssciscisstisssseisssivessesivetsscessterceeys 35 Using different syntaxes to refer to the same file eee eee 37 Retrieving files using revision SPeCifieYrS ccccccccceee see ces eeteeeeeeeeeeeceeees 41 Removing all files from the client workspace ccccceceseseeeeeeeeeeeeeees 42 Listing changes Using revision LANGES ccccsecc esse seeee eee eeeeeeeeeeeeeeeeees 42 Managing Files and Changelists ccceeeeees 45 Copying files from the depot to a client Workspace cccceee teens 46 Adding files to archangelist sinisii ireira aeina 47 Submitting a changelist to the depot s sssssessssssssssesstsrtssstsstiesstssssesstssteestes 48 Openinga fle fOr edit ats cc cereteieteeseces ecw ee i i brated 48 Reverting ale nrerin iEn hirer R Ao toe stiles atseevecie dices elects tied 49 Deleting a file from the depot ceccceseesesecesesescscseeseescssseseseseseseesesescses 49 Working with multiple changelists 0 0 ccc eee eeeseenenessseseneseeeeeees 51 Automatic renumbering of changelists ccccccesseseeeeeeeceseeseeeeeesesens 51 Perforce 2006 2 P4 User s Guide List of Examples Chapters Resolving Conflicts x isiceersteisiderehantal anaiieniannken 57 Resolving file cOnfhicts essens hoin aai inesi ii 63 Automatically accepting particular revisions of conflicting files 64 Chapter6 Codelines
73. ge 439 Date 2000 08 18 DateTime 2000 08 18 23 17 02 smiles depot path file txt S Header depot path file txt 3 Id depot path file txt 3 Revision 3 Perforce 2006 2 P4 User s Guide 113 Appendix B Perforce File Types 114 Perforce 2006 2 P4 User s Guide Index Symbols wildcard 25 37 overlay mappings and 27 minus sign exclusionary mappings and 27 Wildcard 25 37 47 54 client views and 25 integrating file revisions 73 listing changelists 93 listing tagged files 94 reserved character in file names 38 39 specifying file revisions 40 54 76 specifying revision range 42 syncing file revisions 78 syncing to a label s contents 76 tagging file revisions 75 A AltRoots field 28 automatic labels 79 Cc c flag 50 52 91 changelists c flag 50 52 91 creating 51 default changelist 50 deleting 52 fixing jobs 85 86 labels vs 75 managing 45 53 moving files 50 numbering 50 RCS keyword 113 reporting and scripting 90 91 submitting 52 client root defined 18 null 28 client workspace alternate roots 28 defined 17 spanning multiple drives 28 specifying on command line 35 codeline management 69 command line flags c flag 52 91 f flag 30 59 74 i flag 73 87 1 flag 90 n flag 49 74 o flag 87 p4 changes command 93 p4 help usage command 43 p4 resolve command 64 q flag 91 r flag 72 s flag 53 94 sd flag 55 se flag 55 t flag
74. h content or type changes are submitted to the depot Unchanged files are reverted Only those files with content or type changes are submitted to the depot and reopened in the default changelist Unchanged files are reverted and not reopened in the default changelist Only those files with content or type changes are submitted to the depot Any unchanged files are moved to the default changelist Only those files with content or type changes are submitted to the depot Unchanged files are moved to the default changelist and changed files are reopened in the default changelist This option is similar to submitunchanged reopen except that no unchanged files are submitted to the depot Perforce 2006 2 P4 User s Guide 31 Chapter 2 Configuring P4 Configuring line ending settings To specify how line endings are handled when you sync text files set the LineEnd field Valid settings are as follows Option local unix mac win share Description Use mode native to the client default UNIXx style and Mac OS X line endings LF Macintosh pre OS X cR only Windows style CR LF Line endings are LF with any CR LF pairs translated to LF only style before storage or syncing with the depot When you sync your client workspace line endings are set to LF If you edit the file on a Windows machine and your editor inserts CRs before each LF the extra cRs do not appear in the archive file The most common u
75. hapter6 Codelines and Branching ssesesesssesesesesisesesesesese 67 B sic terminology ine araea eor ee i Ae i aaae 67 Organizing the depoto iooi eepal aara ar naea Es a AE EE EAs 68 Branching ooro nesre yu bee a E e E A a O EREE 69 When to branches isssecstcetitiesecsesigaiesoseacpareeadedancesedes vn r E a A eat 69 Creating Pra icheSosreseineni anenee iio i E E EE 70 Inteoratings ching eSipoo a aee e P oaaae i ERa aE 71 Integrating using branch specifications see ssssesrsssssrstssstsrttssststesestste 72 Integrating between unrelated files ccc ceneesesteteseeeeneeseseeneenes 73 Integrating specific file revisions 0 0 0 ee ee ese cess eeesseteteneteeseteseeeseees 73 Reintegrating and reresolving fileS cccccccssssseseeeeteseecsceeeeeeeeeeeeee 74 Integration rep rtNg i e esis cass cesses seis ceiiateves estas Sachs Ear aAa barii caastovests 74 Using lA ONS creosote cand Ses EE ed vee ssa south cast She neta ha E 74 Tagging files with a lapel ss usoei as a 75 Untagging filesi nimiis s iaee iasta ieis ve SSE 75 Previewing tagging results ynienen eien i isrann tine in nenesie 76 Listing files tagged by a label nnssnsnsssessssssesisstessessestsssessissessrssinseesessnss 76 Listing labels that have been applied to files cece eects eeees 76 Using a label to specify file revisions cccceeeses cette este teteseeneteseetenenes 76 Deleting labels ysin ea ea S Eae a eA EE A SEE AE A ESTS 77 Creat
76. i a a ae abbe sees 88 Displaying file Status itci cictocse fetid atienuentteetiads a a a Tayea 89 Displaying file revision history s sesssssssessssssesiesisseessesnesnessiesiesessssneenees 90 Listing Open fil s innig noei aaraa a ariaa e aae 90 Displaying file locations enese a E E 90 Displaying file CONtENES yasr ienn n n e o eia 91 Displaying annotations details about changes to file contents 91 Monitoring changes to files ccceeesceescssseseseseessseseseseseseseseseseseeseseees 92 Changelist reporting einn nn inate etna beast git ess 93 Listing charigelists oria vents jesewsgsadeicce cust EE 93 Listing files and jobs affected by changelists cccscceeeseeneteeeeees 94 Label Peportin ges s vusteotssat siete dinstodeera ea seia res enia inasi 94 Branch and integration reporting e sse sessssesrsttssssesttssserstesssesstsntsestesntesstes 95 Job reporting neenetsid t E a a eee hoe Na E aa 95 TASES JODS zanas ii a E ashes adi oMat sseeslantiah 95 Listing jobs fixed by changelists cccssseecessssseeseeeesessesesereeseseees 96 System configuration reporting s sseessesessissiessesiesistessesresinstesensresnesneesees 96 Displaying USers iis misereri e o e e a r elie eo 96 6 Perforce 2006 2 P4 User s Guide Table of Contents Displaying WOrkSPaces siisii iniisa a iae 97 Listine AO POUS sess ces saei Ee a estes E EAR S 97 Sample scripitt nna koala dan Nai ils eh oiee Beat
77. ide 99 Appendix A Glossary Term changelist changelist form changelist number change review checkpoint client form client name client root client side client workspace view client workspace codeline Definition An atomic change transaction in Perforce The changes specified in the changelist are not stored in the depot until the changelist is submitted to the depot The Perforce form you use to modify a changelist The unique numeric identifier of a changelist The process of sending email to users who have registered their interest in changes made to specified files in the depot A copy of the underlying server metadata at a particular moment in time See metadata The Perforce form you use to define a client workspace A name that uniquely identifies the current client workspace The root directory of a client workspace If two or more client workspaces are located on one machine they cannot share a root directory The right hand side of a mapping within a client view specifying where the corresponding depot files are located in the client workspace A set of mappings that specifies the correspondence between file locations in the depot and the client workspace Directories on the client machine where you work on file revisions that are managed by Perforce By default this name is set to the name of the host machine on which the client workspace is located to override the default name
78. ied The default depot name is depot In Perforce a file with its head revision marked as deleted Older revisions of the file are still available The differences between two files A file repository on the Perforce server It contains all versions of all files ever submitted to the depot There can be multiple depots on a single server The root directory for a depot The left side of any client view mapping specifying the location of files in a depot Perforce syntax for specifying the location of files in the depot A client machine that cannot connect to a Perforce server noun A set of lines that don t match when two files are compared A conflict is a pair of unequal diffs between each of two files and a common third file verb To compare the contents of files or file revisions The file from which changes are taken when propagating changes from one file to another Perforce 2006 2 P4 User s Guide 101 Appendix A Glossary Term exclusionary mapping exclusionary access file conflict file pattern file repository file revision file tree file type fix form full file storage get group have list head revision Definition A view mapping that excludes specific files A permission that denies access to the specified files In a three way file merge a situation in which two revisions of a file differ from each other and from their base file Also an attempt to submit a file
79. ields specify the date using the format yyyy mm dd or yyyy mm dd hh mm ss If you omit time the equality operator matches the entire day Example Using dates within expressions Bruno wants to view all jobs modified on July 13 2005 He enters p4 jobs e ModifiedDate 2005 07 13 Fixing jobs To fix a job you link it to a changelist and submit the changelist Perforce automatically changes the value of a job s status field to closed when the changelist is submitted Jobs can be linked to changelists in one of three ways e By setting the Jobview field in the p4 user form to an expression that matches the job e With the p4 fix command e By editing the p4 submit form You can modify job status directly by editing the job but if you close a job manually there s no association with the changelist that fixed the job If you have altered your site s job specification by deleting the Status field jobs can still be linked to changelists but status cannot be changed when the changelist is submitted In most cases this is not a desired form of operation See the chapter on editing job specifications in the Perforce System Administrator s Guide for more details To remove jobs from a changelist issue the p4 fix d command Linking automatically You can modify your Perforce user specification to automatically attach open jobs to any changelists you create To set up automatic inclusion issue the p4 user command and set
80. iffs between yours and base Edit the preliminary merge file generated by Perforce Edit the revision in the depot that the client revision conflicts with usually the head revision This edit is read only Edit the revision of the file currently in the workspace 62 Perforce 2006 2 P4 User s Guide Chapter 5 Resolving Conflicts Option Action Remarks m Merge Invoke the command P4MERGE base theirs yours merge To use this option you must set P4MERGE to the name of a third party program that merges the first three files and writes the fourth as a result s Skip Skip this file and leave it scheduled for resolve Note The merge file is generated by the Perforce server but the differences displayed by dy dt dm and d are generated by the client machine s diff program To configure another diff program to be launched when you choose a d option during a resolve set P4DIFF For more details see Diffing files on page 54 Example Resolving file conflicts To resolve conflicts between his work on a Jam readme file and Earl s work on the same file Bruno types p4 resolve depot dev main jam README and sees the following Diff chunks 0 yours 0 theirs 0 both 1 conflicting Accept a Edit e Diff d Merge m Skip s Help e e Bruno sees that that he and Earl have made a conflicting change to the file He types e to edit the merge file and searches for the difference marker gt gt gt gt
81. ified label and the file revisions tagged by it For example if you have tagged all revisions under depot release jam 2 1 src with jam 2 1 0 you can untag only the header files with p4 tag d 1 jam 2 1 0 depot release jam 2 1 srce h Perforce 2006 2 P4 User s Guide 75 Chapter 6 Codelines and Branching Previewing tagging results You can preview the results of p4 tag withp4 tag n This command lists the revisions that would be tagged untagged or retagged by the tag command without actually performing the operation Listing files tagged by a label To list the revisions tagged with labelname use p4 files specifying the label name as follows p4 files labelname All revisions tagged with labelname are listed with their file type change action and changelist number This command is equivalent to p4 files labelname Listing labels that have been applied to files To list all labels that have been applied to files use the command p4 labels filepattern Using a label to specify file revisions You can use a label name anywhere you can refer to files by revision 1 head changelist number 7381 or date 2003 07 01 If you omit file arguments when you issue the p4 sync labelname command all files in the client workspace view that are tagged by the label are synced to the revision specified in the label All files in the workspace that do not have revisions tagged by the label are deleted fr
82. ile specifications perform the following steps 1 Determine where you want the branch to reside in the depot and the client workspace Add the corresponding mapping specification to your client view 2 Issuethe p4 integrate source files target files command 3 Submit the changelist containing the branched files The branch containing the target files is created in the depot Example Creating a branch using a file specification Version 2 2 of Jam has just been released and work on version 3 0 is starting Version 2 2 must be branched to depot release jam 2 2 for maintenance Bruno uses p4 client to add the following mapping to his client view depot release jam 2 2 bruno_ws release jam 2 2 He issues the following command to create the branch p4 integrate depot dev main jam bruno_ws release jam 2 2 Finally he issues the p4 submit command which adds the newly branched files to the depot Integrating changes After you create branches you might need to propagate changes between them For example if you fix a bug in a release branch you probably want to incorporate the fix back into your main codeline To propagate selected changes between branched files you use the p4 integrate command as follows 1 Issue the p4 integrate command to schedule the files for resolve 2 Issue the p4 resolve command to propagate changes from the source files to the target files To propagate individual chang
83. iles Unsubmitted changelists are referred to as pending changelists Submission of changelists is an all or nothing operation that is either all of the files in the changelist are updated in the depot or if an error occurs none of them are This approach guarantees that code alterations that affect multiple files occur simultaneously Perforce assigns numbers to changelists and also maintains a default changelist which is numbered when you submit it You can create multiple changelists to organize your work For example one changelist might contain files that are changed to implement a new feature and another changelist might contain a bug fix When you open a file it is placed in the default changelist unless you specify an existing changelist number on the command line using the c flag For example to edit a file and submit it in changelist number 4 use p4 edit c 4 filename To open a file in the default changelist omit the c flag The Perforce server might renumber a changelist when you submit it depending on other users activities if your changelist is renumbered its original number is never reassigned to another changelist The commands that add or remove files from changelists are e p4 add e p4 delete e p4 edit e p4 integrate e p4 reopen e p4 revert To submit a numbered changelist specify the c flag when you issue the p4 submit command To submit the default changelist omit the c flag For details re
84. imited keyword expansion Expands only the 1d and Header keywords Primarily for backwards compatibility with versions of Perforce prior to 2000 1 and corresponds to the k ktext modifier in earlier versions of Perforce 1 Exclusive open locking If set only one user at a time can open a file for editing Useful for binary file types such as graphics where merging of changes from multiple authors is not possible m Preserve original modification The file s timestamp on the local file time system is preserved upon submission and restored upon sync Useful for third party DLLs in Windows environments because the operating system relies on the file s timestamp By default the modification time is set to the time you synced the file S Only the head revision is Older revisions are purged from the depot stored on the server upon submission of new revisions Useful for executable or obj files W File is always writable on Not recommended because Perforce client manages the read write settings on files under its control X Execute bit set on client Used for executable files Specifying how files are stored in the server File revisions of binary files are normally stored in full within the depot but only changes made to text files since the previous revision are normally stored This approach is called delta storage and Perforce uses RCS format to store its deltas The file s type determines whether full file
85. imum learn the following concepts changelist depot client workspace sync and submit For short definitions refer to the glossary at the back of this guide 2 Ask your Perforce administrator for the host and port of your Perforce server If you intend to experiment with Perforce and don t want to risk damaging your production depot ask the Perforce administrator to start another server for test purposes For details about installing the Perforce server refer to the Perforce System Administrator s Guide 3 Use this guide to help you install the Perforce Command Line Client and configure your client workspace unless your system administrator has already configured your machine See Chapter 2 Configuring P4 for details 4 Learn to perform the following tasks e sync transfer selected files from the repository to your computer e submit transfer changed files from your workspace to the repository e revert discard changes See Chapter 4 Managing Files and Changelists for details 5 Learn to refine your client view See Refining client views on page 24 for details Perforce 2006 2 P4 User s Guide 13 Preface About This Manual These basic skills enable you to do much of your daily work Other tasks involving code base maintenance branching and labeling and workflow jobs tend to be less frequently done This guide includes details about performing these tasks using p4 commands Perforce documentation
86. ing a label for future use s ss sssssssssssssrtstssstesrterstesntesstentessneestes 77 Restricting files that can be tagged c cccccccesescsteseteseecenesesesnsneneeeaenes 78 Perforce 2006 2 P4 User s Guide 5 Table of Contents Using static labels to archive workspace configurations 78 Using automatic labels as aliases for changelists or other revisions 79 Preventing inadvertent tagging and untagging of files 80 Chapter Defect Tracking escssnassetiaiathensitar Siete en i 81 Mana sing jobsar ieicigitssta iarr eee rrain EEEa D ai E a 81 Searching jODS wsicssts sito siutiettaitetiern dienes eas enesta a aaen rsi ieat 82 Searching job t xteis radona iei aa aana ae aA aaar 82 Seatching specific fieldSsas isesi esie iaie ei ia 83 Using comparison Operators ssesessessssererieserteserterertesertesirtesieeseseesesees 84 Searching date fields ises scriresesreiii unnai iliii ai i 85 DSTA O E EEA E E E E AE TEA 85 Linking automatically ssessssssessesssessestestesssssestsstessnsnestetesensnessesnteneesesnes 85 Linking miata yso a e E a i 86 Linking jobs to changelists se sssssssssessessessiestssessessrestentesenssestesiesseesesses 86 Chapter8 Scripting and Reporting sseeeeerserererrrererererrerersrees 87 Common flags used in scripting and reporting cccccececeteteteseeteteeeeeens 87 Scripting with Perforce fOrMS c ccc cece ee cecseeeeeeteceteseseeeseteesenees 87 File PEP OLIN giesa nn
87. ions The data stored by the Perforce server that describes the files in the depot the current state of client workspaces protections users clients labels and branches Metadata includes all the data stored in the server except for the actual contents of the files The time a file was last changed A completely empty revision of any file Syncing to a nonexistent revision of a file removes it from your workspace An empty file revision created by deleting a file and the none revision specifier are examples of nonexistent file revisions A pending changelist to which Perforce has assigned a number A file that you are changing in your client workspace The Perforce user who created a particular client branch or label The Perforce Command Line Client program and the command you issue to execute Perforce commands from the operating system command line The program on the Perforce server that manages the depot and the metadata A Perforce application that displays the differences between two files P4Diff is the default application used to compare files during the file resolution process 104 Perforce 2006 2 P4 User s Guide Appendix A Glossary Term P4Win pending changelist Perforce server protections RCS format read access remote depot reresolve resolve resource fork reverse delta storage revert review access review daemon revision number Definition The Perforce Windows Client
88. ith p4 add because it is expanded by the operating system shell and not by the Perforce Server Perforce 2006 2 P4 User s Guide 37 Chapter 3 Issuing P4 Commands Restrictions on filenames and identifiers Spaces in filenames pathnames and identifiers Use quotation marks to enclose files or directories that contain spaces For example depot dev main docs manuals recommended configuration doc If you specify spaces in names for other Perforce objects such as branch names client names label names and so on the spaces are automatically converted to underscores by the Perforce server Length limitations Names assigned to Perforce objects such as branches client workspaces and so on cannot exceed 1024 characters Reserved characters By default the following reserved characters are not allowed in Perforce identifiers or names of files managed by Perforce Reserved Character Reason File revision specifier for date label name or changelist number File revision numbers Wildcard Wildcard recursive Wildcard Separator for pathname components These characters have conflicting and secondary uses Conflicts include the following e UNIX separates path components with but many DOS commands interpret as a command line switch e Most UNIX shells interpret as the beginning of a comment e Both DOS and UNIX shells automatically expand to match multiple files and the DOS command line uses to ref
89. jam Jambase Client syntax p4 delete bruno_ws dev main jam Jambase Perforce wildcards For commands that operate on sets of files Perforce supports two wildcards Wildcard Description Matches anything except slashes Matches only within a single directory Case sensitivity depends on your server platform Matches anything including slashes Matches recursively everything in and below the specified directory Perforce wildcards can be used with local or Perforce syntax as in the following examples Expression Matches J Files in the current directory starting with J help All files called help in current subdirectories of ons All files under the current directory and its subdirectories nfl neh Oe All files under the current directory and its subdirectories that end in c usr bruno All files under usr bruno bruno_ws All files in the workspace or depot that is named bruno_ws depot All files in the depot Villa o All files in all depots The wildcard is expanded locally by the operating system before the command is sent to the server To prevent the local operating system from expanding the wildcard enclose it in quotes or precede it with a backslash Note The wildcard cannot be used with the p4 add command The wildcard is expanded by the Perforce server and because the server cannot determine which files are being added it can t expand the wildcard The wildcard can be used w
90. kspace the entire depot is mapped to your workspace You can refine this mapping to view only a portion of the depot and to change the correspondence between depot and workspace locations To display or modify a client view issue the p4 client command Perforce displays the client specification form which lists mappings in the View field Client bruno ws Owner bruno Description Created by bruno Root C bruno_ ws Options noallwrite noclobber nocompress unlocked nomodtime normdir SubmitOptions submitunchanged View depot bruno_ws The following sections provide details about specifying the client view For more information see the p4 client command description and the description of views in the Perforce Command Reference Specifying mappings Views consist of multiple mappings Each mapping has two parts e The left hand side specifies one or more files in the depot and has the form depotname file_ specification e The right hand side specifies one or more files in the client workspace and has the form clientname file_ specification The left hand side of a client view mapping is called the depot side and the right hand side is the client side 24 Perforce 2006 2 P4 User s Guide Chapter 2 Configuring P4 To determine the location of any client file on the host machine substitute the client root for the client name on the client side of the mapping For example if the client r
91. ll text files open in the default changelist type p4 submit txt Use quotation marks as an escape code around the wildcard to prevent it from being interpreted by the local command shell After you save the changelist form and exit the text editor the changelist is submitted to the Perforce server and the server updates the files in the depot After a changelist has been successfully submitted only a Perforce administrator can change it and the only fields that can be changed are the description and user name If an error occurs when you submit the default changelist Perforce creates a numbered changelist containing the files you attempted to submit You must then fix the problems and submit the numbered changelist using the c flag Perforce enables write permission for files that you open for edit and disables write permission when you successfully submit the changelist containing the files To prevent conflicts with the Perforce server s management of your workspace do not change file write permissions manually Deleting changelists To delete a pending changelist you must first remove all files and jobs associated with it and then issue the p4 change d changenumcommand Related operations include the following e To move files to another changelist issue the p4 reopen c changenum command e To remove files from the changelist and discard any changes issue the p4 revert c changenum command Changelists that have al
92. m Jambase 2005 05 18 Specify dates in the format YYYY MM DD Specify time in the format HH MM SS using the 24 hour clock Time defaults to 00 00 00 Separate the date and the time by a single space or a colon If you use a space to separate the date and time you must also enclose the entire date time specification in double quotes Example Retrieving files using revision specifiers Bruno wants to retrieve all revisions that existed at changelist number 30 He types p4 sync depot dev main jam Jambase 30 Another user can sync their workspace so that it contains the same file revisions Bruno has synced by specifying Bruno s workspace as follows p4 sync bruno_ws Perforce 2006 2 P4 User s Guide 41 Chapter 3 Issuing P4 Commands Example Removing all files from the client workspace p4 sync none The files are removed from the workspace but not from the depot Date and time specifications Date and time specifications are obtained from the time zone of the Perforce server To display the date time offset from GMT and time zone in effect at your Perforce server issue the p4 info command The Perforce server stores times as the number of seconds since 00 00 00 GMT Jan 1 1970 so if you move your server across time zones the times stored on the server are correctly reported in the new time zone Revision ranges Some commands can operate on a range of file revisions To specify a revision rang
93. mmands that provide information about file status and location The following table lists a few basic and highly useful reporting commands To display this information File status including file type latest revision number and other information File revisions from most recent to earliest Currently opened files Preview of p4 sync results Currently synced files The contents of specified files Use this command p4 files p4 filelog p4 opened p4 sync n p4 have p4 print 88 Perforce 2006 2 P4 User s Guide Chapter 8 Scripting and Reporting To display this information Use this command The mapping of files depot locations to the corresponding p4 where workspace locations A list of files and full details about the files p4 fstat Displaying file status To display information about single revisions of files issue the p4 files command This command displays the locations of the files in the depot the actions add edit delete and so on performed on those files at the specified revisions the changelists in which the specified file revisions were submitted and the files types The following example shows typical output of the p4 files command depot README 5 edit change 6 text The p4 files command requires one or more filespec arguments Regardless of whether you use local client or depot syntax to specify the filespec arguments the p4 file command displays results using depot syntax If
94. mon process that uses the p4 review command See also change review A number indicating which revision of the file is being referred to Perforce 2006 2 P4 User s Guide 105 Appendix A Glossary Term revision range revision specification server server root status submit subscribe super access symlink file type sync target file text file type theirs Definition A range of revision numbers for a specified file specified as the low and high end of the range For example myfile 5 7 specifies revisions 5 through 7 of myfile A suffix to a filename that specifies a particular revision of that file Revision specifiers can be revision numbers change numbers label names date time specifications or client names In Perforce the program that executes the commands sent by client programs The Perforce server p4d maintains depot files and metadata describing the files and also tracks the state of client workspaces The directory in which the server program stores its metadata and all the shared files To specify the server root set the P4ROOT environment variable For a changelist a value that indicates whether the changelist is new pending or submitted For a job a value that indicates whether the job is open closed or suspended You can customize job statuses To send a pending changelist and changed files to the Perforce server for processing To register to receive email when
95. multiple words separated by whitespace Perforce searches for jobs that contain all the words specified To find jobs that contain any of the terms separate the terms with the pipe character e Field names and text comparisons in expressions are not case sensitive e Only alphanumeric text and punctuation can appear in an expression To match the following characters which are used by Perforce as logical operators precede them with a backslash amp lt gt e You cannot search for phrases only individual words 82 Perforce 2006 2 P4 User s Guide Chapter 7 Defect Tracking Example Searching jobs for specific words Bruno wants to find all jobs that contain the words filter file and mailbox He types p4 jobs e filter file mailbox Example Finding jobs that contain any of a set of words in any field Bruno wants to find jobs that contain any of the words filter file or mailbox He types p4 jobs e filter file mailbox You can use the wildcard to match one or more characters For example the expression fieldname string matches string strings stringbuffer and so on To search for words that contain wildcards precede the wildcard with a backslash in the command For instance to search for string perhaps in reference to char string issue the following command p4 jobs e string Searching specific fields To search based on the values in a specific field specify field value Exam
96. n 41 defined 102 deleted files 49 diffing 54 displaying contents 91 resolving files 64 tagging 75 116 Perforce 2006 2 P4 User s Guide Index host default 19 specifying on command line 35 l i flag 73 87 integration previewing results 74 re resolving 74 reporting 74 using branch specifications 72 J jobs searching 83 L 1 flag 90 label view 78 labels automatic 79 changelists vs 75 deleting 77 deleting files from 77 restrictions on names 77 static 78 leaveunchanged option 31 leaveunchanged reopen option 31 length limitations 38 LineEnd field 32 local option 32 local syntax 36 LOCALE environment variable 39 M mac option 32 Macintosh apple file type 109 line endings 32 resource fork 109 mapping part of the depot 26 mappings conflicting 27 defined 24 exclusionary 27 overlay 27 minus sign 27 modification time 112 modtime 30 N n flag 49 74 noallwrite option 30 noclobber option 30 nocompress option 30 nomodtime option 30 non ASCII characters in file names 39 none revision specifier 41 normdir option 30 not operator 83 null root 28 numbered changelist 51 0 o flag 87 overlay mappings 27 P p4 commands help command 43 label command 77 labelsync command 77 sync command 46 P4CHARSET environment variable 20 P4CLIENT environment variable 17 20 22 35 P4COMMANDCHARSET environment variable 20 P4DIFF environment variable 20 63 65 P4EDITOR environment vari
97. n be used to make the filenames in the client workspace differ from those in the depot Example Files with different names in the depot and client workspace The following view maps the depot file RELNOTES to the workspace file rnotes txt View depot bruno_ws depot dev main jam RELNOTES bruno_ws dev main jam rnotes txt 26 Perforce 2006 2 P4 User s Guide Chapter 2 Configuring P4 Excluding files and directories Exclusionary mappings enable you to explicitly exclude files and directories from a client workspace To exclude a file or directory precede the mapping with a minus sign White space is not allowed between the minus sign and the mapping Example Using views to exclude files from a client workspace Earl who is working on the Jam project does not want any HTML files synced to his workspace His client view looks like this View depot dev main jam earl dev beech jam depot dev main jam html earl dev beech jam html Avoiding mapping conflicts When you use multiple mappings in a single view a single file can inadvertently be mapped to two different places in the depot or workspace When two mappings conflict in this way the later mapping overrides the earlier mapping Example Erroneous mappings that conflict Joe has constructed a view as follows View depot proj1 j0e project depot proj2 j0e project
98. ng The default server host is perforce and default server port is 1666 If the server is running on your client machine specify localhost as the host name If the server is running on port 1666 you can omit the port specification You can specify these settings as described in the following sections For details about working detached without a connection to a Perforce server see Working detached on page 55 Using the command line To specify server settings on the command line use the p flag For example p4 p localhost 1776 sync depot dev main jam Jambase Server settings specified on the command line override any settings specified in config files environment variables or the Windows registry For more details about command line flags refer to the discussion of global options in the Perforce Command Reference Using config files Config files are text files containing Perforce settings that are in effect for files in and below the directory where the config file resides Config files are useful if you have multiple client workspaces on the same machine By specifying the settings in config files you avoid the inconvenience of changing system settings every time you want to work witha different workspace Perforce 2006 2 P4 User s Guide 19 Chapter 2 Configuring P4 To use config files you define the P4CONFIG environment variable specifying a file name for example p4config When you issue a command Perfo
99. ng to ensure that all filenames are displayed consistently across all machines in your organization To set the code page or locale e Windows use the Regional Settings applet in the Control Panel e UNIX set the LOCALE environment variable Perforce 2006 2 P4 User s Guide 39 Chapter 3 Issuing P4 Commands Specifying file revisions Each time you submit a file to the depot its revision number is incremented To specify revisions prior to the most recent use the revision specifier to specify a revision number or to specify a date changelist client workspace or label corresponding to the version of the file you are working on Revision specifications can be used to limit the effect of a command to specified file revisions Warning Some operating system shells treat the Perforce revision character as a comment character if it starts a word If your shell is one of these escape the when you use it in p4 commands The following table describes the various ways you can specify file revisions Revision needed Syntax and example Revision number filen Example p4 sync depot dev main jam Jambase 3 Refers to revision 3 of file Jambase The revision submitted file changelist_number as of a specified Examples changelist E p4 sync depot dev main jam Jambase 126 Refers to the version of Jambase when changelist 126 was submitted even if it was not part of the change p4 sync depot 126 Refers to the sta
100. nual perforce com 14 Perforce 2006 2 P4 User s Guide chaperi Installing P4 This chapter tells you how to install the Perforce Command Line Client p4 on a client machine For details about installing the Perforce Server refer to the Perforce System Administrator s Guide Installing P4 on UNIX and OS X To install the Perforce Command Line Client p4 on a UNIX or Macintosh OS X machine perform the following steps 1 Download the p4 executable file from the Perforce web site http www perforce com perforce loadprog html The Perforce client programs are typically downloaded to usr local bin 2 Make the p4 file executable chmod x p4 3 Configure the server port setting client workspace name and user name You can specify these settings by configuring the P4PORT P4CLIENT and P4US ER environment variables For details see Chapter 2 Configuring P4 Installing P4 on Windows To install the Perforce Command Line Client p4 exe on Windows download and run the Perforce Windows installer perforce exe from the Downloads page of the Perforce web site http www perforce com perforce loadprog html The Perforce installer enables you to install and uninstall the Perforce Command Line Client and other Perforce Windows components Perforce 2006 2 P4 User s Guide 15 Chapter 1 Installing P4 Verifying the installation To verify that you have successfully inst
101. o file revisions In a two way merge you can see differences between the files but cannot see conflicts A Perforce table in which you assign Perforce file types to files The identifier that Perforce uses to determine who is performing an operation A description of the relationship between two sets of files See client workspace view label view branch view A special character used to match other characters in strings Perforce wildcards are e matches anything except a slash e matches anything including slashes e 0 through 9 used for parameter substitution in views See client workspace A protection level that enables you to run commands that alter the contents of files in the depot Write access includes read and list accesses The edited version of a file in the client workspace when you resolve a file Also the target file when you integrate a branched file Perforce 2006 2 P4 User s Guide 107 Appendix A Glossary 108 Perforce 2006 2 P4 User s Guide appenaxs Perforce File Types Perforce supports a set of file types that enable it to determine how files are stored by the Perforce server and whether the file can be diffed When you add a file Perforce attempts to determine the type of the file automatically Perforce first determines whether the file is a regular file or a symbolic link and then examines the first part of the file to determine whether it s text or binary If any nontext chara
102. o handle switching between two workspaces Ona switches between two workspaces on the same machine The first workspace is ona ash It has a client root of tmp user ona and connects to the Perforce server at ida 1818 The second workspace is called ona agave Its client root is home ona p4 ona and it uses the Perforce server at warhol 1666 20 Perforce 2006 2 P4 User s Guide Chapter 2 Configuring P4 Ona sets the P4CONFIG environment variable to p4settings She creates a file called p4settings in tmp user ona containing the following text P4PORT ida 1818 P4CLIENT ona ash She creates a second p4settings file in home ona p4 ona It contains the following text P4PORT warhol 1666 P4CLIENT graphicwork Any work she does on files under tmp user ona is managed by the Perforce server at ida 1818 and work she does on files under home ona p4 ona is managed by the Perforce server at warhol 1666 Using environment variables To configure server connection settings using environment variables set P4PORT to host port as in the following examples If the server is running on and is listening to port set P4PORT to your computer 1666 localhost 1666 perforce 1666 1666 houston 3435 houston 3435 deneb com 1818 deneb com 1818 Using the Windows registry On Windows machines you can store connection settings in the registry by issuing the p4 set command For example p4 set P4PORT tea 1667 There are two ways you can
103. of a specified file The revisions of a specified file recursively including revisions of the files from which it was branched A preview of the results of a resolve Files that have been resolved but not yet submitted Integrated submitted files that match the filespec arguments A preview of the results of an integration Job reporting Use this command p4 p4 p4 p4 p4 p4 p4 branches files filespec filelog filespec filelog i filespec resolve args n filespec resolved filespec integrated filespec integrate args n filespec Listing jobs To list jobs issue the p4 jobs command The following table lists common job reporting commands To list All jobs All jobs including full descriptions Use this command p4 jobs p4 jobs 1 Jobs that meet search criteria see Searching jobs on page 82 p4 jobs e jobview for details Jobs that were fixed by changelists that contain specific files p4 jobs filespec Jobs that were fixed by changelists that contain specific files p4 jobs i filespec including changelists that contain files that were later integrated into the specified files Perforce 2006 2 P4 User s Guide 95 Chapter 8 Scripting and Reporting Listing jobs fixed by changelists Any jobs that have been linked to a changelist with p4 change p4 submit orp4 fix are referred to as fixed regardless of whether their status is closed To list jobs tha
104. olve separately from their ancestors and descendants and you can propagate integrate changes from one branch to another as desired Perforce s Inter File TM Branching mechanism preserves the relationship between files and their ancestors while consuming minimal server resources To create a branch use the p4 integrate command The p4 integrate command is also used to propagate changes between existing sets of files For details about integrating changes refer to Integrating changes on page 71 When to branch Create a branch when two sets of files have different submission policies or need to evolve separately For example e Problem the development group wants to submit code to the depot whenever their code changes regardless of whether it compiles but the release engineers don t want code to be submitted until it s been debugged verified and approved Solution create a release branch by branching the development codeline When the development codeline is ready it is integrated into the release codeline Patches and bug fixes are made in the release code and integrated back into the development code e Problem a company is writing a driver for a new multiplatform printer The UNIX device driver is done and they are beginning work on a Macintosh driver using the UNIX code as their starting point Solution create a Macintosh branch from the existing UNIX code These two codelines can evolve separately
105. om the workspace Open files or files not under Perforce control are unaffected This command is equivalent to p4 sync labelname If you specify file arguments when you issue the p4 sync command p4 sync files labelname files that are in your workspace and tagged by the label are synced to the tagged revision Example Retrieving files tagged by a label into a client workspace To retrieve the files tagged by Earl s jam 2 1 0 label into his client workspace Bruno issues the following command p4 sync jam 2 1 0 76 Perforce 2006 2 P4 User s Guide Chapter 6 Codelines and Branching and sees depot dev main jam Build com 5 updating c bruno_ws dev main jam Build com depot dev main jam command c 5 updating c bruno_ws dev main jam command c depot dev main jam command h 3 added as c bruno_ws dev main jam command h depot dev main jam compile c 12 updating c bruno_ws dev main jam compile c depot dev main jam compile h 2 updating c bruno_ws dev main jam compile h lt etc gt Deleting labels To delete a label use the following command p4 label d labelname Deleting a label has no effect on the tagged file revisions though of course the revisions are no longer tagged Creating a label for future use To create a label without tagging any file revisions issue the p4 label labelname command This command displays a form in which you describe and specify the label After you have c
106. on t change a field that needs to be changed or vice versa Perforce displays an error For details about which fields can be modified see the Perforce Command Reference or use p4 help command Perforce 2006 2 P4 User s Guide 43 Chapter 3 Issuing P4 Commands 44 Perforce 2006 2 P4 User s Guide chapters Managing Files and Changelists This chapter tells you how to manage files and work in a team development environment where multiple users who are working on the same files might need to reconcile their changes Managing files To change files in the depot file repository you open the files in changelists and submit the changelists with a description of your changes Perforce assigns numbers to changelists and maintains the revision history of your files This approach enables you to group related changes and find out who changed a file and why and when it was changed Here are the basic steps for working with files Task Description Syncing retrieving Issue the p4 sync command specifying the files and directories files from the depot you want to retrieve from the depot You can only sync files that are mapped in your client view Adding files to the 1 depot 2 9 Editing files and 1 checking in changes 2 Sh 4 Deleting files from the 1 depot Create the file in the workspace Open the file for add in a changelist p4 ada Submit the changelist p4 submit If necessary sync the desire
107. ontaining the files c bruno_ws dev main docs manuals gt p4 change Enter description and save form Change 777 created with 33 open file s For the second bug fix he performs the same steps p4 sync p4 edit and p4 change Now he has two numbered changelists one for each fix The numbers assigned to submitted changelists reflect the order in which the changelists were submitted When a changelist is submitted the Perforce server might renumber it as shown in the following example Example Automatic renumbering of changelists Bruno has finished fixing the bug that he s been using changelist 777 for After he created that changelist he submitted another changelist and two other users also submitted changelists Bruno submits changelist 777 with p4 submit c 777 and sees the following message Change 777 renamed change 783 and submitted Perforce 2006 2 P4 User s Guide 51 Chapter 4 Managing Files and Changelists Submitting changelists To submit a pending changelist issue the p4 submit command When you issue the p4 submit command a form is displayed listing the files in the changelist You can remove files from this list The files you remove remain open in the default pending changelist until you submit them or revert them To submit specific files that are open in the default changelist issue the p4 submit filename command To specify groups of files use wildcards For example to submit a
108. oot is C bruno_ws the file depot dev main jam Jamfile resides in the workspace as C bruno_ws dev main jam Jamfile Later mappings override earlier ones In the following example the second line overrides the first line mapping the files in depot dev main docs manuals up two levels When files in depot dev main docs manuals are synced they reside in c bruno_ws docs View depot dev bruno_ws dev depot dev main docs bruno_ws docs Using wildcards in client views To map groups of files in client views you use Perforce wildcards Any wildcard used on the depot side of a mapping must be matched with an identical wildcard in the mapping s client side You can use the following wildcards to specify client view mappings Wildcard Description g Matches anything except slashes Matches only within a single directory Case sensitivity depends on your server platform Matches anything including slashes Matches recursively everything in and below the specified directory In this simple client view depot dev bruno_ws dev all files in the depot s dev branch are mapped to the corresponding locations in the workspace For example the file depot dev main jam Makefile is mapped to the client workspace file C bruno_ws dev main jam Makefile Note To avoid mapping unwanted files always precede the wildcard with a forward slash The mappings in client workspa
109. or delta storage is used Perforce 2006 2 P4 User s Guide 111 Appendix B Perforce File Types Some file types are compressed to gzip format when stored in the depot The compression occurs when you submit the file and decompression happens when you sync copy the file from the server to the workspace The client workspace always contains the file as it was submitted Warning To avoid inadvertent file truncation do not store binary files as text If you store a binary file as text from a Windows client machine and the file contains the Windows end of file character Z only the part of the file up to the z is stored in the depot Overriding file types Some file formats for example Adobe PDF files and Rich Text Format files are actually binary files but they can be mistakenly detected by Perforce as being text To prevent this problem your system administrator can use the p4 typemap command to specify how such file types are stored You can always override the file type specified in the typemap table by specifying the t filetype flag Preserving timestamps Normally Perforce updates the timestamp when a file is synced The modification time m modifier is intended for developers who need to preserve a file s original timestamp This modifier enables you to ensure that the timestamp of a file synced to your client workspace is the time on the client machine when the file was submitted Windows uses timestamps on
110. ows store your password in the registry using the p4 set s command Not advised for sites where security is high Perforce administrators can disable this feature Perforce 2006 2 P4 User s Guide 33 Chapter 2 Configuring P4 Connection time limits Your Perforce administrator can configure the Perforce server to enforce time limits for users Perforce uses ticket based authentication to enforce time limits Because ticket based authentication does not rely on environment variables or command line flags it is more secure than password based authentication Tickets are stored in a file in your home directory After you have logged in your ticket is valid for a limited period of time by default 12 hours Logging in and logging out If time limits are in effect for your server you must issue the p4 login command to obtain a ticket Enter your password when prompted If you log in successfully a ticket is created for you in the ticket file in your home directory and you are not prompted to log in again until either your ticket expires or you log out by issuing the p4 logout command To see how much time remains before your login expires issue the following command p4 login s If your ticket is valid the length of time remaining is displayed To log out of Perforce issue the following command p4 logout Working on multiple machines By default your ticket is valid only for the IP address of the machine from which you
111. pecifier When you sync a workspace to an automatic label the contents of the Revision field are applied to every file in the view field Example Using an automatic label as an alias for a changelist number Earl is running a nightly build process and has successfully built a product as of changelist 1234 Rather than having to remember the specific changelist for every night s build he types p4 label nightly20061201 and uses the label s Revision field to automatically tag all files as of changelist 1234 with the nightly20061201 label Label nightly20061201 Owner earl Description Nightly build process Options unlocked View depot Revision 1234 The advantage to this approach is that it is highly amenable to scripting takes up very little space in the label table and provides a way to easily refer to a nightly build without remembering which changelist number was associated with the night s build process Example Referring specifically to the set of files submitted in a single changelist A bug was fixed by means of changelist 1238 and requires a patch label that refers to only those files associated with the fix Earl types p4 label patch20061201 and uses the label s Revision field to automatically tag only those files submitted in changelist 1238 with the patch20061201 label Label patch20061201 Owner earl Description Patch to 2006 12 01 nightly build Options unlocked View depot
112. platform variants better 34 change 598 edit on 2001 10 24 by raj raj althea text Reverse previous attempt at fix ok branch into depot release jam 2 2 src jam c 1 33 change 581 edit on 2001 10 03 by gale gale jam oak text Version strings amp release notes To display the entire description of each changelist specify the 1 flag Listing open files To list the files that are currently opened in a client workspace issue the p4 opened filespec command The following line is an example of the output displayed by the p4 opened command depot dev main jam fileos2 c edit default change text The following table lists some common uses of the p4 opened command To list Use this command Opened files in the current workspace p4 opened Opened files in all client workspaces p4 opened a Files in a numbered pending changelist p4 opened c changelist Files in the default changelist p4 opened c default Whether a specific file is opened by you p4 opened filespec Whether a specific file is opened by anyone p4 opened a filespec Displaying file locations To display information about the locations of files use the p4 where p4 have and p4 sync n commands e To display the location of a file in depot client and local syntax issue the p4 where command e To list the location and revisions of files that you last synced to your client workspace issue the p4 have command 90 Perforce 2006 2 P4 User s
113. ple Finding jobs that contain words in specific fields Bruno wants to find all open jobs related to filtering He types p4 jobs e Status open User bruno filter c This command finds all jobs with a Status of open a User of bruno and the word filter c in any nondate field To find fields that do not contain a specified expression precede it with which is the NOT operator The NOT operator can be used only directly after an AND expression space or amp For example p4 jobs e user bruno is not valid To get around this restriction use the wildcard to add a search term before the term for example p4 jobs e job user bruno returns all jobs not owned by Bruno Example Excluding jobs that contain specified values in a field Bruno wants to find all open jobs he does not own that involve filtering He types p4 jobs e status open user bruno filter This command displays all open jobs that Bruno does not own that contain the word filter Perforce 2006 2 P4 User s Guide 83 Chapter 7 Defect Tracking Using comparison operators The following comparison operators are available Equal Greater than Less than Greater than or equal to Less than or equal to The behavior of these operators depends upon the type of the field in the expression The following table describes the field types and how they can be searched Field Type word Cent line select date Description A
114. prompt choose am Perforce 2006 2 P4 User s Guide 61 Chapter 5 Resolving Conflicts Full list of resolve options The p4 resolve command offers the following options Option P a ae am at ay dm dt dy er ey Action Help Accept automatically Accept edit Accept merge Accept theirs Accept yours Diff Diff merge Diff theirs Diff yours Edit merged Edit theirs Edit yours Remarks Display help for p4 resolve Accept the autoselected file e If theirs is identical to base accept yours e If yours is identical to base accept theirs e If yours and theirs are different from base and there are no conflicts between yours and theirs accept merge e Otherwise there are conflicts between yours and theirs so skip this file If you edited the merge file by selecting e from the p4 resolve dialog accept the edited version into the client workspace The version in the client workspace is overwritten Accept merge into the client workspace as the resolved revision The version in the client workspace is overwritten Accept theirs into the client workspace as the resolved revision The version in the client workspace is overwritten Accept yours into the client workspace as the resolved revision ignoring changes that might have been made in theirs Show diffs between merge and yours Show diffs between merge and base Show diffs between theirs and base Show d
115. raj lt raj p4demo com gt Raj Bai accessed 2001 07 28 vera lt vera p4demo com gt Vera Cullen accessed 2005 01 15 96 Perforce 2006 2 P4 User s Guide Chapter 8 Scripting and Reporting Displaying workspaces To display information about client workspaces issue the p4 clients command which displays the client workspace name the date the workspace was last updated the workspace root and the description of the workspace in the following format ient ient lient lient lient lient lient ient ient Lient AaAAARARANRAA bruno_ws 2005 03 07 root c bruno_ws dai beos locust 2002 10 03 root boot home sre earl earl earl earl earl mac alder 2002 03 19 root Macintosh HD earl l os2 buckeye 2002 03 21 root c src l qnx elm 2001 01 17 root src ear ear earl beos aspen 2002 04 15 root boot sre dev beech 2002 10 26 root home earl l dev yew 2004 11 19 root tmp l tupelo 2001 01 05 root usr earl dev guava 2002 09 08 root usr earl develoment tt Payk Listing depots To list depots issue the p4 depots command This command lists the depot s name its creation date its type local remote or spec its host name or IP address if remote the mapping to the local depot and the system administrator s description of the depot For details about defining multiple depots on a single Perforce server see the Perforce System Administrator s
116. rce searches the current working directory and its parent directories for the specified file and uses the settings it contains unless the settings are overridden by command line flags Each setting in the file must be specified on its own line using the following format setting value The following settings can be specified in a config file Setting P4CHARSET P4COMMANDCHARSET P4CLIENT P4DIFF P4EDITOR P4HOST P4 LANGUAGE P4MERGE P4 PASSWD P4PORT P4USER Description Character set used for translation of Unicode files Non UTF 16 or UTF 32 character set used by Command Line Client when P4CHARSET is set to a UTF 16 or UTF 32 character set Name of the current client workspace The name and location of the diff program used by p4 resolve and p4 diff The editor invoked by those Perforce commands that use forms Hostname of the client workstation Only useful if the Host field of the current client workspace has been set in the p4 client form This environment variable is reserved for system integrators The name and location of the third party merge program to be used by p4 resolve s merge option Supplies the current Perforce user s password for any Perforce client command The host and port number of the Perforce server or proxy with which to communicate Current Perforce user name For details about these settings refer to the Perforce Command Reference Example Using config files t
117. ready been submitted can be deleted only by a Perforce administrator See the Perforce System Administrator s Guide for more information 52 Perforce 2006 2 P4 User s Guide Chapter 4 Managing Files and Changelists Renaming and moving files To rename or move files you use the p4 delete and p4 integrate commands to simultaneously create the new file and delete the original file thereby preserving its revision history The process is as follows p4 integrate source file target file p4 delete source file p4 submit To rename groups of files use matching wildcards in the source_fileand target_file specifiers To rename files you must have Perforce write permission for the specified files For details about Perforce permissions see the Perforce System Administrator s Guide When you rename or move a file using p4 integrate the Perforce server creates an integration record that links it to its deleted predecessor preserving the file s history Integration is also used to create branches and to propagate changes For details see Integrating changes on page 71 Displaying information about changelists To display brief information about changelists use the p4 changes command To display full information use the p4 describe command The following table describes some useful reporting commands and options Command Description p4 changes Displays a list of all pending and submitted changelists one lin
118. reated a label you can use p4 tagorp4 labelsync to apply the label to file revisions Label names cannot be the same as client workspace branch or depot names For example to create jam 2 1 0 issue the following command p4 label jam 2 1 0 The following form is displayed Label jam 2 1 0 Update 2005 03 07 13 07 39 Access 2005 03 07 13 13 35 Owner earl Description Created by earl Options unlocked View depot Enter a description for the label and save the form You do not need to change the view field After you create the label you are able to use the p4 tagand p4 _labelsync commands to apply the label to file revisions Perforce 2006 2 P4 User s Guide 77 Chapter 6 Codelines and Branching Restricting files that can be tagged The View field in the p4 label form limits the files that can be tagged with a label The default label view includes the entire depot depot To prevent yourself from inadvertently tagging every file in your depot set the label s view field to the files and directories to be taggable using depot syntax Example Using a label view to control which files can be tagged Earl wants to tag the revisions of source code in the release 2 1 branch which he knows can be successfully compiled He types p4 label jam 2 1 0and uses the label s view field to restrict the scope of the label as follows Label jam 2 1 0 Update 2005 03 07 13 07 39 Access
119. rforce client workspace share a root directory called the client root The client root is the highest level directory of the workspace under which the managed source files reside If you configure multiple workspaces on the same machine keep workspace locations separate to avoid inadvertently overwriting files Ensure that client roots are located in different folders and that their client views do not map depot files to overlapping locations on the client machine After you configure your workspace you can sync files from the depot and submit changes For details about these tasks refer to Chapter 4 Managing Files and Changelists How Perforce manages the workspace Perforce manages the files in a client workspace as follows e Files in the workspace are created updated and deleted as determined by your changes e Write permission is enabled when you edit a file and disabled when you submit your changes The state of your client workspace is tracked and managed by the Perforce server To avoid conflicts with the file management that is performed by the server do not manually change read only permission settings on files You can verify that the state of the client workspace corresponds to the server s record of that state For details refer to Technote 2 on the Perforce web site http www perforce com perforce technotes note002 html Files in the workspace that you have not put under Perforce control are ignored by Perforce
120. s flag The following table lists some useful changelist reporting commands To list Use this command Files in a pending changelist p4 opened c changenum Files submitted and jobs fixed by a particular p4 describe changenum changelist including diffs Files submitted and jobs fixed by a particular p4 describe s changenum changelist suppressing diffs Files and jobs affected by a particular changelist p4 describe dc changenum passing the context diff flag to the underlying diff program The state of particular files at a particular p4 files filespec changenum changelist regardless of whether these files were affected by the changelist For more commands that report on jobs see Job reporting on page 95 Label reporting To display information about labels issue the p4 labels command The following table lists some useful label reporting commands To list Use this command All labels with creation date and owner p4 labels All labels containing a specific file revision or range p4 labels file revrange Files tagged with a specified label p4 files labelname A preview of the results of syncing to a label p4 sync n labelname 94 Perforce 2006 2 P4 User s Guide Chapter 8 Scripting and Reporting Branch and integration reporting The following table lists commonly used commands for branch and integration reporting To list All branch specifications Files in a specified branch The revisions
121. s not allowed Last job number 1 By default Perforce assigns job names using a numbering scheme jobnnnnnn Perforce 2006 2 P4 User s Guide 81 Chapter 7 Defect Tracking Field Name Description Default Status e open job has not yet been fixed open e closed job has been completed e suspended job is not currently being worked on User The user to whom the job is assigned usually the Perforce user name person assigned to fix this particular problem of the job creator Date The date the job was last modified Updated by the Perforce server when you save the job Description Describes the work being requested forexample None You must a bug description or request for enhancement enter a description To edit existing jobs specify the job name when you issue the p4 job command p4 job jobname Enter your changes in the job form save the form and exit To delete a job issue the p4 job d jobname command Searching jobs To search Perforce jobs issue the p4 jobs e jobviewcommand where jobview specifies search expressions described in the following sections For more details issue the p4 help jobview command Searching job text You can use the expression word1 word2 wordN to find jobs that contain all of word1 through woran in any field excluding date fields Use single quotes on UNIX and double quotes on Windows When searching jobs note the following restrictions e When you specify
122. s of file txt present only in revision 1 The last line of output shows that the line added in revision 2 is still present in revision 3 You can combine the a and c options to display all lines in the file and the changelist numbers rather than the revision numbers at which the lines existed Monitoring changes to files To track changes to files as they occur you can use the Perforce change review daemon which enables Perforce users to specify files and directories of interest and receive email when a changelist that affects the specified files is submitted For details about administering the review daemon refer to the Perforce System Administrator s Guide and to the description of the p4 review command in the Perforce Command Reference The following table lists commands that display information about the status of files changelists and users These commands are often used in review daemons To list Use this command The users who review specified files p4 reviews filespec The users who review files in a specified changelist p4 reviews c changenum A specified user s email address p4 users username 92 Perforce 2006 2 P4 User s Guide Chapter 8 Scripting and Reporting Changelist reporting The p4 changes command lists changelists that meet search criteria and the p4 describe command lists the files and jobs associated with a specified changelist These commands are described below Listing changelists
123. se of the share option is for users of Windows workstations who mount their UNIX home directories as network drives if you sync files from UNIX but edit the files on a Windows machine the share option eliminates problems caused by Windows based editors that insert carriage returns in text files For detailed information about how Perforce uses the line ending settings see Tech Note 63 on the Perforce web site http www perforce com perforce technotes note063 html Deleting client workspace specifications To delete a client workspace specification issue the p4 client d clientname command Deleting a client specification removes the Perforce server s record of the workspace but does not remove files from the workspace or the depot When you delete a workspace specification 1 Revert or submit any pending changelists that have been opened from the workspace 2 Delete existing files from a client workspace p4 sync none optional 3 Delete the workspace specification If you delete the workspace specification before you delete files in the workspace you can delete workspace files using your operating system s file deletion command 32 Perforce 2006 2 P4 User s Guide Chapter 2 Configuring P4 Security For security purposes your Perforce administrator can configure the Perforce server to require passwords and to impose a connection time limit The following sections provide details Pas
124. sesesneteeseens 86 Manually linking jobs to changelists ccccsesesscssseseeceeeeeceseseneseeseeees 86 Chapter8 Scripting and Reporting eee eee ceeeeeeeeeeees 87 Using p4 annotate to display changes to a file eee eeeeeeeees 91 Sample shell script showing parsing of p4 fstat command output 98 10 Perforce 2006 2 P4 User s Guide List of Examples Appendix At GIOSSATY cinia aeise avin 99 Appendix B Perforce File Types iadcsrcicienvsetecnae a cataeternce tienes 109 TERO LED EEE E 115 Perforce 2006 2 P4 User s Guide 11 List of Examples 12 Perforce 2006 2 P4 User s Guide Preface About This Manual This guide tells you how to use the Perforce Command Line Client p4 If you re new to SCM software configuration management you don t know basic Perforce concepts or you ve never used Perforce before read Introducing Perforce before reading this guide This guide assumes a good basic understanding of SCM Command line versus GUIs Perforce provides many client applications that enable you to manage your files including the Perforce Command Line Client GUIs such as P4V and plug ins The Perforce Command Line Client enables you to script and to perform administrative tasks that are not supported by Perforce GUIs Getting started with Perforce If this is your first time working with Perforce here s how to get started 1 Read Introducing Perforce to learn the basics At a min
125. single word A block of text entered on the lines beneath the field name A single line of text entered on the same line as the field name One of a set of values For example job status can be open suspended closed A date and optionally a time For example 2005 07 15 13 21 40 Notes The equality operator matches the value in the word field exactly The relational operators perform comparisons in ASCII order The equality operator matches the job if the value is found anywhere in the specified field The relational operators are of limited use here because they ll match the job if any word in the specified field matches the provided value For example if ajob has a text field ShortDescription that contains only the phrase gui bug and the expression is ShortDesc lt filter the job will match the expression because bug lt filter Same as text The equality operator matches a job if the value in the field is the specified word Relational operators perform comparisons in ASCII order Dates are matched chronologically If a time is not specified the operators lt and gt match the whole day 84 Perforce 2006 2 P4 User s Guide Chapter 7 Defect Tracking If you re not sure of a field s type issue the p4 jobspec o command which displays your job specification The field called Fields lists the job fields names and data types Searching date fields To search date f
126. src command c 10 integrate from depot dev main jam command c 97 The file has been scheduled for resolve He types p4 resolve and the standard merge dialog appears on his screen depot release jam 1 0 src command c merging depot dev main jam command c 97 Diff chunks 0 yours 1 theirs 0 both 0 conflicting Accept a Edit e Diff d Merge m Skip s Help at He resolves the conflict When he s done the result file overwrites the file in his branched client workspace the file must then be submitted to the depot Integrating between unrelated files If the target file was not branched from the source there is no base common ancestor revision To integrate between unrelated files specify the i flag Perforce uses the first most recently added revision of the source file as its base revision This operation is referred to as a baseless merge Integrating specific file revisions By default the integrate command integrates all the revisions following the last integrated source revision into the target To avoid having to manually delete unwanted revisions from the merge file while editing you can specify a range of revisions to be integrated The base file is the common ancestor Example Integrating specific file revisions Bruno has made two bug fixes to depot dev main jam scan c in the main codeline and Earl wants to integrate the change into the release 1 0 branch Although scan c has gone through 20 r
127. swords Depending on the security level at which your Perforce server is running you might need to log in to Perforce before you can run Perforce commands Without passwords any user can assume the identity of any other Perforce user by setting P4USER to a different user name or specifying the u flag when you issue a p4 command To improve security use passwords Setting passwords To create a password for your Perforce user issue the p4 passwd command Your system administrator can configure your Perforce server to require strong passwords A password is considered strong if it is at least eight characters long and contains at least two of the following e Uppercase letters e Lowercase letters e Non alphabetic characters For example alb2c3d4 A1B2C3D4 aBcDeFgH are strong passwords To reset or remove a password without knowing the password Perforce superuser privilege is required If you need to have your password reset contact your Perforce administrator See the Perforce System Administrator s Guide for details Using your password If your Perforce user has a password set you must use it when you issue p4 commands To use the password you can e Log into the server by issuing the p4 login command before issuing other commands e Set P4PASSWD to your password either in the environment or in a config file e Specify the P password flag when you issue p4 commands for instance p4 P mypassword submit e Wind
128. t exceed the number for which you have paid A protection level that enables you to run reporting commands but prevents access to the contents of files Any depot located on the current Perforce server The operating system specific syntax for specifying a filename A Perforce file lock prevents other clients from submitting the locked file Files are unlocked with the p4 unlock command or submitting the changelist that contains the locked file Perforce 2006 2 P4 User s Guide 103 Appendix A Glossary Term log mapping MD5 checksum merge merge file metadata modification time nonexistent revision numbered changelist open file owner p4 p4d P4Diff Definition Error output from the Perforce server By default error output is written to standard error To specify a log file set the P4LOG environment variable or use the p4d L flag when starting the server A single line in a view consisting of a left side and a right side that specify the correspondences between files in the depot and files in a client label or branch The left side specifies the depot files and the right side specifies the client files See also client workspace view branch view label view The method used by Perforce to verify the integrity of archived files The process of combining the contents of two conflicting file revisions into a single file A file generated by Perforce from two conflicting file revis
129. t were fixed by changelists issue the p4 fixes command The following table lists useful commands for reporting fixes To list Use this command all changelists linked to jobs p4 fixes all changelists linked to a specified job p4 fixes j jobname all jobs linked to a specified changelist p4 fixes c changenum all fixes associated with specified files p4 fixes filespec all fixes associated with specified files including p4 fixes i filespec changelists that contain files that were later integrated with the specified files System configuration reporting The commands described in this section display Perforce users client workspaces and depots Displaying users The p4 users command displays the user name an email address the user s real name and the date that Perforce was last accessed by that user in the following format bruno lt bruno bruno_ws gt bruno accessed 2005 03 07 dai lt dai p4demo com gt Dai Sato accessed 2005 03 04 earl lt earl p4demo com gt Earl Ashby accessed 2005 03 07 gale lt gale p4demo com gt Gale Beal accessed 2001 06 03 hera lt hera p4demo com gt Hera Otis accessed 2001 10 03 ines lt ines p4demo com gt Ines Rios accessed 2005 02 02 jack lt jack submariner gt jack accessed 2005 03 02 mei lt mei p4demo com gt Mei Chang accessed 2001 11 14 ona lt ona p4demo com gt Ona Birch accessed 2001 10 23 quinn lt quinn p4demo com gt Quinn Cass accessed 2005 01 27
130. te of the entire depot at changelist 126 numbered changelists are explained in Managing changelists on page 50 The revision in a file labelname specified label Example p4 sync depot dev main jam Jambase beta The revision of Jambase in the label called beta For details about labels refer to Using labels on page 74 The revision last synced file clientname to a specified client Example workspa pace p4 sync depot dev main jam Jambase bruno_ws The revision of Jambase last synced to client workspace bruno _ws 40 Perforce 2006 2 P4 User s Guide Chapter 3 Issuing P4 Commands Revision needed Remove the file The most recent version of the file The revision last synced to your workspace The head revision of the file in the depot on the specified date The head revision of the file in the depot on the specified date at the specified time Syntax and example filetnone Example p4 sync depot dev main jam Jambase none Removes Jambase from the client workspace file thead Example p4 sync depot dev main jam Jambase head Same as p4 sync depot dev main jam Jambase If you omit the revision specifier the head revision is synced filethave Example p4 files depot dev main jam Jambase have file date Example p4 sync depot dev main jam Jambase 2005 05 18 The head revision of Jambase as of midnight May 18 2005 file date time Example p4 sync depot dev main ja
131. the two conflicting file versions are presented and you can choose between them or edit the one in your workspace before submitting the changelist Your theirs base and merge files The p4 resolve command uses the following terms during the merge process File revision Description yours The revision of the file in your client workspace containing changes you made theirs The revision in the depot edited by another user that yours conflicts with Usually the head revision but you can schedule a resolve with another revision using p4 sync base The file revision in the depot that yours and theirs were edited from the closest common ancestor file 58 Perforce 2006 2 P4 User s Guide Chapter 5 Resolving Conflicts File revision Description merge The file generated by Perforce from theirs yours and base result The final file resulting from the resolve process Options for resolving conflicts To specify how a conflict is to be resolved you issue the p4 resolve command which displays a dialog for each file scheduled for resolve The dialog describes the differences between the file you changed and the conflicting revision For example p4 resolve depot dev main jam command c c bruno_ws dev main jam command c merging depot dev main jam command c 9 Diff chunks 4 yours 2 theirs 1 both 1 conflicting Accept a Edit e Diff d Merge m Skip s Help e The differences between each
132. ting your changes To update the depot with the changes that you made to the client workspace while working detached use the p4 diff flags described above with the x flag as shown in the following examples The x flag directs the p4 edit command to accept arguments from the pipe or a file Perforce 2006 2 P4 User s Guide 55 Chapter 4 Managing Files and Changelists To open changed files for edit after working detached issue the following command p4 diff se p4 x edit To delete files from the depot that were removed from the client workspace issue the following command p4 diff sd p4 x delete Open any new files for add then submit the changelist containing your additions changes and deletions 56 Perforce 2006 2 P4 User s Guide chapters Resolving Conflicts This chapter tells you how to work in a team development environment where multiple users who are working on the same files might need to reconcile their changes In settings where multiple users are working on the same set of files conflicts can occur Perforce enables your team to work on the same files simultaneously and resolve any conflicts that arise For example conflicts occur if two users change the same file the primary concern in team settings or you edit a previous revision of a file rather than the head revision When you attempt to submit a file that conflicts with the head revision in the depot Perforce requires you to resolve the
133. to do is substantially reduced 64 Perforce 2006 2 P4 User s Guide Chapter 5 Resolving Conflicts Resolve reporting commands The following reporting commands are helpful when you are resolving file conflicts Command p4 diff filenames p4 diff2 fileil file2 p4 syne n filenames p4 resolved Locking files Meaning Diffs the file revision in the workspace with the last revision you synced to display changes you have made Diffs two depot files The specified files can be any two file revisions and different files When you diff depot files the Perforce server uses its own diff program not the diff program configured by setting P4DIFF Previews the specified sync listing which files have conflicts and need to be resolved Reports files that have been resolved but not yet submitted After you open a file you can lock it to prevent other users from submitting it before you do The benefit of locking a file is that conflicts are prevented but when you lock a file you might prevent other team members from proceeding with their work on that file Preventing multiple resolves by locking files Without file locking there is no guarantee that the resolve process ever ends The following scenario demonstrates the problem 1 Bruno opens file for edit Gale opens the same file in her client for edit Bruno and Gale both edit their client workspace versions of the file 2 3 4 Bruno submits
134. ull list of global options commands and command specific flags see the Perforce Command Reference Specifying filenames on the command line Much of your everyday use of Perforce consists of managing files You can specify filenames in p4 commands as follows Local syntax the file s name as specified in your local shell or operating system Filenames can be specified using an absolute path for example c bruno_ws dev main jam fileos2 c ora path that is relative to the current directory for example jam fileos2 c Relative components or cannot be specified following fixed components For example mysub mydir here file c is invalid because the dot follows the fixed mysub mydir components Depot syntax use the following format depotname file_path specifying the pathname of the file relative to the depot root directory Separate the components of the path using forward slashes For example depot dev main jam Jambase e Client syntax use the following format workspacename file_path specifying the pathname of the file relative to the client root directory Separate the components of the path using forward slashes For example ona agave dev main jam Jambase 36 Perforce 2006 2 P4 User s Guide Chapter 3 Issuing P4 Commands Example Using different syntaxes to refer to the same file Local syntax p4 delete c bruno_ws dev main jam Jambase Depot syntax p4 delete depot dev main
135. ut do not affect the state of the server Perforce file type assigned to Macintosh files that are stored using AppleSingle format permitting the data fork and resource fork to be stored as a single file Grouping operations affecting a number of files in a single transaction If all operations in the transaction succeed all the files are updated If any operation in the transaction fails none of the files are updated The file revision on which two newer conflicting file revisions are based Perforce file type assigned to a nontext file By default the contents of each revision are stored in full and the file is stored in compressed format noun A codeline created by copying another codeline as opposed to a codeline that was created by adding original files branch is often used as a synonym for branch view verb To create a codeline branch with p4 integrate The Perforce form you use to modify a branch Specifies how a branch is to be created by defining the location of the original codeline and the branch The branch specification is used by the integration process to create and update branches Client workspaces labels and branch specifications cannot share the same name A specification of the branching relationship between two codelines in the depot Each branch view has a unique name and defines how files are mapped from the originating codeline to the target codeline See branch Perforce 2006 2 P4 User s Gu
136. v main docs manuals gt p4 add txt depot dev main docs manuals installnotes txt 1 opened for add depot dev main docs manuals requirements txt 1 opened for add Now the files he wants to add to the depot are open in his default changelist The files are stored in the depot when the changelist is submitted Perforce 2006 2 P4 User s Guide 47 Chapter 4 Managing Files and Changelists Example Submitting a changelist to the depot Bruno is ready to add his files to the depot He types p4 submit and sees the following form in a standard text editor Change new Client bruno_ws User bruno Status new Description lt enter description here gt Files depot dev main docs manuals installnotes txt add depot dev main docs manuals requirements txt add Bruno changes the contents of the Description field to describe his file updates When he s done he saves the form and exits the editor and the new files are added to the depot You must enter a description in the Description field You can delete lines from the Files field Any files deleted from this list are moved to the next default changelist and are listed the next time you submit the default changelist If you are adding a file to a directory that does not exist in the depot the depot directory is created when you successfully submit the changelist Changing files To open a file for edit issue the p4 edit command When you open a
137. ver when you regain access to the server The following method for working detached assumes that you work on files in your client workspace or update the workspace with your additions changes and deletions before you update the depot For platform specific details about working detached see Tech Note 2 on the Perforce web site http www perforce com perforce technotes note002 html To work detached 1 Work on files without issuing p4 commands Instead use operating system commands to change the permissions on files 2 After the network connection is reestablished use p4 diff to find all files in your workspace that have changed You need to track new files manually 3 Update the depot by opening files for add edit or delete as required and submitting the resulting changelists The following sections provide more details Finding changed files To detect changed files issue the p4 diff command The following flags enable you to locate files that you changed or deleted manually without opening them for edit or delete in Perforce Flag Description p4 diff se Lists workspace files that are not open for edit but have been changed since being synced To update the depot with these files open them for edit and submit them p4 diff sd Lists files that are not open for delete but have been manually deleted from the workspace To update the depot with these file deletions open them for delete and submit them Submit
138. y one user at a time See the Perforce Command Reference for details The difference between p4 lock and 1 is that p4 lock allows anyone to open a file for edit but only the person who locked the file can submit it By contrast a file of type 1 prevents more than one user from opening the file 66 Perforce 2006 2 P4 User s Guide Chapter 6 Codelines and Branching This chapter describes the tasks required to maintain groups of files in your depot The following specific issues are addressed e Depot directory structure and how to best organize your repository e Moving files and file changes among codeline and project directories e Identifying specific sets of files using either labels or changelists This chapter focuses on maintaining a software code base but many of the tasks are relevant to managing other groups of files such as a web site For advice about best practices see the white papers on the Perforce web site Basic terminology To enable you to understand the following sections here are definitions of some relevant terms as they are used in Perforce Term branch integrate merge resolve Definition noun A set of related files created by copying files as opposed to adding files A group of related files is often referred to as a codeline verb To create a branch To create new files from existing files preserving their ancestry branching or to propagate changes from one set o
139. ying mappings ksn eei e ye a ea a a aa E Ee A ERES 24 Using wildcards in client views sss ssesssessesissseseessisssesissienessseneeseenesnness 25 Mapping files to different locations in the Workspace cccceeeeees 26 Mapping files to different filenames ccccssesese ese neseseeeeeseeceeeees 26 Excluding files and directories ccc cece cece nseseseeeeseseesceeseseeeees 27 Mapping Windows workspaces across multiple drives 0cccc 28 Perforce 2006 2 P4 User s Guide Table of Contents Using the same workspace from different machines cceeeeees 28 Changing the location of your workspace c cecccseetsseeteteseetecesesesesteneneseens 29 Configuring Workspace Options cccccccce eset e cee eseecececseenseececesensnesesenens 30 Configuring submit Options c ccc cece cece eseecececeessesesssseeneteesenees 31 Configuring line ending settingS cccccccs secs cece cseeeesesseeesetssseenees 32 Deleting client workspace specifications csccsecesseseseseeceteseeesteeseeeens 32 DOCUTILV i ie Misia rita aii iise ea ae aie a E beaten selina eens 33 PASS W OLS is ciiccs sheet occa teehee fe Sb een Tess pohn Cees enn boa es Mice Meade A esses 33 Comme ction time LiIMits cccccccceecscescecsecssecsecseesecseseeceseeeeseseeeseceesseenaes 34 Chapter3 Issuing P4 CommandS cceceeceeesees cesses seeeeeseees 35 Command line Syntax cece cece ceesceeeeeceessecseec
140. you omit the revision number information for the head revision is displayed The output of p4 files includes deleted revisions The following table lists some common uses of the p4 files command To display the status of Use this command All files in the depot regardless of your client p4 files depot workspace view For depots containing numerous files you can maximize performance by avoiding commands that refer to the entire depot depot when not required For best performance specify only the directories and files of interest The files currently synced to the specified client p4 files clientname workspace The files mapped by your client workspace view p4 files clientname Specified files in the current working directory p4 files filespec A specified file revision p4 files filespec rev Specified files at the time a changelist was p4 files filespec changenum submitted regardless of whether the files were submitted in the changelist Files tagged with a specified label p4 files filespec labelname Perforce 2006 2 P4 User s Guide 89 Chapter 8 Scripting and Reporting Displaying file revision history To display the revision history of a file issue the p4 filelog filespec command The following example shows how p4 filelog displays revision history p4 filelog depot dev main jam jam c depot dev main jam jam c 35 change 627 edit on 2001 11 13 by earl earl dev yew text Handle
Download Pdf Manuals
Related Search
Related Contents
NGS Pit-Lane Bretford TC15FF-BK computer desk four de refusion convection forcee ft02 Ditec Smart Plus I N S T A L A C I O N PDFファイル Lotus Notes 5, 6.0 and 6.5 Step-by-Step Installation With FACSys Copyright © All rights reserved.
Failed to retrieve file