P4IGNORE

Specify a list of files that contain lists of rules for ignoring files when adding files to the depot and reconciling workspaces.

Usage Notes

Used by Client? Used by Server? Command-Line Alternative Can be set in P4CONFIG file?

Yes

No

None

Yes

Value if not Explicitly Set

Operating System Value

All

none

See also Default ignored paths in the p4 ignores topic.

Examples

.p4ignore
.p4ignore;$home/.myp4ignore

Notes

Important

Although P4IGNORE automatically includes the P4CONFIG and P4ROOT filenames, it does not automatically include the P4IGNORE filename. If you want to have a private P4IGNORE file that is not under source control, include your private P4IGNORE file in the P4IGNORE file list. Otherwise, an operation like p4 clean will remove all the P4IGNORE files.

For examples of the types of files typically included in such a list of files, see Ignoring groups of files when adding in Helix Core Command-Line (P4) Guide.

Note

You may use $home to set environment variables. For example

P4IGNORE=$home/myignorefile

The syntax for the contents of a P4IGNORE file is not the same as Helix Server syntax. Instead, it is similar to that used by other versioning systems:

  • Rules are specified using local filepath syntax. Unix style paths will work on Windows for cross platform file support.
  • A # character at the beginning of a line denotes a comment.

    You can escape the # comment character with a backslash (\). This allows filenames beginning with # to be ignored.

  • A ! character at the beginning of a line line excludes the file specification. These exclusions override rules defined above it in the P4IGNORE file, but may be overridden by later rules.
  • A / (or \ on Windows) character at the beginning of a line causes the file specification to be considered relative to the P4IGNORE file. This is useful when the rule must apply to files at particular depots of the directory tree.
  • A / (or \ on Windows) character at the end of a line causes the file specification to only match directories, and not files of the same name.
  • The * wildcard matches substrings. Like the Helix Server wildcard equivalent, it does not match path separators; however, if it is not used as part of a path, the directory scanning nature of the rule may make it appear to perform like the Perforce "..." wildcard.
  • The ** wildcard matches substrings including path separators. It is equivalent to the Helix Server "..." wildcard, which is not permitted.

For example:

# Ignore .p4ignore files
.p4ignore

# Ignore object files, shared libraries, executables
*.dll
*.so
*.exe
*.o

# Ignore all HTML files except the readme file
*.html
!readme.html

# Ignore the bin directory
bin/

# Ignore the build.properties file in this directory
/build.properties

# Ignore all text files in test directories
test/**.txt

The first match is used when figuring out what to ignore.

Use the p4 ignores command to get information about why a file is being ignored during add and reconcile operations. For example, the following command, lets you know which line of the P4IGNORE file is being used to ignore a file.

$ p4 ignores -v -i mypath