亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
Guides gitattributes giteveryday gitglossary gitignore gitmodules gitrevisions gittutorial gitworkflows Administration git archive git bundle git clean git filter-branch git fsck git gc git instaweb git reflog Basic Snapshotting git add git commit git diff git mv git reset git rm git status Branching and Merging git branch git checkout git log git merge git mergetool git stash git tag Debugging git bisect git blame git grep Email git am git format-patch git request-pull git send-email External Systems git fast-import git svn Getting and Creating Projects git clone git init Git git annotate git archimport git bisect-lk2009 git check-attr git check-mailmap git check-ref-format git checkout-index git cherry git citool git column git credential git credential-cache git credential-store git cvsexportcommit git cvsimport git cvsserver git diff-files git diff-tree git difftool git fast-export git fetch-pack git fmt-merge-msg git get-tar-commit-id git gui git http-backend git http-fetch git http-push git imap-send git index-pack git interpret-trailers git ls-remote git ls-tree git mailinfo git mailsplit git merge-file git merge-index git merge-one-file git merge-tree git mktag git mktree git name-rev git notes git p4 git pack-objects git pack-redundant git pack-refs git parse-remote git patch-id git prune git prune-packed git quiltimport git receive-pack git remote-ext git remote-fd git remote-testgit git repack git replace git rerere git send-pack git sh-i18n git sh-setup git shell git show-branch git show-index git stripspace git unpack-file git unpack-objects git upload-archive git upload-pack git var git verify-commit git verify-tag git whatchanged git worktree Inspection and Comparison git describe git shortlog git show Miscellaneous api credentials api index gitcli gitcore tutorial gitcredentials gitcvs migration gitdiffcore githooks gitk gitnamespaces gitremote helpers gitrepository layout gitsubmodules gittutorial 2 gitweb gitweb.conf pack format User Manual Patching git apply git cherry-pick git rebase git revert Plumbing Commands git cat-file git check-ignore git commit-tree git count-objects git diff-index git for-each-ref git hash-object git ls-files git merge-base git read-tree git rev-list git rev-parse git show-ref git symbolic-ref git update-index git update-ref git verify-pack git write-tree Server Admin git daemon git update-server-info Setup and Config git git config git help Sharing and Updating Projects git fetch git pull git push git remote git submodule
characters

命名

git-p4  - 從 Perforce 存儲(chǔ)庫導(dǎo)入和提交

概要

git p4 clone [<sync options>] [<clone options>] <p4 depot path>…
git p4 sync [<sync options>] [<p4 depot path>…]git p4 rebase
git p4 submit [<submit options>] [<master branch name>]

描述

該命令提供了一種使用 Git 與 p4 存儲(chǔ)庫交互的方式。

使用現(xiàn)有的 p4 存儲(chǔ)庫創(chuàng)建一個(gè)新的 Git 存儲(chǔ)庫git p4 clone,并為其提供一個(gè)或多個(gè) p4 depot 路徑。將 p4 更改中的新提交合并到git p4 sync。該sync命令還用于包含來自其他 p4 軟件倉庫路徑的新分支。使用提交 Git 回到 p4 git p4 submit。該命令git p4 rebase執(zhí)行 sync 并將當(dāng)前分支重新綁定到更新的 p4 遠(yuǎn)程分支上。

例子

  • 克隆存儲(chǔ)庫:$ git p4 clone // depot / path / project

  • 在新創(chuàng)建的 Git 倉庫中做一些工作:$ cd project $ vi foo.h $ git commit -a -m“edited foo.h”

  • 使用 p4 的最近更改更新 Git 存儲(chǔ)庫,重新定位頂層的工作:$ git p4 rebase

  • 提交你的提交到 p4:$ git p4 submit

命令

Clone

通常git p4 clone用于從現(xiàn)有的 p4 存儲(chǔ)庫創(chuàng)建新的 Git 目錄:

$ git p4 clone //depot/path/project

