簡體   English   中英

Perforce分支vs git分支

[英]Perforce branching vs git branching

我是嘗試學習Perforce的Git用戶。

在Git中,用戶可以從主分支簽出,更改一些文件,然后將其代碼通過特定提交ID推送到其他分支上的服務器。

另一個Git用戶可以使用其提交ID簽出該新分支並在其頂部工作。

如何使用Perforce執行此操作?

我是嘗試學習Perforce的Git用戶。

對不起。

如何使用Perforce執行此操作?

我是一個比Perforce用戶更好的Git用戶,因此如果出現任何問題,請更正我。 我強烈建議閱讀手冊頁和教程

它“不可能”,至少不是Git做到的方式。

git ,當您創建分支時,您將分支存儲庫的整個狀態 Perforce不支持此功能,而是針對每個文件進行 “分支”:即,將文件A分支到文件B,此時文件B包含對文件A的反向引用,說“我來自這里”。 然后可以使用此反向參考來確定用於合並目的的共同祖先。 但是,我的理解是這些反向引用是每個文件的,您可以自由地將任何文件集成(合並)到其他文件中。 (與git相比,其中“父提交”是您的反向引用,但在整個存儲庫范圍內。)

您可以使用典型的Perforce語法(例如//depot/some/path/... )使用p4 integrate來分支整個文件集。 通常,您會將整個目錄分支到其他目錄,例如//depot/main/my_project//depot/release-1.0/my_project或類似的目錄中。 據我所知,Perforce並不真正關心路徑:它只是將文件從一個位置“分支”到另一個位置。 路徑中的任何模式或理智都取決於您。

此外,您可以使用p4 branch創建“分支規范”,這基本上是記錄文件的源集及其目的地的一種方法,以使分支更加容易。 (如果以發行版為例,您可能最終希望合並回更改,或將其他更改合並到發行版中,等等。)

我兩次與Perforce一起工作時,分支都是與Git不同性質的野獸,這里的文化也有所不同。 分支比較少見。 (我只看到過它們用於發布。)除了功能最大的部分外,我們沒有將它們用於功能分支。 git ,對我來說,“功能分支”通常是“花費> 1次提交”。

如果您像我一樣鄙視Perforce,則應該繼續使用Git。 我應該說,使用Git會讓我更加自在。

我目前使用Git-P4 +我編寫的一組Bash腳本( git-p4-helpers

我遵循此工作流程的簡化形式:

$ git checkout p4-integration
$ git p4 sync
$ git p4 rebase
$ git tag last-green <SHA1> # last green build
$ git rebase last-green develop
$ git checkout -b <my-feature>
$ git commit # as needed
# Sync Git->P4 (see Github:git-p4-helpers)
# Submit using P4

我仍然無法弄清一件事,即如何快速地從Git-P4提交到P4(每次我嘗試使用git p4 sync都要花很多時間,然后再進行其他一系列操作,這使它很煩人從我的Git倉庫直接提交到P4。所以我編寫了一個腳本,將我的Git倉庫與我的P4工作區同步,然后使用P4提交。

現在,這使我可以在進行更改時使用Git的所有功能,然后僅使用P4提交即可。

請記住,perforce為分支創建副本,而Git只是為新分支創建了一個指針,這要快得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM