# 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:"[repo-creation]" # 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 for new repositories. # # 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 # # git-gc-auto: # Integer value assigned to the `gc.auto` Git configuration setting for # new repositories. Only applied when git-autopack is enabled. When # git-autopack is disabled then `gc.auto` is set to 0. # # 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 # Permit all commits (that Git Fusion also permits). # # fail # Reject all commits. # # cmd # 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. # # {git_branch_name} substitution must be included somewhere in the # string, or it becomes impossible for Git users to create more than # one branch to a single repo. # # 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 (default) # Use `p4 unzip` to bulk import multiple changelists into # Perforce. # # no # Use `p4 submit` to copy each individual commit into # Perforce. # # fast-push-working-storage: # Where should 'enable-fast-push' store its potentially huge temporary # working data. # # memory # Consume huge amounts of memory on the Git Fusion server while # computing Perforce history. 25-50% faster than "disk", but will # run out of memory and CRASH unless the Git Fusion server has # ludicrously high amounts of memory. # (What is "enough memory?" 10x to 100x original repo size. # The 1GB linux kernel requires 200 GB memory.) # # disk (default) # Store computed history on disk in a database. # Limits memory growth to a few GB. # # [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:' # 'git clone git@server:'. # # no # Git Fusion will permit clone of repos only for configured repos for which # a //.git-fusion/repos//p4gf_config file exists via: # 'git clone git@server:' # # Git Fusion will deny repo creation via clone with the ' does not exist' message # when attempting to create a new repo from Perforce clients and streams # via : # 'git clone git@server:' # 'git clone git@server:'. # # update-only-on-poll: # Controls updating the local repository when a pull request is handled. # # no (default) # Any fetch will update the Git repository on the Git Fusion instance # (i.e. normal operation). # # yes # Only the invocation of p4gf_poll.py will update the repository. All # fetches will retrieve whatever is available in the Git repository. # #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. Must end with {repo}. # 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. Must end with {repo}. # 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} # # enable-add-copied-from-perforce: # Git Fusion adds the following note to the commit message # when creating a commit for a Git Fusion repo from a changelist # in Perforce: # # Copied from Perforce # Change: NNNN # # # yes (default) # Add "Copied from Perforce" to the message of each commit # created from changelists in Perforce. # # no # Do not add "Copied from Perforce" to the message of each commit # created from changelists in Perforce. # # git-lfs-enable: # Use Git LFS to keep large files out of the Git repo. Full file content # stored in Perforce, but represented within Git as small "text pointer" # files that Git users fetch and upload via Git LFS. # # no (default): # Git LFS translation not permitted # # yes: # Git LFS translation permitted. # # Once a Git repo contains "text pointer" files created by Git LFS, # it is forever dependent on Git LFS to deliver that file content # during `git checkout`. # # git-lfs-initial-track # A list of one or more file patterns, one per line, to convert to small # Git LFS "text pointer" files the first time this Perforce history is # translated to Git. Only affects the first git fetch/pull/clone of a # new repo. The patterns in this setting become lines in a .gitattributes # file that Git Fusion inserts into the new Git repo's history. # # Has no effect on existing Git history, or if Perforce history already # contains a top-level .gitattributes file. # # Modifying this setting and recloning a repo from scratch may have # undesirable effects (i.e. older files will suddently match the new # pattern and be converted into LFS files, thus altering history) and # should be avoided. # # Example: # git-lfs-initial-track = # *.psd # *.mp4 # # # [@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) # Search for any Perforce user account whose Perforce "Email" field # matches the email address of the Git author. 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 Perforce user account whose Perforce "User" field matches # the "user.name" field in the Git commit. The "user.name" field # appears in Git commits as the part of the 'author' field before the # email address. # # git-email-account # Use the Perforce user account whose Perforce "User" (not "Email") # field matches the account portion of the email address of the Git # author in the Git commit. For example, for a Git author email value # that appears as "" the Perforce author will # be Perforce user account "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 = pusher 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 = 1 enable-git-find-copies = no enable-git-find-renames = no enable-fast-push = yes job-lookup = none depot-branch-creation-enable = all depot-branch-creation-p4group = none depot-branch-creation-depot-path = //depot/{repo}/{git_branch_name} depot-branch-creation-view = ... ... changelist-date-source = perforce-submit-time gitmirror-max-commits-per-submit = 10000 [perforce-to-git] enable-stream-imports = no enable-clone-to-create-repo = yes update-only-on-poll = no http-url = https://192.168.2.73/{repo} ssh-url = none enable-add-copied-from-perforce = yes [@features] [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