這個(gè):

  1. 在名為的子目錄中創(chuàng)建一個(gè)空的 Git 存儲(chǔ)庫project。

  2. 將來自給定 p4 倉庫路徑的頭部修訂版的完整內(nèi)容導(dǎo)入到 Git 分支中的單個(gè)提交中refs/remotes/p4/master。

  3. master從這個(gè)遠(yuǎn)程創(chuàng)建一個(gè)本地分支并將其檢出。

要在 Git 中重現(xiàn)整個(gè) p4 歷史記錄,請(qǐng)@all在軟件倉庫路徑中使用修飾符:

$ git p4 clone //depot/path/project@all

Sync

隨著 p4 存儲(chǔ)庫中的開發(fā)繼續(xù),可以使用以下方法將這些更改包含在 Git 存儲(chǔ)庫中:

$ git p4 sync

該命令在 p4 中查找新的更改,并將它們作為 Git 提交導(dǎo)入。

P4 存儲(chǔ)庫也可以使用以下方式添加到現(xiàn)有的 Git 存儲(chǔ)庫git p4 sync

$ mkdir repo-git
$ cd repo-git
$ git init
$ git p4 sync //path/in/your/perforce/depot

這會(huì)將指定的軟件倉庫導(dǎo)入到refs/remotes/p4/master現(xiàn)有的 Git 倉庫中。該--branch選項(xiàng)可用于指定用于 p4 內(nèi)容的不同分支。

如果一個(gè) Git 倉庫包含分支refs/remotes/origin/p4,那么它們將在第一次被提取和咨詢git p4 sync。由于從 p4 直接導(dǎo)入比從 Git 遠(yuǎn)程獲取更改要慢得多,所以這在多開發(fā)人員環(huán)境中很有用。

如果有多個(gè)分支,git p4 sync則會(huì)自動(dòng)使用“ 分支檢測”算法嘗試將新更改劃分到正確的分支中。這可以通過--branch指定只更新一個(gè)分支的選項(xiàng)來覆蓋。

Rebase

一個(gè)常見的工作模式是從 p4 倉庫獲取最新的更改,并將它們與本地未提交的更改合并。通常,p4 存儲(chǔ)庫是所有代碼的最終位置,因此重定位工作流程是有意義的。這個(gè)命令git p4 sync之后會(huì)git rebase在更新的 p4 更改之前移動(dòng)本地提交。

$ git p4 rebase

Submit

將來自 Git 存儲(chǔ)庫的更改提交回 p4 存儲(chǔ)庫需要單獨(dú)的 p4 客戶端工作區(qū)。這應(yīng)該使用P4CLIENT環(huán)境變量或 Git 配置變量來指定git-p4.client。p4 客戶端必須存在,但如果客戶端根目錄尚不存在,它將被創(chuàng)建并填充。

要提交當(dāng)前 Git 分支但不在分支中的所有更改p4/master,請(qǐng)使用:

$ git p4 submit

要指定除當(dāng)前分支以外的分支,請(qǐng)使用:

$ git p4 submit topicbranch

上游引用通常是refs/remotes/p4/master,但可以使用--origin=命令行選項(xiàng)覆蓋。

p4 的更改將在用戶調(diào)用時(shí)創(chuàng)建git p4 submit。該--preserve-user選項(xiàng)將根據(jù) Git 提交的作者來修改所有權(quán)。此選項(xiàng)需要 p4 中的管理員權(quán)限,可以使用該權(quán)限授予p4 protect。

選項(xiàng)

常規(guī)選項(xiàng)

除克隆以外的所有命令均接受這些選項(xiàng)

--git-dir <dir>

設(shè)置GIT_DIR環(huán)境變量。見 git [1] 。

-v   --verbose

提供更多進(jìn)度信息。

同步選項(xiàng)

這些選項(xiàng)可以在初始clone和后續(xù)sync操作中使用。

--branch <ref>

將更改導(dǎo)入 <ref> 而不是 refs / remotes / p4 / master 。如果 <ref> 以 refs /開頭,則按原樣使用。否則,如果它不以 p4 /開頭,則添加該前綴。

默認(rèn)情況下,不以 refs /開始的 <ref> 被視為遠(yuǎn)程跟蹤分支的名稱(在 refs / remotes / 下)。這種行為可以使用 --import-local 選項(xiàng)來修改。

