我做了一個相當大的重構,構建了一個二進制文件並提交給QA進行測試。我希望在等待QA迴歸時開始研究新功能,假設我可能必須根據質量檢查結果返回並更改一些內容。與此Git工作流程等效的Perforce工作流程是什麼?貨架?
在Git中,我會在分支bigRefactor
上進行重構,基於此構建一個構建,提交到QA,然後從bigRefactor
分支postBigRefactorNewFeature
並繼續工作。當QA返回所需的更改時,我會切換回bigRefactor
,進行必要的更改,提交,然後切換到postBigRefactorNewFeature
和git rebase
或git cherry-pick
,以將我的更改從bigRefactor
轉換爲postBigRefactorNewFeature
。
在Perforce中,我可以想出的最好方法是將我用於QA的文件擱置在變更列表A上,並帶有描述「大型重構」,而無需在本地恢復,將本地更改(現在複製到書架)移動到帶有說明的新變更表B「發佈大型重構新功能」,然後繼續工作。當QA回來時,我將不得不擱置正在更改列表B中處理的內容,還原,從變更列表A取消擱置,進行必要的更改,然後以某種方式將變更列表B中的文件合併到工作區中。
據我所知,沒有辦法將擱板合併到工作區的當前狀態。我怎樣才能做到這一點?
感謝您的回答。使用P4再過幾個月,貨架並沒有真正削減它。不幸的是,Perforce分支在某些方面嚴重缺乏 - 例如,沒有辦法在分支上修改兩個版本之間的差異,所以如果我修復了作爲重構的一部分的分支上的錯誤,我不能將* *錯誤修復回到主分支上,因爲Perforce希望合併整個文件,而不僅僅是修復錯誤的差異塊。 – damian 2015-02-23 13:20:00
我一直都在描述櫻桃。我簡單地這樣做:p4集成了//depot/branch/[email protected]=NNN // depot/main/...,其中NNN是我想要集成的特定變更列表。還有更多的例子:更多細節見'p4 help revision'。 – 2015-02-23 14:43:01
「沒有辦法讓櫻桃在分支上的兩個修訂版本之間選擇差異」。這意味着,如果我提交branch/file.cs#1,branch/file.cs#2,branch/file.cs#3,則無法將* 2和#3之間的差異僅帶到main /file.cs,忽略#1和#2之間的差異。 – damian 2015-03-05 13:04:50