p4gf_config #2

  • //
  • .git-fusion/
  • p4gf_config
  • View
  • Commits
  • Open Download .zip Download (18 KB)
# Git Fusion global configuration file.
#
# Contains settings that affect all Git Fusion repos.
#
# Git Fusion creates this file during initialization. Git Fusion reads this
# file once at the start of each Git operation. Git Fusion never writes to
# this file. You can edit this file.
#
#
# [repo-creation]
#       Controls how Git Fusion creates new repos.
#
#   charset:
#       Default charset used for a new repo. Used when working with a Unicode
#       enabled Perforce server.
#       See 'p4 help charset' for a list of possible values.
#
#   git-autopack:
#       Configure the git repository pack settings.
#
#       yes (default)
#           Yes, use git's default pack settings for:
#             gc.auto
#             gc.autopacklimit
#             receive.autogc
#
#       no
#           No, disable all git packing with these settings:
#             gc.auto = 0
#             gc.autopacklimit = 0
#             receive.autogc = false
#
#   depot-path-repo-creation-enable:
#       Allow Git users to create new repos by cloning/pushing/pulling a Git
#       URL which specifies a Perforce depot path.
#       This is similar to creating a repo from a p4 client.
#
#       no (default)
#           Automatic repo creation from a depot path is disallowed.
#
#       yes
#           Automatic repo creation from a depot path is allowed.
#
#           Under the following conditions a new repo will be created:
#           1) The repo name is formated as: depotname/reponame/branchname
#           2) depotname is a defined Perforce depot of type='local'
#           3) No p4gf_config nor p4 client exists with the translated name:
#               depotname_0xS_reponame_0xS_branchname
#
#           If the conditions are not met, the clone/push/pull will fail
#           with the expected error message reporting the repo is not defined.
#
#           The newly created repo p4gf_config will contain:
#            [@repo]
#            description = Created from 'depotname_0xS_reponame_0xS_branchname'
#
#            [Hzb5rdffTRGEsjotvTLoHg==]
#            git-branch-name = master
#            view = //depotname/reponame/branchname/... ...
#
#           For a clone/pull situation, any files under //depotname/repo/branch
#           will be imported into a new Git repo's master branch.
#
#           For a push situation, any files in the pushed Git branch will be
#           imported into a new Perforce depot path.
#
#   depot-path-repo-creation-p4group:
#       Restrict which authenticated Git pushers are allowed to create new
#       repos when depot-path-repo-creation-enable is enabled.
#
#       Set this to the name of an existing Perforce 'p4 group' to restrict
#       this feature to members of that group.
#
#       Unset/None (default)
#           No restriction: all Git pushers can create new repos from
#           depot paths if depot-path-repo-creation-enable is enabled.
#
#       You can also use 'p4 protect' to grant/deny write permission
#       to areas of the Perforce depot.
#
# [git-to-perforce]
#       Controls how Git commits are converted to Perforce changes.
#
#   change-owner:
#       Determines who the Perforce change owner will be.
#
#       author (default)
#           Assigns the change owner to that of the Git commit author.
#
#       pusher
#           Assigns the change owner to that of the Git pusher.
#
#   enable-git-branch-creation:
#       Create branches in Perforce when copying from Git.
#
#       yes (default)
#           Yes, create a new branch of Perforce depot file hierarchy for each
#           copied branch of Git workspace history. This includes task branches
#           which become 'anonymous' branches in Perforce.
#
#       no
#           No, do not create any branches. When copying from Git to Perforce,
#           reject any push of a new branch not already described in the
#           repo's config file. When copying from Perforce to Git, copy
#           Perforce integrations or merges from other file hierarchies as
#           edits to files, not Git merge commits.
#
#   enable-swarm-reviews:
#       Permit branch creation for Swarm reviews.
#
#       yes (default)
#           Yes, create a new branch of Perforce depot file hierarchy for each
#           new Swarm review. Also permit merge commits in the review history
#           which become 'anonymous' branches in Perforce.
#           This setting overrides enable-git-branch-creation for Swarm reviews.
#
#       no
#           No, do not create any branches for Swarm reviews.
#           This effectually disables pushing Swarm reviews.
#
#   enable-git-merge-commits:
#       Allow Git merge commits to be pushed to Perforce.
#
#       yes (default)
#           Yes, Git merge commits may be pushed to Perforce, and will appear
#           as integrations between branches in Perforce.
#
#       no
#           Disallow Git merge commits. Integrations between branches in
#           Perforce can still be performed using Perforce clients.
#
#   enable-git-submodules:
#       Allow Git submodules to be pushed to Perforce.
#
#       yes (default)
#           Yes, Git submodules may be pushed to Perforce.
#
#       no
#           Disallow Git submodules from being introduced into Git Fusion.
#           If any submodules have already been pushed to Git Fusion, they
#           will be left intact and be reproduced via clone/pull.
#
#   ignore-author-permissions:
#       Consider whose permissions when copying from Git to Perforce.
#       Who must have 'write' permission to a file being changed.
#
#       yes
#           Require only the pusher to have Perforce write permission.
#
#       no (default)
#           Require both Git author and pusher to have write permission.
#
#   preflight-commit:
#       Custom 'git push' commit filter.
#
#       none (default)
#           No filter.
#
#       pass <msg>
#           Permit all commits (that Git Fusion also permits).
#
#       fail <msg>
#           Reject all commits.
#
#       cmd <args>
#           Run cmd. If cmd returns exit code 0, permit commit.
#           Exit code non-0: reject commit.
#
#   read-permission-check:
#       Perform 'p4 protects' permission checks for each
#       git clone/pull/fetch.
#
#       none (default)
#           Use only Git Fusion permissions groups, no 'p4 protect' checks.
#
#       user
#           Check puller's Perforce user against 'p4 protects' and all
#           views within the repo for read permission.
#
#   git-merge-avoidance-after-change-num:
#       Improve repo rebuild results. Avoid unnecessary merge commits.
#       Works for changelists pushed by Git Fusion version 13.3 or later.
#       Integer changelist number of last changelist submitted before
#       installing Git Fusion 13.3 or later.
#
#       'p4 counter change' (default)
#
#   job-lookup:
#       One or more expressions to pass to 'p4 jobs -e'. Matching jobs are
#       added to submitted changelist as fixes. Multiple values permitted,
#       one per line.
#
#         {jobval} -- one job ID from Git commit message,
#                     the "BUG-1234" from "Jobs: BUG-1234"
#
#       For example:
#         job-lookup: DTG_DTISSUE={jobval}
#
#   depot-branch-creation-enable:
#       Allow Git users to create new fully populated depot branches within
#       Perforce.
#
#       no (default)
#           Any new branches pushed by Git users go into
#           //.git-fusion/branches/... as lightweight depot branches.
#
#       explicit
#           Push to special remote ref 'depot-branch/{name}'
#           creates a new, fully populated, depot branch in Perforce.
#           For example:
#             git push origin mybranch:depot-branch/research
#           creates a new Perforce depot branch under
#             //depot/myrepo/research/...
#
#       all
#           Each new Git branch pushed by Git users goes into a new, fully
#           populated, depot branch in Perforce.
#           For example:
#             git push origin mybranch:research
#           creates a new Perforce depot branch under
#             //depot/myrepo/research/...
#
#   depot-branch-creation-p4group:
#       Restrict which authenticated Git pushers are allowed to create new
#       fully populated depot branches, if depot-branch-creation-enable
#       is enabled.
#
#       Set this to the name of an existing Perforce 'p4 group' to restrict
#       this feature to only the members of that group.
#
#       Unset/None (default)
#           No restriction: all Git pushers can create new fully populated
#           depot branches if depot-branch-creation-enable is enabled
#
#       You can also use 'p4 protect' to grant/deny write permission
#       to areas of the Perforce depot.
#
#   depot-branch-creation-depot-path:
#       Where to create new fully populated depot branches, if depot-branch-
#       creation-enable is enabled.
#
#       Default: //depot/{repo}/{git_branch_name}
#
#       Available string substitutions:
#         {repo} :  The name of the Git Fusion repo receiving this push.
#         {git_branch_name} :
#                   The name of the pushed branch reference.
#                   For example, the "myfeature" portion of
#                   'git push master:depot-branch/myfeature'
#                   Perforce path rules apply!
#                   Prohibited: evil @#%* chars, //, or ...
#                   Permitted: /
#         {user} :  The Perforce user ID of the pusher.
#
#   depot-branch-creation-view:
#       Which subset of the above depot-path root should appear in Git,
#       as which Git paths.
#       A Perforce view specification that maps Perforce depot paths (left
#       side) to Git work tree paths (right side). Perforce depot paths
#       are relative to the above depot-branch-creation-depot-path root.
#
#       Default: "... ..."
#
#       The default "... ..." maps every
#       file under the above depot-branch-creation-depot-path root to Git.
#
#       Right side paths must match the right side for every other branch
#       within a repo.
#
#   enable-git-find-copies:
#       When Git reports a "copy" file action, store that action in
#       Perforce as a 'p4 integ'. Often set in tandem with
#       enable-git-find-renames.
#
#       no/off/0% (default)
#           Do not use Git's copy detection. Treat all possible file
#           copy actions as 'p4 add' actions.
#
#       1%-100%
#           Use Git's copy detection.
#           Value passed to git diff-tree --find-copies=n.
#
#           Git Fusion also adds --find-copies-harder whenever adding
#           --find-copies.
#
#   enable-git-find-renames:
#       When Git reports a "rename" (also called "move") file action,
#       store that in Perforce as a 'p4 move'. Often set in tandem
#       with enable-git-find-copies.
#
#       no/off/0% (default)
#           Do not use Git's rename detection. Treat all possible file
#           rename actions as independent 'p4 delete' + 'p4 add' actions.
#
#       1%-100%
#           Use Git's rename detection.
#           Value passed to git diff-tree --find-renames=n
#
#       A warning about find-copies and find-renames: Git's copy/rename
#       detection is a guess, and not always a correct one. Some Git
#       copy/rename actions will be missed and recorded as 'p4 add' and 'p4
#       delete'+'p4 add' actions. Some Git actions will be falsely identified
#       as copy/rename and recorded in Perforce as such.
#
#   enable-fast-push:
#       Use new Perforce Server 15.x features to greatly accelerate
#       initial 'git push' of new repos.
#
#       yes
#           Use `p4 unzip` to bulk import multiple changelists into
#           Perforce.
#
#       no (default)
#           Use `p4 submit` to copy each individual commit into
#           Perforce.
#
# [perforce-to-git]
#       Controls how Perforce changes are converted to Git commits.
#
#   enable-stream-imports:
#       Controls the manner in which import paths in streams are handled.
#
#       yes
#           Any streams that are cloned via Git Fusion which contain
#           compatible import type paths will have those import paths
#           converted to submodules.
#
#       no (default)
#           The import paths and their history will be incorporated into
#           the Git repository for the stream. This maintains the existing
#           behavior.
#
#   enable-clone-to-create-repo:
#       Controls whether repos may be created by 'git clone' from p4 clients and streams.
#       Note: clone from a depot path is controlled independently by depot-path-repo-creation-enable.
#
#       yes (default)
#            Git Fusion will create new repos directly from Perforce server clients and streams
#            via :
#               'git clone git@server:<p4_client_name>'
#               'git clone git@server:<p4_stream_name>'.
#
#       no
#            Git Fusion will permit clone of repos only for configured repos for which
#            a //.git-fusion/repos/<reponame>/p4gf_config file exists via:
#               'git clone git@server:<reponame>'
#
#            Git Fusion will deny repo creation via clone with the '<repo> does not exist' message
#            when attempting to create a new repo from Perforce clients and streams
#            via :
#               'git clone git@server:<p4_client_name>'
#               'git clone git@server:<p4_stream_name>'.
#
#   http-url:
#       The URL used by Git to clone a repository from Git Fusion over HTTP.
#       The value may contain {var} placeholders that will be replaced by
#       values from the Git Fusion environment. These are as follows:
#
#         {repo} -- name of the Git Fusion repository being cloned.
#         {host} -- fully-qualified name of the Git Fusion host.
#
#       For example:
#         http://{host}/{repo}
#
#   ssh-url:
#       The "URL" used by Git to clone a repository from Git Fusion via SSH.
#       The value may contain {var} placeholders that will be replaced by
#       values from the Git Fusion environment. These are as follows:
#
#         {user} -- name of SSH user on the Git Fusion host.
#         (In addition, those described in http-url above.)
#
#       For example:
#         {user}@{host}:{repo}
#
#
# [@features]
#       Enable or disable experimental features. This section may also
#       appear in per-repo config files. Per-repo values will override
#       global values. Features default to disabled unless enabled here.
#
#       To see a list of available features use:
#         'git clone git@server:@features'
#       To see which features are enabled for a repo use:
#         'git clone git@server:@features@repo'
#
#
# [authentication]
#       Global settings for authentication options.
#
#   email-case-sensitivity:
#       Set the case sensitivity when matching git user email addresses
#       with Perforce user account email addresses.
#
#       yes
#           Use case sensitive email comparisons.
#
#       no (default)
#           Use case insensitive email comparisons.
#
#   author-source:
#       Identify the datum from which a Perforce user account should be
#       derived for the author of the change. The change-owner option in
#       the [git-to-perforce] section overrides this setting, such that
#       if change-owner is set to 'pusher' then this setting is irrelevant
#       and thus ignored.
#
#       It is possible to specify multiple sources in the order of desired
#       precedence, simply by separating each of the chosen source names
#       with commas. For example: git-user, git-email-account, git-email
#
#       git-email (default)
#           Use the email address of the Git author to look for a Perforce
#           user account with the same email address. First the p4gf_usermap
#           file is consulted, and if that fails to produce a match, then
#           the Perforce user table is scanned. The first match found wins.
#
#       git-user
#           Use the "user.name" field in the Git commit, which is the
#           part of the 'author' field before the email address.
#
#       git-email-account
#           Use the account portion of the email address of the Git author
#           in the Git commit. That is, for a Git author email value that
#           appears as "<samwise@the_shire.com>" the Perforce author will
#           then be taken as "samwise".
#
#
# [quota]
#       Global settings for push limit options.
#
#   limit_space_mb:
#       Natural number representing the number of megabytes of disk space
#       that can be consumed by any single repo. This value does not include
#       the spaced consumed on the Perforce server. If the value is zero or
#       less, the limit is not enforced. Default value is zero.
#
#   limit_commits_received:
#       Natural number representing the maximum number of commits allowed in
#       a single push. If the value is zero or less, the limit is not enforced.
#       Default value is zero.
#
#   limit_files_received:
#       Natural number representing the maximum number of files allowed in a
#       single push. If the value is zero or less, the limit is not enforced.
#       Default value is zero.
#
#   limit_megabytes_received:
#       Natural number representing the maximum number of megabytes allowed in
#       a single push. If the value is zero or less, the limit is not enforced.
#       Default value is zero.
#
#
[repo-creation]
charset = utf8
git-autopack = yes
git-gc-auto = none
depot-path-repo-creation-enable = no
depot-path-repo-creation-p4group = none

[git-to-perforce]
change-owner = author
enable-git-branch-creation = yes
enable-swarm-reviews = yes
enable-git-merge-commits = yes
enable-git-submodules = yes
preflight-commit = 
ignore-author-permissions = no
read-permission-check = 
git-merge-avoidance-after-change-num = 11785
enable-git-find-copies = no
enable-git-find-renames = no
job-lookup = none
depot-branch-creation-enable = no
depot-branch-creation-p4group = none
depot-branch-creation-depot-path = //depot/{repo}/{git_branch_name}
depot-branch-creation-view = ... ...
enable-fast-push = no
changelist-date-source = perforce-submit-time

[perforce-to-git]
enable-stream-imports = no
http-url = 
ssh-url = 
enable-clone-to-create-repo = yes

[@features]
chunked-push = False
parallel-push = False

[authentication]
email-case-sensitivity = no
author-source = git-email

[quota]
limit_commits_received = 0
limit_files_received = 0
limit_space_mb = 0
limit_megabytes_received = 0

[undoc]
enable_checkpoints = no

# Change User Description Committed
#2 19504 Git Fusion Update 'p4gf_config'.
#1 11787 Git Fusion Creating initial 'p4gf_config' file.