默認(rèn)的 <ref> 是“master”。

本示例將新的遠(yuǎn)程 “p4 / proj2” 導(dǎo)入到現(xiàn)有的 Git 存儲(chǔ)庫中:

    $ git init
    $ git p4 sync --branch=refs/remotes/p4/proj2 //depot/proj2

--detect-branches

使用分支檢測算法在 p4 中查找新路徑。它在“分支檢測”中記錄如下。

--changesfile <file>

準(zhǔn)確導(dǎo)入列出的 p4 更改編號(hào)file,每行一個(gè)。通常,git p4檢查當(dāng)前 p4 存儲(chǔ)庫狀態(tài)并檢測它應(yīng)導(dǎo)入的更改。

--silent

不要打印任何進(jìn)度信息。

--detect-labels

查詢與倉庫路徑關(guān)聯(lián)的標(biāo)簽的 p4 ,并將它們作為標(biāo)簽添加到 Git 中。由于只有與新的更改列表相關(guān)的導(dǎo)入標(biāo)簽才有用。已過時(shí)。

--import-labels

將標(biāo)簽從 p4 導(dǎo)入到 Git 中。

--import-local

默認(rèn)情況下,p4 分支存儲(chǔ)在refs/remotes/p4/其中,它們將被 git-branch [1] 和其他命令視為遠(yuǎn)程跟蹤分支。這個(gè)選項(xiàng)代替了 p4 分支refs/heads/p4/。請(qǐng)注意,未來的同步操作也必須指定--import-local,以便他們可以在 refs / heads 中找到 p4 分支。

--max-changes <n>

導(dǎo)入大多數(shù)n變化,而不是包含在給定修訂說明符中的整個(gè)變化范圍。一個(gè)典型的用法將被@all用作修訂說明符,然后用于--max-changes 1000僅導(dǎo)入最后的1000個(gè)修訂版本而不是整個(gè)修訂歷史記錄。

--changes-block-size <n>

將修訂說明符(例如,@all轉(zhuǎn)換為特定更改編號(hào)列表)時(shí)使用的內(nèi)部塊大小。不是使用單個(gè)調(diào)用來p4 changes查找轉(zhuǎn)換的完整更改列表,而是調(diào)用一系列調(diào)用p4 changes -m,其中每個(gè)調(diào)用都請(qǐng)求一個(gè)給定大小的更改塊。默認(rèn)塊大小為500,通常應(yīng)該是合適的。

--keep-path

缺省情況下,文件名從 p4 軟件倉庫路徑到 Git 的映射涉及刪除整個(gè)軟件倉庫路徑。使用此選項(xiàng),完整的 p4 倉庫路徑將保留在 Git 中。例如,//depot/main/foo/bar.c從中導(dǎo)入的路徑//depot/main/變?yōu)?code>foo/bar.c。與此同時(shí)--keep-path,Git 路徑是depot/main/foo/bar.c。

--use-client-spec

使用客戶端規(guī)格在 p4 中查找感興趣的文件列表。請(qǐng)參閱下面的“客戶端規(guī)格”部分。

-/ <path>

克隆或同步時(shí)排除選定的軟件倉庫路徑。

克隆選項(xiàng)

這些選項(xiàng)可以在初始階段clone與上述sync選項(xiàng)一起使用。

--destination <directory>

在哪里創(chuàng)建 Git 存儲(chǔ)庫。如果未提供,則使用 p4 depot 路徑中的最后一個(gè)組件創(chuàng)建新目錄。

--bare

執(zhí)行克隆空項(xiàng)。參見 git-clone [1] 。

提交選項(xiàng)

這些選項(xiàng)可以用來修改git p4 submit行為。

--origin <commit>

確認(rèn)提交到 p4 的上游位置。默認(rèn)情況下,這是可從中獲得的最新 p4 提交HEAD。

-M

檢測重命名。參見 git-diff [1] 。重命名將使用顯式move操作在 p4 中表示。沒有對(duì)應(yīng)的選項(xiàng)來檢測副本,但移動(dòng)和副本都有變量。

