簡體   English   中英

如何將Perforce變更列表基於另一個掛起的變更列表

[英]How to base a Perforce changelist on another pending changelist

假設我已經完成了作業A的一些代碼,但是在對代碼進行審查之前無法p4 submit 現在,我必須繼續進行作業B,這取決於我在作業A中所做的更改。

一個將如何確保來找工作的保存更改,使他們能夠獨立后提交(后也許有進一步的修改), 保存作業B的修改(DIFF A..B) 到一個新的修改(這需要在某個時候可以擱置,以便也可以對其進行審核)?

這是分支的好用例。 嘗試對貨架進行所有處理的麻煩在於,擱置的修訂版是無常的,因此您不能擁有基於它們的歷史記錄。 如果創建分支,則可以將更改與其他所有人都在使用的文件隔離開,但仍將其永久保存在某個位置。

黃金法則是“對不兼容的提交策略進行分支”。 在這種情況下,您需要提交未審閱的工作(以便您可以在其上做更多工作),但是您所在的分支不允許未經審閱的工作-因此,創建一個新分支即可!

在此示例中,我假設您正在使用流,因為它可以使一切更快。 相同的確切工作流發生在非托管分支上,只是鍵入的命令更多。

因此,假設您當前處於流“主”中,並且您尚未提交更改。 將您的更改帶到一個新分支中(假設您的名字叫鮑勃,我將其稱為“ dev-bob”),如下所示:

p4 switch -r -c dev-bob

現在提交:

p4 submit

現在繼續進行其他更改。

要將您的更改放入“主要”並擱置以供審核,請執行以下操作:

p4 switch main
p4 merge --from dev-bob
p4 resolve -am
p4 shelve

要使所有內容都達到dev-bob的特定更改“ A”,您可以在合並命令中添加“ @A”。

我相信perforce是不可能的。

一種解決方法是擁有工作空間的兩個副本。 當你與一個任務完成, 擱置在第一個工作空間中的變更列表。 保留此代碼副本,直到完成代碼審核為止。

現在,移至第二個工作區,為作業A 擱置已保存的變更列表,並在作業B的基礎上進行任何更改。

將作業A提交到服務器后,請在第二個工作空間上執行p4同步 ,而p4 diff將顯示在作業A頂部所做的更改。

如果我可以在這里發表我的看法。

決不能有任何情況阻止您提交代碼。 作為開發人員,您應該能夠隨時提交所需的任何代碼。 代碼應在提交后再進行審核。 源代碼控制的全部目的在於它控制源代碼,一旦代碼進入,您就可以回滾,修改,刪除它,但是您有一條記錄。

如果您被迫跳過箍來完成您所描述的基本操作,那么公司中的工作流程就會混亂,或者管理員不懂如何以最瑣碎的方式使用perforce。

有很簡單的方法可以使您的代碼分開直到被檢查(分支是最簡單的),使代碼脫離源代碼控制並不是其中一種。

想象一下,如果您在檢查代碼之前無法檢入代碼,那么github.com將如何停止運行。

您是否考慮過使用Perforce的“克隆,提取,推送”支持?

您的服務器和客戶端都必須至少為2015.1,但是一旦達到,您就可以在工作站上復制代碼的副本,提交對代碼的各種更改,進行分支,將分支或架子推入您的審閱服務器進行審閱等

除了在克隆和中央服務器之間復制更改之外,您還可以將更改從一個DVCS實例復制到另一個DVCS實例,從而使許多開發人員都覺得方便的許多DVCS工作流。

暫無
暫無

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

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