P4IGNORE
Specify a filename that contain lists of rules for ignoring files when adding client workspace files to the depot (p4 add) and when reconciling client workspaces (p4 reconcile).
Usage Notes
Each client machine can have its own rules, which apply to how the client interacts with the Helix Core Server.
Used by Client? | Used by Server? | Command-Line Alternative | Can be set in P4CONFIG file? |
---|---|---|---|
Yes |
No |
None |
Yes |
To see the rules for your client machine, use the p4 ignores -v
command.
Test your rules to ensure that they work as expected.
Default P4IGNORE FILES
Operating System | File Names | Note |
---|---|---|
All |
|
The |
The default file names do not appear in the output of p4 set because they are in place without setting P4IGNORE
.
Prerequisites for the default file names
The prerequisites for P4IGNORE
automatically looking for the default file names are an installation of:
-
the Helix Core Server 2023.2
-
a compatible version of a Helix Core client, such as the p4 client included with the 2023.2 Server or the 2023.4 P4V release
Prior to the 2023.2 release of Helix Core Server, no rule file name was set by default.
See also Default ignored paths in the p4 ignores topic.
Explicitly setting a list of files containing rules
You can explicitly set a list of files with rules. This means that the default of .p4ignore
and p4ignore.txt
do not apply. For example,
p4 set P4IGNORE=c:\project1\project1-rules.txt
where one file is specified and the default file names .p4ignore
and p4ignore.txt
do not apply,
or
p4 set P4IGNORE=.p4ignore;$home/.myp4ignore
which specifies the use of .p4ignore
and a secondary rule file.
Notes and examples
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
determine which line of the P4IGNORE
file is being used to ignore
a file: p4 ignores -v -i my-path
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. Consider the following.
Token | Syntax Example | Explanation |
---|---|---|
#
|
# Ignore the #example.html file |
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. |
|
# Ignore my private .p4ignore files so p4 clean does not remove them .p4ignore
|
Although |
!
|
# Ignore all HTML files except the readme file *.html !readme.html
|
A ! character at the beginning of a line excludes the file specification. These exclusions override rules defined above it in the |
/
|
# Ignore the bin directory bin/ |
A |
/
|
# Ignore the build.properties file in this directory /build.properties |
A |
*
|
# Ignore all object files, shared libraries, and executables *.dll *.so *.exe *.o |
The * wildcard matches substrings. Like the
Helix Server
wildcard equivalent, it does not match path separators. However, if the * wildcard
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. |
**
|
# Ignore all text files in test directories test/**.txt |
The ** wildcard matches substrings, including path
separators. It is equivalent to the
Helix Server
"... " wildcard, which is not permitted. |
Setting P4IGNORE with a relative path
You can set P4IGNORE
with a relative path. For example,
p4 set P4IGNORE=.p4ignore
or
p4 set P4IGNORE=p4ignore.txt
If the name of the rule file is set with a relative path, a file with that name can be at solely one location or in multiple directories. A rule applies to its directory and its subdirectories.
A rule in a subdirectory can prevent files from being added at that level. For example, the top-level rule might prevent .html files from being added, and a rule in a subdirectory can supplement the rule it inherits with an additional rule to prevent .txt files from being added.
A subdirectory rule can can override a rule set in a parent directory. For example, if a rule in a subdirectory is
# allow the readme.html file to be added ! readme.html
it overrides at that level a more general rule in a parent directory that says:
# do not add HTML files *.html
Setting P4IGNORE with an absolute path
To make P4IGNORE
use exactly one file, set P4IGNORE
to an absolute path. For example,
p4 set P4IGNORE=C:\users\maria\my-ignore-rules.txt
Linux and MacOS support using $home
for setting environment variables. For example,
p4 set P4IGNORE=$home/my-ignore-rules
Windows supports using %USERPROFILE%
for setting environment variables. For example,
p4 set P4IGNORE=%USERPROFILE%\my-ignore-rules.txt
which is interpreted as an absolute path to a directory such as C:\users\maria\my-ignore-rules.txt