--preserve-user

在提交給 p4 之前,重新創(chuàng)建 p4 更改。該選項(xiàng)需要 p4 管理員權(quán)限。

--export-labels

從 Git 導(dǎo)出標(biāo)簽作為 p4 標(biāo)簽。在 Git 中找到的標(biāo)簽應(yīng)用于 perforce 工作目錄。

-n   --dry-run

顯示將提交給 p4 的提交; 不要在 Git 或 p4 中更改狀態(tài)。

--prepare-p4-only

將提交應(yīng)用于 p4 工作區(qū),在 p4 中打開,添加和刪除文件,就像正常的提交操作一樣。不要發(fā)布最終的“ p4 提交”,而是要打印一條關(guān)于如何手動(dòng)提交或回復(fù)的消息。該選項(xiàng)總是在第一個(gè)(最早的)提交之后停止。Git 標(biāo)簽不會(huì)導(dǎo)出到 p4 。

--shelve

而不是提交創(chuàng)建一系列擱置的更改表。創(chuàng)建每個(gè)擱置后,相關(guān)文件將被還原/刪除。如果您有多個(gè)提交,則會(huì)創(chuàng)建多個(gè)擱板。

--update-shelve CHANGELIST

使用此提交更新現(xiàn)有的擱置更改列表。意味著 --shelve。

--conflict=(ask|skip|quit)

將提交應(yīng)用于 p4 時(shí)可能會(huì)發(fā)生沖突。發(fā)生這種情況時(shí),默認(rèn)行為(“詢問”)是提示是否跳過此提交并繼續(xù)或退出。此選項(xiàng)可用于繞過提示,導(dǎo)致提交沖突自動(dòng)跳過,或退出嘗試提交而不提示。

--branch <branch>

提交后,同步該命名分支,而不是默認(rèn)的 p4 / master 。有關(guān)更多信息,請(qǐng)參閱上面的“同步選項(xiàng)”一節(jié)。

改變選項(xiàng)

這些選項(xiàng)可以用來修改git p4 rebase行為。

--import-labels

導(dǎo)入 p4 標(biāo)簽。

倉庫路徑語法

p4 的貯庫路徑參數(shù)git p4 syncgit p4 clone可以是一個(gè)或多個(gè)空格分隔 P4 貯庫的路徑,與在端部的可選 P4 修訂說明符:

"//depot/my/project"

#head在樹下的更改中導(dǎo)入一個(gè)具有所有文件的提交。

"//depot/my/project@all"

為該軟件倉庫路徑的歷史記錄中的每個(gè)更改導(dǎo)入一個(gè)提交。

"//depot/my/project@1,6"

只導(dǎo)入更改1到6。

"//depot/proj1@all //depot/proj2@all"

將來自兩個(gè)指定軟件倉庫路徑的所有更改導(dǎo)入單個(gè)存儲(chǔ)庫。只包含這些目錄下的文件。每個(gè) “proj1” 和 “proj2” 在 Git 中都沒有一個(gè)子目錄。--destination指定多個(gè)軟件倉庫路徑時(shí)必須使用該選項(xiàng)。修訂說明符必須在每個(gè)軟件倉庫路徑上指定相同。如果軟件倉庫路徑中有相同名稱的文件,則具有該文件最近更新版本的路徑就是出現(xiàn)在 Git 中的路徑。

請(qǐng)參閱p4 help revisions p4 修訂說明符的完整語法。

客戶端規(guī)格

p4 客戶端規(guī)范是使用該p4 client命令維護(hù)的,并在其他字段中包含一個(gè)視圖,指定倉庫如何映射到客戶端存儲(chǔ)庫。在clonesync給定的命令時(shí),可以咨詢客戶規(guī)范--use-client-spec選項(xiàng),或當(dāng) useClientSpec 變量為真。之后git p4 clone,useClientSpec 變量將在存儲(chǔ)庫配置文件中自動(dòng)設(shè)置。這允許未來的git p4 submit命令正常工作; 提交命令僅查看變量并且沒有命令行選項(xiàng)。

