Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 Distributed Versioning Documentation | 2025.1

# Fetching, pushing, and changelists

When changelists are added to the target server during a fetch or a push:

- they retain the same description, user, date, type, workspace, and set of files

- by default, they are given new change numbers but you can retain the existing change numbers by setting the `dm.fetch.preservechangenumbers` configurable.

When the files are added to the target server during a fetch or 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 target server for a fetch or a push, none of the submit triggers are run in the target server. For more information about submit triggers, see "Using triggers to customize performance" chapter in the P4 Server Administration Documentation.

## Only matching files are included in the fetch or push

If a particular changelist includes some files that match the filespec or stream restriction, and other files that do not, only the matching files are included in the fetch or push.

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.

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 because it matches the remote spec mapping.

When changes are pushed or fetched, the Type: field for changes ignores the setting of the defaultChangeType configurable on the target server.

In this section:

Your search for returned results