Learning Perforce SCM

Learning Perforce SCM
eBook: $26.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $71.98    Print cover: $44.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Master the use of P4V – the Perforce Visual Client
  • Get into the Perforce mindset for seamless use in your daily work
  • Grasp key concepts and learn how to apply them for proper configuration management
  • Clear incremental approach from fundamentals to more advanced application of principles
  • Step-by-step instructions with pointers and ideas for self-exploration and a sample repository to illustrate the ideas and guidance in the book
  • Based on the authors’ experience training thousands of users around the world

Book Details

Language : English
Paperback : 254 pages [ 235mm x 191mm ]
Release Date : September 2013
ISBN : 1849687641
ISBN 13 : 9781849687645
Author(s) : Neal Ralph Firth, Robert Cowham
Topics and Technologies : All Books, Application Development, Enterprise

Table of Contents

Chapter 1: Getting Started with Perforce
Chapter 2: The P4V GUI
Chapter 3: Basic Functions
Chapter 4: Changelists
Chapter 5: File Information
Chapter 6: Managing Workspaces
Chapter 7: Dealing with Conflicts
Chapter 8: Classic Branching and Merging
Chapter 9: Perforce Streams
Chapter 10: The P4V User Experience
Appendix A: A Demo Server
Appendix B: Command Line
  • Chapter 1: Getting Started with Perforce
    • Version control
    • Software configuration management
    • Centralized and distributed version control
    • Understanding Perforce clients and servers
      • Servers
      • Client programs
    • Introducing the core Perforce concepts
      • Depots
      • Workspaces
      • Changelists
    • Dealing with installation
      • Client and server version compatibility
      • Perforce platforms
      • Perforce interfaces
    • The Perforce mindset
    • Following along
    • Summary
    • Chapter 2: The P4V GUI
      • Understanding the P4V display
      • Accessing P4V actions
        • Command menus
        • Shortcut key combinations
        • The Toolbar
        • The Address bar
      • Exploring the tree pane
        • The depot tree tab
        • The workspace tree tab
      • Exploring the view pane
        • Closing, undocking, or docking information views
        • Viewing tabs with detail panes
        • Filtering view tabs
        • Right (context) click menus
      • Reviewing activities
        • The Log tab
        • The Dashboard tab
      • Summary
      • Chapter 3: Basic Functions
        • Getting something to work with
          • Connecting (log in)
          • Passwords
          • You're done (log off)
          • Specifying a workspace
            • Creating an initial workspace
          • Updating a workspace – populating it with files
          • Populating a workspace from the depot tab
          • Workstation files
        • Basic SCM actions
          • Selecting a changelist
          • Modifying existing files (check out)
          • Adding files (mark for add)
          • Deleting files (mark for delete)
          • Reverting an action
          • Which files are you working on?
          • Identifying local changes (diff against have revision)
          • Submit – updating the server
        • Fast access file information
          • Icons
          • Versions and type
          • File status tool tips
        • Getting help
          • The help menu
          • Help buttons
          • The Perforce website
        • Summary
        • Chapter 4: Changelists
          • Creating useful changelists
            • Associating files with a changelist
            • Effective descriptions
            • Updating descriptions for submitted changelists
          • Using changelists for an organization
            • The default changelist
            • Other pending changelists
            • The select pending changelist dialog
            • Moving files between pending changelists
            • Dynamic organization at submit
            • Limits to multiple pending changelists
          • File management at submit
            • Handling unmodified files
            • Making multiple changes to the same set of files
            • Failed submits
          • Changelist numbering
            • How submitted changelists are numbered
            • Implications for changelist numbering
            • Deleting pending changelists
          • Shelving
            • Shelving files in a changelist
            • Unshelving files
            • Deleting shelved files
            • Finding shelved files
            • Modifying shelved files
            • Managing shelved files
          • Summary
          • Chapter 5: File Information
            • File properties
              • Customizing the tabular display
              • Explaining the # characters
              • Showing deleted files
              • Type and filetype
            • Understanding file versions and history
              • Getting different revisions of files
              • How file revisions relate to changelists
              • Potentially surprising get revision results!
              • Changelists and folders
              • Get revision options
              • Referencing a specific date and/or time
              • Referencing a label
              • Files in another workspace
            • Depot paths
            • Finding files – an introduction to wildcards
            • Showing history
              • File history
              • Folder history
            • Showing differences between file revisions
              • The P4V diff tool – P4Merge
                • Navigating between diffs
                • More P4Merge options
            • Showing folder/directory differences
              • The folder diff tool – recursive folder differences
                • Filtering the folder diff view
                • Showing individual file diffs
            • Other options for comparing files or folders
              • Showing local changes for edited files
              • Ctrl + D as a useful shortcut for diffing
              • Diff against for files
              • Using Diff against for different files
              • Diff against for folders
            • P4V time-lapse view
            • Summary
            • Chapter 6: Managing Workspaces
              • What does workspace mean?
                • Actions within a workspace context
                • A workspace – the specification
                • Classic workspaces versus stream workspaces
              • Managing workspaces
                • Switching workspaces
                • Creating workspaces by copying
                • Editing workspaces
                • Deleting workspaces
              • Specifying a workspace
                • Workspace names
                • Workspace location
                • Relating repository files to workspace files
                  • A workspace specification example
                • What the ... (ellipsis) notation means
                • How to exclude files
                • Can I reference more than one depot in a workspace?
                • The potential of workspace mappings
                • Population characteristics
                • Line endings
                • Submit options
                • Perforce filetypes
              • Common best practice questions
                • Changelists and open files
                • More than one workspace
                • Sharing workspaces
              • Summary
              • Chapter 7: Dealing with Conflicts
                • The origin of a conflict
                  • Working with conflicts
                  • Conflicts and submit
                  • Base, Source, and Target: a 3-way merge
                  • An introduction to the P4Merge tool
                  • Differences from base
                  • Dealing with content conflicts
                    • Editing in the merge pane
                    • File content during merge
                    • Overwriting or discarding changes on purpose
                  • Other P4Merge options
                  • What if you miss a conflict?
                  • Delaying resolution
                  • Automatic resolution
                • Avoiding conflicts
                  • Priority modifications – locking files
                  • Files that can't be merged
                • Summary
                • Chapter 8: Classic Branching and Merging
                  • Understanding branching
                    • Why you should branch
                    • Using classic branching in Perforce
                  • The basic branching pattern
                    • Viewing classic branches in Perforce
                  • Creating our first branch
                    • An introduction to Options
                  • Propagating changes between branches
                    • Resolving our merge conflicts
                    • Perforce only propagates changes once
                    • The meaning of integrate in merge/integrate
                  • Automatic resolve
                  • More on P4V Revision Graph
                    • Diffing and other actions
                    • Compressing the history
                  • Selectively propagating changes
                  • Using branch mappings
                    • The power of branch mappings
                    • Merging – the gory details
                    • Merges and file content
                    • How selective merges are done and tracked
                    • Dealing with renames and deletes
                      • Dealing with deletes
                      • Using branch mappings to ignore deletes
                    • Dealing with renames
                      • When renames cause complications
                  • Other branching patterns
                    • Characteristics of a branching pattern
                    • The mainline pattern – why it is better than alternatives
                    • Release branches
                    • The integration pattern
                  • OS copy is not a branching activity
                  • Summary
                  • Chapter 9: Perforce Streams
                    • Understanding streams
                      • The primary stream models
                      • Branch stability
                        • The merge-down, copy-up paradigm
                    • Creating a stream
                      • Stream workspaces
                      • Moving your workspace between streams
                      • Communicating the status of changes to be propagated
                      • Merging changes from the Mainline
                      • Copying our changes to the Mainline
                    • Migrating from classic branches to streams
                      • Creating a new Mainline stream
                      • Populating our Mainline stream
                    • Other standard types of stream
                      • Release streams
                        • Change propagation for Release streams
                      • Virtual streams
                      • Task streams
                    • Managing streams
                      • Applying the stream filter
                      • Mapping stream files
                        • Paths/access levels
                        • Remapping of files
                        • Ignoring files
                      • Re-parenting streams
                        • Propagating changes across the stream hierarchy
                        • Moving groups of development streams
                        • Directly editing versus drag-and-drop
                    • How streams handle renames
                    • Summary
                      • Appendix A: A Demo Server
                        • Examples in the book
                        • Sample repository
                        • Platform specific executables
                        • Install it
                          • The contents of the zip file
                          • Detailed installation instructions for Windows
                          • Detailed installation instructions for non-Windows operating systems
                          • Windows privileges and details
                        • Appendix B: Command Line
                          • What is P4V using?
                            • The Perforce API
                          • Command-line help is always available
                            • P4 Command Reference Guide
                              • Setting environment variables
                            • P4 help
                          • Basic notes on using commands
                            • Command options
                            • Command input and output
                              • Logging in – an interactive command
                              • Action commands
                              • Reporting commands
                              • An editor form command – submitting a changelist
                          • Command summary
                            • Tree reporting commands
                            • File information – chapter 2
                            • Basic operations – chapter 3
                            • Changelists – chapter 4
                            • Detailed file information – chapter 5
                            • Workspaces – chapter 6
                            • Dealing with conflicts – chapter 7
                            • Branching – chapter 8
                            • Streams – chapter 9
                          • Some basic best practices
                            • Scripting Perforce
                          • Summary

                          Neal Ralph Firth

                          Neal Ralph Firth assumed both individual contributor and management roles during the design, test, and development of both hardware and software used in stand-alone, embedded system, and real-time environments in his early career. Since the late 90's he has focused on source control and the automation of test and build systems. He first encountered Perforce in its early days while investigating source control solutions for one of his first consulting customers. He subsequently became a Perforce Consulting Partner and a Perforce Certified Trainer as soon as those certifications were available to him. He has consulted for hundreds of companies and organizations, and trained thousands of Perforce users and administrators across the US and Canada. His career has had a focus on automation and the tools that make people more productive. His early work with hardware microcode simulation was chronicled as part of Tracy Kidder's Pulitzer prize winning book "The Soul of a New Machine". He has presented papers and has spoken at conferences in the US, the United Kingdom, and Germany. He has published articles on hardware, software, and business topics. Hardware topics include peer reviewed IEEE articles on microcode. Software articles have dealt with the application of automated processes with a focus on legacy tool integrations and tool migrations. As the principal provider of Perforce related services for VIZIM Worldwide, Neal's focus is on the migration of information between SCM products and integrations with legacy systems. He developed the framework for VIZIM's full history migration tool sets and authored the ClearCase and VSS-specific versions of those tools. He has created many Perforce-specific integrations for features such as the Perforce Defect Tracking gateway and IDEs such as JDeveloper.

                          Robert Cowham

                          Robert Cowham is from a software development background with experience in roles from programming to testing and project management. He came across Perforce as a user in the early days of the company when there were only four employees. He subsequently became one of the two pre-qualified Perforce Consulting Partners, and became a Perforce Certified Trainer as soon as that program was implemented. Since then he has consulted for many companies and organizations, and trained thousands of users around the globe, from California to Japan, including giving training courses in German, French, and Italian. He has also written a number of integrations with Perforce. This includes P4OFC, which integrates with Microsoft Office, and is still provided as an officially-supported public download. APIs developed by him include P4COM, a COM based API for use on Windows, and P4Python which he subsequently handed over to Perforce to support. He has also written various full history migration tools for customers to get them into Perforce. He has long had an interest in all aspects of configuration management and was for several years a coauthor with Brad Appleton and Steve Berczuk of the Agile SCM column in the online CM Journal. He was Chair of the specialist group for Change, Configuration and Release Management of the British Computer Society for seven years, organizing many events and conferences, and is still active on the committee. He regularly speaks at industry events. As Services Director for Square Mile Systems, Robert now also works with configuration management of infrastructure and data centers, applying the same principles to the physical world. Robert has practiced the Japanese martial art of Aikido for over 20 years, and runs a dojo near his home in London. He has even managed to combine his interests with a well-received presentation on "Black belt SCM techniques," including physical demonstrations of the principles involved!

                          "It's wonderful to see a new book about Perforce, especially one written by Robert Cowham and Neal Firth. No one can teach Perforce better than these seasoned subject matter experts"
                                                                                                                                                      -          Laura Wingerd, author of Practical Perforce.

                          Code Downloads

                          Download the code and support files for this book.

                          Submit Errata

                          Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

                          Sample chapters

                          You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                          Frequently bought together

                          Learning Perforce SCM +    SAP HCM - A Complete Tutorial =
                          50% Off
                          the second eBook
                          Price for both: £28.05

                          Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                          What you will learn from this book

                          • Use Perforce to significantly reduce the overhead of working as part of a team
                          • Understand your codebase and its evolution over time through powerful reporting options
                          • Use classic branching and streams effectively
                          • Manage changelists efficiently
                          • Get to grips with the P4V GUI
                          • Use workspace features to solve common challenges with development patterns and environments
                          • Confidently deal with conflicts

                          In Detail

                          Learning Perforce SCM is a pragmatic how-to guide, explaining the key concepts and usage of Perforce. Based on the authors' experiences training thousands of users around the globe, it explains those key concepts in a clear, incremental manner, combining sound theory with the pragmatic application of principles.

                          Learning Perforce SCM provides practical knowledge which will transform you into confident and competent Perforce users in your day-to-day operations.

                          You'll start by learning how to use Perforce to track your day-to-day coding activities. Once a solid foundation is established you'll learn how to apply the data mining features to evaluate current and past activities. Then you'll learn how to configure Perforce so that it adapts to support your specific development needs. All the while you'll be learning how to deal with conflicts and use the tool to communicate with other team members. Finally, you'll learn about using branches and streams to provide seamless support for concurrent development. Along the way, pragmatic hints and tips will help you avoid issues and identify areas for further personal exploration.

                          "It's wonderful to see a new book about Perforce, especially one written by Robert Cowham and Neal Firth. No one can teach Perforce better than these seasoned subject matter experts"
                                                                                                                                                                                   -          Laura Wingerd, author of Practical Perforce.


                          "Learning Perforce SCM" is written in a friendly and practical style with a focus on getting you started with Perforce efficiently and effectively. The book provides plenty of examples and screenshots to guide you through the process of learning.

                          Who this book is for

                          Learning Perforce SCM is for anyone who wants to know how to adeptly manage software development activities using Perforce. Experience with other version control tools is a plus but is not required.

                          Code Download and Errata
                          Packt Anytime, Anywhere
                          Register Books
                          Print Upgrades
                          eBook Downloads
                          Video Support
                          Contact Us
                          Awards Voting Nominations Previous Winners
                          Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                          Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software