整體需求
1、 實現(xiàn)基于Git代碼庫分支合并過程中,代碼沖突在線解決的可視化工具。
2、支持用戶在受理 Pull Request、Cherry-Pick 過程中,通過產(chǎn)品提供的在線解決沖突能力完成分支代碼沖突文件的在線比對、解決。并將解決沖突后的代碼文件應用至目標分支。
需求一:沖突文件列表
1需求描述
在 Pull Request 處理頁面,優(yōu)化改進頁面呈現(xiàn)結構,通過將存在沖突的文件,按照代碼庫的層級結構做 Tree 型數(shù)據(jù)展示呈現(xiàn)。
2功能需求
(1)Tree 型結構展示
----按照代碼庫文件目錄的層級結構,以 Tree 的呈現(xiàn)方式展示存在沖突的代碼文件,支持按照 Commit 維度在 Tree 中切換沖突文件內容。
----Tree 中的數(shù)字圖標可不進行展示
----存在沖突的文件左側圖標默認為紅色,沖突解決完畢自動變?yōu)榫G色。同時沖突解決完畢后,實現(xiàn)自動減少沖突文件總數(shù)、移動已解決沖突的文件至 變更文件 列表內。
(2)雙蘭展示
----用戶點擊左側 Tree 中任意沖突文件,右側展示對應的沖突內容并以兩欄方式呈現(xiàn)。其中左側為源分支代碼文件內容,右側為目標分支代碼文件內容。
----兩欄對比中需要以區(qū)塊、顏色標注對應的沖突內容。
(3)解決沖突操作入口
點擊解決沖突操作按鈕,彈出解決沖突頁面,完成沖突的處理。
需求二:解決沖突
1需求描述
用戶在該頁面內可以瀏覽沖突文件的具體沖突信息,對存在沖突的文件內容進行左右對比、快速替換、編輯保存、切換上一個/下一個沖突文件、取消等操作。
2功能需求
(1)三欄展示
----頁面主題以三欄結構進行展示,左側=源分支文件,中間=臨時區(qū)(可編輯內容)、右側=目標分支文件。
----三欄呈現(xiàn)過程中,需要通過顏色表示出存在沖突的文件內容區(qū)塊。其中紅色表示沖突、綠色表示新增內容。
(2)比對邏輯
---左側內容與右側內容進行全文交叉比對,即:排除左側與右側內容的差異點組合成新的內容并呈現(xiàn)在中間區(qū)域。以中間區(qū)域為準,展示與左側、右側之間的差異內容,并通過不同的顏色進行標記識別。
---中間區(qū)域默認內容以左側內容為準,與右側內容對比。
---中間區(qū)域支持編輯。
(3)沖突處理
----支持在三欄區(qū)域內點擊 >> << 圖標按鈕實現(xiàn)內容向中間區(qū)域的替換;
----支持一鍵應用左側或右側內容替換中間區(qū)域內容
----支持一鍵同時應用左右兩側內容,實現(xiàn)內容合并至中間區(qū)域,并在中間區(qū)域實現(xiàn)沖突內容的編輯修改。
4 參照
IDEA or 更多其他 IDE 或 Git 客戶端的代碼沖突解決界面與實現(xiàn)邏輯。