有關(guān) p4 視圖的完整語法記錄在中p4 help views。git p4只知道視圖語法的一個(gè)子集。它理解多行映射,覆蓋+,排除-和空白處的雙引號(hào)。可能的通配符中git p4只有句柄,并且只有在路徑的末尾。git p4如果遇到未處理的通配符將會(huì)投訴。

存在重疊映射的實(shí)現(xiàn)中的錯(cuò)誤。如果多個(gè)軟件倉庫路徑通過疊加層映射到存儲(chǔ)庫中的相同位置,則git p4可以選擇錯(cuò)誤的路徑。如果沒有專門的客戶端規(guī)范,這很難解決git p4。

客戶的名字可以以git p4多種方式給出。git-p4.client如果該變量存在,則該變量優(yōu)先。否則,將使用確定客戶端的普通 p4 機(jī)制:環(huán)境變量 P4CLIENT ,由 P4CONFIG 引用的文件或本地主機(jī)名。

分支檢測

P4 與 Git 沒有相同的分支概念。相反,p4將其內(nèi)容組織為目錄樹,根據(jù)約定,不同的邏輯分支位于樹中的不同位置。該p4 branch命令用于維護(hù)樹中不同區(qū)域之間的映射,并指示相關(guān)內(nèi)容。git p4可以使用這些映射來確定分支關(guān)系。

如果您有一個(gè)存儲(chǔ)庫,其中所有感興趣的分支都作為單個(gè)軟件倉庫路徑的子目錄存在,則可以--detect-branches在克隆或同步時(shí)使用git p4自動(dòng)在 p4 中查找子目錄,并在 Git 中將其作為分支生成。

例如,如果 P4 存儲(chǔ)庫結(jié)構(gòu)是:

//depot/main/...//depot/branch1/...

并且“p4 分支 - o 分支1”顯示一個(gè) View 行,如下所示:

//depot/main/... //depot/branch1/...

然后這個(gè)git p4 clone命令:

git p4 clone --detect-branches //depot@all

refs/remotes/p4/為// depot / main 生成一個(gè)單獨(dú)的分支master,并調(diào)用一個(gè)/ depot / branch1 depot/branch1

但是,沒有必要在 p4 中創(chuàng)建分支以便像分支一樣使用它們。由于很難自動(dòng)推斷分支關(guān)系,git-p4.branchList因此可以使用 Git 配置設(shè)置來明確標(biāo)識(shí)分支關(guān)系。它是一個(gè) “source :destination” 對(duì)的列表,就像一個(gè)簡單的 p4 分支規(guī)范,其中 “source” 和 “destination” 是 p4 存儲(chǔ)庫中的路徑元素。上面的例子依賴于 p4 分支的存在。沒有 p4 分支,相同的結(jié)果將會(huì)發(fā)生:

git init depot
cd depot
git config git-p4.branchList main:branch1
git p4 clone --detect-branches //depot@all .

性能

快速導(dǎo)入機(jī)制git p4為每次調(diào)用創(chuàng)建一個(gè)包文件git p4 sync。通常,Git 垃圾壓縮( git-gc [1] )會(huì)自動(dòng)將這些壓縮到更少的包文件,但顯式調(diào)用git repack -adf可能會(huì)提高性能。

配置變量

以下配置設(shè)置可用于修改git p4行為。他們都在該git-p4部分。

一般變量

git-p4.user

用戶指定為所有p4命令的選項(xiàng),并帶有-u <user>。該環(huán)境變量P4USER可以用來代替。

git-p4.password

作為所有 p4 命令的選項(xiàng)指定的密碼-P <password>。該環(huán)境變量P4PASS可以用來代替。

git-p4.port

端口被指定為所有 p4 命令的選項(xiàng)-p <port>。該環(huán)境變量P4PORT可以用來代替。

git-p4.host

主機(jī)被指定為所有 p4 命令的選項(xiàng),其中包含-h <host>。該環(huán)境變量P4HOST可以用來代替。

git-p4.client

客戶端指定為所有 p4 命令的選項(xiàng)-c <client>,包括客戶端規(guī)范。

git-p4.retries

