Fetching, pushing and changelists

When changelists are added to the personal server during a fetch or to a shared server during a push they are given new change numbers but they retain the same description, user, date, type, workspace and set of files.

When the files are added to the personal server during a fetch or to the shared server during a push, they are kept in their same changelists, as new revisions starting after the current head. The new revisions retain the same revision number, file type, action, date, timestamp, digest, and file size.

Although the changelists are new submitted changelists in the personal server for a fetch and in the shared server for a push, none of the submit triggers are run in the personal server or the shared server. For more information about submit triggers, see the "Scripting Perforce" chapter in the Perforce Server Administrator’s Guide: Fundamentals.

If a particular changelist includes some files that match the filespec or stream restriction, and other files that do not, then only the matching files are included in the fetch or push. Note that if a remote spec is also provided, only the files that match the restriction and are mapped by the remote spec are included in the fetch or push. In other words, not all files in the changelist will necessarily be fetched or pushed. For example, consider the following DepotMap in a remote spec:

//stream/main/p4/... //depot/main/p4/...

Suppose you have a changelist with the following files:

//stream/main/p4/foo
//stream/jam/bar

Only //stream/main/p4/foo will be pushed or fetched, as it matches the remote spec mapping.