Home Explore Blog CI



git

8th chunk of `Documentation/git-p4.adoc`
30b3f798c63ac4e247da069b575cb0cc680d15333d9d50240000000100000e17
 to specifying the
	option `--use-client-spec`.  See the "CLIENT SPEC" section above.
	This variable is a boolean, not the name of a p4 client.

git-p4.pathEncoding::
	Perforce keeps the encoding of a path as given by the originating OS.
	Git expects paths encoded as UTF-8. Use this config to tell git-p4
	what encoding Perforce had used for the paths. This encoding is used
	to transcode the paths to UTF-8. As an example, Perforce on Windows
	often uses "cp1252" to encode path names. If this option is passed
	into a p4 clone request, it is persisted in the resulting new git
	repo.

git-p4.metadataDecodingStrategy::
	Perforce keeps the encoding of a changelist descriptions and user
	full names as stored by the client on a given OS. The p4v client
	uses the OS-local encoding, and so different users can end up storing
	different changelist descriptions or user full names in different
	encodings, in the same depot.
	Git tolerates inconsistent/incorrect encodings in commit messages
	and author names, but expects them to be specified in utf-8.
	git-p4 can use three different decoding strategies in handling the
	encoding uncertainty in Perforce: 'passthrough' simply passes the
	original bytes through from Perforce to git, creating usable but
	incorrectly-encoded data when the Perforce data is encoded as
	anything other than utf-8. 'strict' expects the Perforce data to be
	encoded as utf-8, and fails to import when this is not true.
	'fallback' attempts to interpret the data as utf-8, and otherwise
	falls back to using a secondary encoding - by default the common
	windows encoding 'cp-1252' - with upper-range bytes escaped if
	decoding with the fallback encoding also fails.
	Under python2 the default strategy is 'passthrough' for historical
	reasons, and under python3 the default is 'fallback'.
	When 'strict' is selected and decoding fails, the error message will
	propose changing this config parameter as a workaround. If this
	option is passed into a p4 clone request, it is persisted into the
	resulting new git repo.

git-p4.metadataFallbackEncoding::
	Specify the fallback encoding to use when decoding Perforce author
	names and changelists descriptions using the 'fallback' strategy
	(see git-p4.metadataDecodingStrategy). The fallback encoding will
	only be used when decoding as utf-8 fails. This option defaults to
	cp1252, a common windows encoding. If this option is passed into a
	p4 clone request, it is persisted into the resulting new git repo.

git-p4.largeFileSystem::
	Specify the system that is used for large (binary) files. Please note
	that large file systems do not support the 'git p4 submit' command.
	Only Git LFS is implemented right now (see https://git-lfs.github.com/
	for more information). Download and install the Git LFS command line
	extension to use this option and configure it like this:
+
-------------
git config       git-p4.largeFileSystem GitLFS
-------------

git-p4.largeFileExtensions::
	All files matching a file extension in the list will be processed
	by the large file system. Do not prefix the extensions with '.'.

git-p4.largeFileThreshold::
	All files with an uncompressed size exceeding the threshold will be
	processed by the large file system. By default the threshold is
	defined in bytes. Add the suffix k, m, or g to change the unit.

git-p4.largeFileCompressedThreshold::
	All files with a compressed size exceeding the threshold will be
	processed by the large file system. This option might slow down
	your clone/sync process. By default the threshold is defined in
	bytes. Add the suffix k, m, or g to change the unit.

Title: Git-p4 Configuration Options for Path Encoding, Metadata, and Large Files
Summary
The git-p4 tool provides configuration options for handling path encoding, metadata decoding, and large file systems. Options include specifying the path encoding, metadata decoding strategy, and fallback encoding, as well as configuring large file systems such as Git LFS, and setting thresholds for file sizes to determine which files are processed by the large file system.