指定在p4 sync網(wǎng)絡(luò)超時(shí)的情況下重試 p4 命令(特別是)的次數(shù)。默認(rèn)值為3.將該值設(shè)置為0以禁用重試,或者如果您的 p4版本不支持重試(2012年之前)。

克隆和同步變量

git-p4.syncFromOrigin

因?yàn)閺钠渌?Git 存儲(chǔ)庫導(dǎo)入提交比從 p4 導(dǎo)入提交要快得多,因此存在一種機(jī)制來首先在 Git 遠(yuǎn)程中查找 p4 更改。如果存在分支refs/remote/origin/p4,那么當(dāng)從 p4 同步時(shí),這些分支將被提取和使用??梢詫⒋俗兞吭O(shè)置false為禁用此行為。

git-p4.branchUser

分支檢測的一個(gè)階段涉及查看 p4 分支以找到要導(dǎo)入的新分支。默認(rèn)情況下,檢查所有分支。此選項(xiàng)將搜索限制為僅由變量中指定的單個(gè)用戶擁有的搜索。

git-p4.branchList

分支檢測啟用時(shí)要導(dǎo)入的分支列表。每個(gè)條目應(yīng)該是一對(duì)由冒號(hào)(:)分隔的分支名稱。這個(gè)例子聲明 branchA 和 branchB 都是從 main 創(chuàng)建的:

git config       git-p4.branchList main:branchA
git config --add git-p4.branchList main:branchB

git-p4.ignoredP4Labels

要忽略的 p4 標(biāo)簽列表。這是在發(fā)現(xiàn)不可引用的標(biāo)簽時(shí)自動(dòng)構(gòu)建的。

git-p4.importLabels

根據(jù) --import-labels 將 p4 標(biāo)簽導(dǎo)入到 git 中。

git-p4.labelImportRegexp

只有與此正則表達(dá)式匹配的 p4 標(biāo)簽才會(huì)被導(dǎo)入。默認(rèn)值是[a-zA-Z0-9_\-.]+$。

git-p4.useClientSpec

指定應(yīng)該使用 p4 客戶端規(guī)范來識(shí)別感興趣的 p4 倉庫路徑。這相當(dāng)于指定選項(xiàng)--use-client-spec。請(qǐng)參閱上面的“客戶端規(guī)格”部分。這個(gè)變量是一個(gè)布爾值,而不是 p4 客戶端的名字。

git-p4.pathEncoding

Perforce 保留原始操作系統(tǒng)給定的路徑編碼。Git 預(yù)計(jì)編碼為 UTF-8 的路徑。使用此配置來告訴 git-p4 Perforce 用于路徑的編碼。此編碼用于將路徑轉(zhuǎn)碼為 UTF-8 。例如,Windows 上的 Perforce 通常使用 “cp1252” 來編碼路徑名稱。

git-p4.largeFileSystem

指定用于大型(二進(jìn)制)文件的系統(tǒng)。請(qǐng)注意,大文件系統(tǒng)不支持該git p4 submit命令。只有 Git LFS 現(xiàn)在被實(shí)現(xiàn)(請(qǐng)參閱https://git-lfs.github.com/了解更多信息)。下載并安裝 Git LFS 命令行擴(kuò)展以使用此選項(xiàng)并像這樣配置它:

git config       git-p4.largeFileSystem GitLFS

git-p4.largeFileExtensions

所有與列表中文件擴(kuò)展名匹配的文件都將由大文件系統(tǒng)處理。不要以擴(kuò)展名為前綴.。

git-p4.largeFileThreshold

所有未壓縮大小超過閾值的文件都將由大文件系統(tǒng)處理。默認(rèn)情況下,閾值以字節(jié)為單位定義。添加后綴 k ,m 或 g 以更改單位。

git-p4.largeFileCompressedThreshold

壓縮大小超過閾值的所有文件都將由大文件系統(tǒng)處理。此選項(xiàng)可能會(huì)減慢您的克隆/同步過程。默認(rèn)情況下,閾值以字節(jié)為單位定義。添加后綴 k ,m 或 g 以更改單位。

git-p4.largeFilePush

定義大文件是否自動(dòng)推送到服務(wù)器的布爾變量。

git-p4.keepEmptyCommits

如果此布爾選項(xiàng)設(shè)置為 true ,則僅包含排除文件的更改列表將作為空提交導(dǎo)入。

git-p4.mapUser

將 P4 用戶映射到 Git 中的名稱和電子郵件地址。使用以下格式的字符串來創(chuàng)建映射:

git config --add git-p4.mapUser "p4user = First Last <mail@address.com>"

映射將覆蓋來自 P4 的任何用戶信息??梢远x多個(gè) P4 用戶的映射。

提交變量

git-p4.detectRenames

檢測重命名。參見 git-diff [1] 。這可能是真實(shí)的,錯(cuò)誤的,或者如預(yù)期的那樣git diff -M。

git-p4.detectCopies

檢測副本。參見 git-diff [1] 。這可能是真實(shí)的,錯(cuò)誤的,或者如預(yù)期的那樣git diff -C。

git-p4.detectCopiesHarder

更難檢測副本。參見 git-diff [1] 。一個(gè)布爾值。

git-p4.preserveUser

在提交時(shí),無論誰調(diào)用,都要重新編寫更改以反映 Git 作者git p4 submit。

git-p4.allowMissingP4Users

如果preserveUser屬實(shí),git p4通常會(huì)在 p4 用戶映射中找不到作者的情況下死亡。無論如何,此設(shè)置都會(huì)提交更改。

git-p4.skipSubmitEdit

提交過程在提交每個(gè) p4 更改之前調(diào)用編輯器。但是,如果此設(shè)置為 true ,則跳過編輯步驟。

git-p4.skipSubmitEditCheck

編輯 p4 更改消息后,git p4通過查看文件修改時(shí)間確保描述確實(shí)發(fā)生了變化。該選項(xiàng)禁用該測試。

git-p4.allowSubmit

默認(rèn)情況下,任何分支都可以用作git p4 submit操作的源。這個(gè)配置變量(如果設(shè)置的話)只允許指定的分支用作提交源。分支名稱必須是短名稱(不包括 “refs / heads /” ),并且應(yīng)該用逗號(hào)(“,”)分隔,而不能有空格。

git-p4.skipUserNameCheck

如果git p4 submit在 p4 用戶映射中不存在正在運(yùn)行的用戶,則git p4退出。無論如何,此選項(xiàng)都可用于強(qiáng)制提交。

git-p4.attemptRCSCleanup

如果啟用,git p4 submit將嘗試清理 RCS 關(guān)鍵字($ Header $等)。否則這些會(huì)導(dǎo)致合并沖突并阻止提交進(jìn)行。目前這個(gè)選項(xiàng)應(yīng)該被認(rèn)為是實(shí)驗(yàn)性的。

git-p4.exportLabels

根據(jù) --export-labels 將 Git 標(biāo)簽導(dǎo)出到 p4 標(biāo)簽。

git-p4.labelExportRegexp

只有與此正則表達(dá)式匹配的 p4 標(biāo)簽才會(huì)被導(dǎo)出。默認(rèn)值是[a-zA-Z0-9_\-.]+$。

git-p4.conflict

根據(jù) --conflict 發(fā)現(xiàn)與 p4 發(fā)生沖突時(shí)的指定提交行為。默認(rèn)行為是ask

實(shí)施細(xì)節(jié)

  • 使用 Git 快速導(dǎo)入來導(dǎo)入 p4 中的更改集。

  • 克隆或同步不需要 p4 客戶端; 文件內(nèi)容使用收集p4 print

  • 提交需要一個(gè)與 Git 存儲(chǔ)庫不在同一位置的 p4 客戶端。修補(bǔ)程序一次一個(gè)地應(yīng)用于此 p4 客戶端并從那里提交。

  • 導(dǎo)入的每個(gè)提交git p4在日志消息末尾都有一行指示 p4 倉庫位置和更改編號(hào)。此行被以后的git p4 sync操作用于了解哪些 p4 更改是新的。

Previous article: Next article: