TWI773939B - 版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體 - Google Patents
版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體 Download PDFInfo
- Publication number
- TWI773939B TWI773939B TW108140906A TW108140906A TWI773939B TW I773939 B TWI773939 B TW I773939B TW 108140906 A TW108140906 A TW 108140906A TW 108140906 A TW108140906 A TW 108140906A TW I773939 B TWI773939 B TW I773939B
- Authority
- TW
- Taiwan
- Prior art keywords
- code
- bug
- branch
- version
- main line
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本發明實施例提出一種版本管理系統,版本管理系統中包含程式碼版本控制系統、臭蟲管理系統及代理系統。程式碼版本控制系統與臭蟲管理系統可透過代理系統進行對應連接,代理系統會與程式碼版本控制系統與臭蟲管理系統進行互動,以自動更新臭蟲管理系統的臭蟲狀態,並建立程式分支、除錯及提供對應的解決方案。藉此,降低人為錯誤發生的可能性,並提高軟體版本控制的效率。
Description
本發明是關於一種管理系統,特別是關於一種版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體。
在進行專案管理時,大都會使用臭蟲管理系統(bug management system)來進行問題(issue)的追蹤。當一個問題被發現後,問題本身可以依照現象、重現手法、問題嚴重性等等,在臭蟲管理系統上開單追蹤。再者,每個問題本身通常會有對應處理或能夠解決該問題的人 (owner)。
另一方面,在軟體釋出後,一樣會有面臨臭蟲必須要處理的狀況,並配合專案管理的運作。當一個問題確認為軟體問題(software problem)後,軟體工程師會被指派(assign)成解決問題的負責人,並開始追蹤問題、了解問題及/或解決問題。
然而,當工程師被指定成問題的負責人後,必須自行在臭蟲管理系統中對問題進行維護,例如描述當前處理狀態。如果問題本身必須修改程式碼才能解決,則工程師在修改程式碼時,需要將修改後的程式碼與原始程式碼進行版本控制。待解決方案(solution)確認之後,工程師再將解決方案與原始程式碼進行合併 (merge)。接著,工程師還需要回到臭蟲管理系統修改此問題的當前處理狀態,完成解決臭蟲的流程。在這整個過程中,工程師必須負責對兩個不同類別系統的狀態做人工更新,故容易發生不同類別系統沒有同步更新狀態的人為錯誤。
因此,如何自動更新臭蟲管理系統中的臭蟲狀態,降低人為錯誤發生的可能性,並提高軟體版本控制的效率,為本領域所需改進的問題之一。
為了解決上述的問題,本揭露內容之一態樣提供了一種版本管理系統,包含:一程式碼版本控制系統、一臭蟲(bug)管理系統及一代理系統。程式碼版本控制系統用以選擇一主線(master branch)。臭蟲(bug)管理系統用以接收一臭蟲資訊。其中,臭蟲資訊包含一臭蟲狀態。代理系統用以於接收對應臭蟲資訊的一確認指派(assign)訊息後,設定臭蟲狀態為一工作(working)狀態。其中,因應於代理系統設定臭蟲狀態為工作狀態,代理系統控制程式碼版本控制系統基於主線產生對應該臭蟲資訊的一分支,程式碼版本控制系統合併修改後的分支的程式碼至一候選分支。其中,因應於一釋出時間到達時,代理系統控制程式碼版本控制系統將候選分支合併到主線,代理系統將臭蟲狀態設定為一驗證狀態。
為了解決上述的問題,本揭露內容之一態樣提供了一種版本管理方法,包含:選擇一主線;接收一臭蟲資訊;其中,臭蟲資訊包含一臭蟲狀態;於接收對應臭蟲資訊的一確認指派訊息後,設定臭蟲狀態為一工作狀態;其中,因應於設定臭蟲狀態為工作狀態,基於主線產生對應臭蟲資訊的一分支,合併修改後的分支的程式碼至一候選分支,因應於一釋出時間到達時,將候選分支合併到主線,並將臭蟲狀態設定為一驗證狀態。
為了解決上述的問題,本揭露內容之一態樣提供了一種非揮發性電腦可讀取記錄媒體,用以儲存包含複數指令的一或多個電腦程式,當執行此些指令時,將致使一或多個處理單元執行複數操作包含:接收一臭蟲資訊;其中,臭蟲資訊包含一臭蟲狀態;於接收對應臭蟲資訊的一確認指派訊息後,設定臭蟲狀態為一工作狀態;以及響應於設定臭蟲狀態為工作狀態,基於一主線產生對應臭蟲資訊的一分支,合併修改後的分支的程式碼至一候選分支,因應於一釋出時間到達時,將候選分支合併到主線,並將臭蟲狀態設定為一驗證狀態。
本發明實施例所示之版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體,程式碼版本控制系統與臭蟲管理系統可透過代理系統進行對應連接,工程師(或臭蟲負責人)只需藉由與代理系統進行互動,即可完成臭蟲管理系統的臭蟲狀態更新,並建立程式分支、除錯及提供對應的解決方案。由於臭蟲管理系統與解決方案有建立連接,解決方案可以儲存在儲存裝置中,工程師(或臭蟲負責人)可以透過點選對應解決方案的程式碼連結,以從儲存裝置中取得相應的可執行軟體或完整程式碼。由於問題本身也是基於某解決方案測得的結果,所以可重現問題的軟體程式碼也可由代理系統到儲存裝置中查找參照表以取得。此外,被指派處理問題的工程師(或臭蟲負責人)一旦接受指派,代理系統可自動更新臭蟲管理系統上對應問題的臭蟲狀態,並自動產生與臭蟲對應的一個或多個程式碼分支,供工程師(或臭蟲負責人)進行原始碼除錯及修改。此外,代理系統可依臭蟲管理系統所設定的預期修正日期(軟體釋出時間),在程式碼版本控制系統開立方案候選分支,候選分支可供一個或多個解決方案的程式碼進行合併,藉此將一個或多個臭蟲所對應的解決方案作一整合,以利專案的軟體版本作較好的控管,同時也節省各測試人員回歸測試所需付出的成本。分支上的程式碼相應的解決方案確認後,可被合併入候選分支,在釋出時間到達時,候選分支便會被合併入程式主線,而臭蟲管理系統中的狀態也會立即由代理系統更新,藉此,降低人為錯誤發生的可能性,並提高軟體版本控制的效率。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的申請專利範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於申請專利中使用如”第一”、"第二"、"第三"等詞係用來修飾申請專利中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
請一併參照第1A~1C、2圖,第1A圖係依照本發明一實施例繪示一種版本管理系統100之示意圖。第1B圖係根據本發明之一實施例繪示一種版本管理系統150之方塊圖。第1C圖係根據本發明之一實施例繪示一種程式碼版本控制系統10的運作方法之示意圖。第2圖係根據本發明之一實施例繪示一種版本管理方法200之流程圖。
於一實施例中,如第1A圖所示,版本管理系統100包含程式碼版本控制系統10、臭蟲(bug)管理系統20及代理系統30。程式碼版本控制系統10、臭蟲管理系統20及代理系統30可以各自以軟體、韌體或具有運算能力的電子裝置(如電腦)以實施之。於一實施例中,程式碼版本控制系統10與代理系統30之間具有通訊連結LK1,用以傳遞訊息,而臭蟲(bug)管理系統20與代理系統30之間具有通訊連結LK2,用以傳遞訊息。
於一實施例中,如第1B圖所示,版本管理系統150包含程式碼版本控制系統10、臭蟲管理系統20、代理系統30及儲存裝置40。儲存裝置40分別與程式碼版本控制系統10、臭蟲管理系統20、代理系統30以有線/無線方式連結。儲存裝置40可由唯讀記憶體、快閃記憶體、軟碟、硬碟、光碟、隨身碟、磁帶、可由網路存取之資料庫或熟悉此技藝者可輕易思及具有相同功能之儲存媒體以實現之。
於一實施例中,版本管理方法200可以由第1A圖或第1B圖所示的元件實現。版本管理方法200能夠代理工程師進行臭蟲管理系統20的狀態維護,使工程師在認養問題(issue)之後,自動更新臭蟲管理系統20的問題狀態,並於程式碼版本控制系統10中自動產生對應臭蟲資訊的一分支,待解決方案(solution)確認後,將解決方案合併至程式主線(master branch),臭蟲管理系統20中的狀態也會對應更新。以下更詳細的描述版本管理方法200的各步驟。
於步驟210中,程式碼版本控制系統10選擇一主線。
於一實施例中,程式碼版本控制系統10可將軟體依分支做版本管控,並選擇一分支(branch)為主線。其中,分支是由某個版本的程式碼或軟體中建立複製版本,在分支出來後的多個版本中,各自可以獨立進行修改。
如第1C圖所示,分支(例如分支b1、b2)會形成樹狀結構,主線mb為最源頭,沒有父分支的分支。於第1C圖中,時序是由上而下進行,並預計於釋出時間TL到達時,釋出(release)解決方案。此外,每個節點n0~n10代表軟體的全部或一部分的程式碼;例如,主線mb上包含節點n0、n1、n5及n6,各自代表對應之時間的完整軟體版本;例如,分支b1上包含節點n7~n8;又例如,分支b2上的節點n2~n4各自代表某段程式碼修改後的版本,此段程式碼修改完畢的版本為節點n4。當節點n4的程式碼經編譯後,產生可正常運作的執行檔時,代表此段程式碼可以合併到候選分支cb;候選分支cb上包含節點n9~n10。候選分支cb的相關內容將於後敘詳述之。
於步驟220中,臭蟲管理系統20用以接收一臭蟲資訊。
於一實施例中,臭蟲資訊可以是由驗證人員輸入到臭蟲管理系統20,或是由一測試系統自動匯入臭蟲管理系統20。
於一實施例中,請一併參閱第4圖,第4圖係根據本發明之一實施例繪示一種臭蟲管理系統20的介面400之示意圖,介面400用以顯示至少一臭蟲的相關資訊。於一實施例中,介面400顯示一臭蟲名稱41為“A test issue”,此臭蟲資訊至少包含一臭蟲狀態43,臭蟲狀態43初始時為一開立狀態“Open”。
於一實施例中,臭蟲資訊更包含負責人資訊42,負責人初始時為“Unassigned”,臭蟲管理系統20可以從儲存裝置40讀取對應臭蟲資訊的負責人名字或是由人工方式輸入負責人名字。
於一實施例中,臭蟲資訊更包含說明資訊44(例如對於此臭蟲作進一步的描述)、等級資訊45(例如為2,數值越小代表越需要被優先處理,此數值的規則可以事先定義之)、臭蟲單號、臭蟲識別碼及/或程式碼連結46。其中,第4圖中的程式碼連結46的內容為程式碼連結“c0016384”(亦可以由超連結方式實現之)。於一實施例中,使用者可以點選程式碼連結46的內容,以觀看對應此臭蟲的程式碼。
於一實施例中,臭蟲控制管理系統20透過程式碼連結46由儲存裝置40取得對應臭蟲的程式碼,對應臭蟲的程式碼例如是指發生錯誤的程式碼區段。於一實施例中,負責人可以透過臭蟲控制管理系統20點選程式碼連結46,以開啟程式碼連結46所連結到的臭蟲的程式碼,臭蟲的程式碼可以透過一介面顯示出來。
請一併參閱第5圖,第5圖係根據本發明之一實施例繪示一種程式碼連結46的介面500之示意圖,介面500中的程式碼連結51顯示為“c0016384”。於一實施例中,臭蟲控制管理系統20依據第4圖中的程式碼連結46,由儲存裝置40取得對應臭蟲的原始程式碼52。
於步驟230中,代理系統30用以於接收對應臭蟲資訊的一確認指派(assign)訊息後,設定一臭蟲狀態43為一工作狀態。
於一實施例中,臭蟲管理系統20於接收到臭蟲資訊後,傳送一指派負責人訊息到代理系統30,代理系統30傳送一詢問資訊到對應指派負責人訊息的一使用者裝置。當使用者裝置回傳確認指派訊息到代理系統30後,代理系統30將臭蟲狀態43設定為工作狀態。
舉例而言,臭蟲管理系統20可以在收到臭蟲資訊後,以電子郵件、網頁或其他收發系統傳送一詢問資訊給對應負責人(例如為“Jack”)的使用者裝置(例如為手機),負責人可以回信或按下確認指派按鈕(button),以傳送確認指派訊息到代理系統30,此過程代表負責人確認其將會對此臭蟲提供對應的解決方案。
於一實施例中,請一併參閱第6圖,第6圖係根據本發明之一實施例繪示一種臭蟲管理系統20的介面600之示意圖。第6圖與第4圖的不同之處在於,代理系統30用以於接收一確認指派(assign)訊息後,將負責人資訊42設定為“Jack”,並將臭蟲狀態43設定為一工作狀態“Working”。
於步驟240中,因應於代理系統30設定臭蟲狀態為工作狀態,代理系統30控制程式碼版本控制系統10基於主線mb產生對應臭蟲資訊的一分支(例如分支b2)。
於一實施例中,當代理系統30判斷一釋出時間TL已被設定時,代理系統30控制程式碼版本控制系統10呼叫一候選分支cb。
更具體而言,因應於代理系統30判斷釋出時間TL已被設定時,代表程式碼版本控制系統10已產生候選分支cb,因此代理系統30透過通訊連結LK1發出呼叫訊息S1(顯示於第1C圖),呼叫訊息S1用以促使程式碼版本控制系統10呼叫候選分支cb。
於一實施例中,候選分支cb用於整合一個或多個解決方案的程式碼,例如當分支b2及/或分支b1的程式碼修改並驗證完成(代表分支b2及/或分支b1對應的臭蟲問題被解決)後,程式碼版本控制系統10將分支b2及/或分支b1的程式碼合併到候選分支cb上。
例如,臭蟲資訊的名稱為A,則代理系統30控制程式碼版本控制系統10基於主線mb產生對應臭蟲A的一分支b1;又例如,臭蟲資訊的名稱為B,則代理系統30控制程式碼版本控制系統10基於主線mb產生對應臭蟲B的一分支b2。
於一實施例中,代理系統30促使程式碼版本控制系統10基於主線mb產生對應多個臭蟲資訊的多個分支。例如,代理系統30促使程式碼版本控制系統10基於主線mb產生對應臭蟲A的分支b1,並產生對應臭蟲B的分支b2。
於一實施例中,除了單一候選分支cb外,臭蟲本身的處理,也會產生與臭蟲相應的分支,以命令“git”為例,命令範例為:
git checkout -b b1
git checkout -b b2
其中,第一條臭蟲可對應到分支b1,第二條臭蟲可對應到b2。每個臭蟲分別對應到各自的分支b1、b2,由此可知,臭蟲的解決相互獨立。
於步驟250中,程式碼版本控制系統10合併修改並驗證完成後的分支的程式碼(例如為分支b2)至候選分支cb。
例如,假設分支b2用以解決臭蟲B問題,當分支b2上的程式碼修改並驗證完成(代表分支b2對應的臭蟲B問題被解決)後,程式碼版本控制系統10將分支b2上的程式碼合併入候選分支cb。
於一實施例中,請一併參閱第7圖,第7圖係根據本發明之一實施例繪示一種分支b2上的程式碼72的介面700之示意圖。第7圖中的程式碼連結71的內容為程式碼連結“ccbf2681”,工程師可以透過修改分支b2上的程式碼72,將程式碼72修改為可準備釋出的解決方案,以處理臭蟲(例如分支b2對應的臭蟲B)所造成的問題。
更具體而言,修改並驗證後的程式碼72以節點n4代表之,將修改並驗證後的程式碼72合併入候選分支cb後,產生的候選分支代表可準備釋出的軟體解決方案。
當分支b2上的程式碼72修改並驗證完成(代表分支b2對應的臭蟲B問題被解決)後,程式碼版本控制系統10將分支b2上的程式碼72合併入候選分支cb中,以產生候選分支的節點n10(以節點n10代表之,節點n10候選分支可以視為用以解決對應臭蟲的新版解決方案)。
由於程式碼的修改都在分支(例如為分支b2)上進行,因此,若修改有問題,也不會影響到分支前的程式行為。此外,當解決方案被驗證後,程式碼版本控制系統10可將此解決方案(例如將此解決方案的代碼定義為b2bugB,代表分支b2對應臭蟲B的解決方案)合併入候選分支cb中,此合併的操作亦可由代理系統30為之。其中,合併的方法以命令 “git”為例,命令範例為:
git checkout candidate_branch
git merge b2bugB
程式碼版本控制系統10或代理系統30先呼叫候選分支cb(代碼candidate_branch),再進行將此解決方案(代碼b2bugB)併入候選分支cb中。
於一實施例中,此解決方案(代碼b2bugB)併入候選分支cb的方式是直接覆蓋或修改原始的候選分支cb中的程式碼,以視為新版解決方案,因此,此時候選分支的代碼為“candidate_branch”。之後,當釋出時間TL到達時,候選分支可與主線mb合併。
於一實施例中,程式碼版本控制系統10透過驗證、測試及/或運行候選分支,以確認候選分支可以解決臭蟲問題。
於一實施例中,當候選分支未通過驗證,則程式碼版本控制系統10將分支(例如為分支b2)的程式碼由候選分支退出(remove)。
藉由合併一個或多個解決方案,可將一個或多個臭蟲各自所對應的解決方案作整合,以利專案的軟體版本進行較佳的控管,同時也節省各驗證人員回歸驗證(regression test)所需付出的成本。
於步驟260中,因應於釋出時間TL到達時,代理系統30控制程式碼版本控制系統10將候選分支合併到主線mb,代理系統30將臭蟲狀態設定為一驗證狀態。
於一實施例中,請一併參閱第8圖,第8圖係根據本發明之一實施例繪示一種臭蟲管理系統20的介面400之示意圖。第8圖與第6圖的不同之處在於,當釋出時間TL到達時,代理系統30控制程式碼版本控制系統10將新版候選分支合併到主線mb,代理系統30將臭蟲狀態設定為驗證狀“Verify”,且經過步驟260的合併後程式碼連結46的內容設定為“ccbf2681”,透過程式碼連結46可以對應新的臭蟲單號,且經將新版候選分支合併到主線mb後,針對新版主線產生新的程式碼單號。
於一實施例中,當釋出時間TL到達時,代理系統30控制程式碼版本控制系統10將候選分支合併到主線mb。其中,合併的方法以命令 “git”為例,命令範例為:
git checkout master
git merge candidate_branch
其中,代碼“master”代表主線mb。程式碼版本控制系統10先呼叫主線mb,再將候選分支(代碼“candidate_branch”)合併到主線mb。
於一實施例中,代理系統30促使程式碼版本控制系統10將候選分支合併到主線mb後,代理系統30將完成合併後的主線mb的程式碼視為一新版主線(以節點n5表示之),將新版主線的程式碼儲存到儲存裝置40,並對應新版主線產生程式碼連結46。另一方面,臭蟲控制管理系統10亦可以透過程式碼連結46由儲存裝置40取得新版主線的程式碼。
於一實施例中,當候選分支通過驗證,則因應於釋出時間TL到達時,代理系統30促使程式碼版本控制系統10將候選分支合併到主線mb。程式碼版本控制系統10完成合併後,透過通訊連結LK1傳送一完成訊息S2(顯示於第1C圖中)通知代理系統30合併已完成,代理系統30收到完成訊息S2後,透過通訊連結LK2自動將臭蟲管理系統20中的臭蟲狀態設定為驗證狀態“Verify”。
在第1C圖的例子中,當軟體釋出時間TL已到達時,必須將候選分支(即,修改並驗證後的候選分支cb,以節點n10表示之)與主線mb合併。於此例中,候選分支僅合併了分支b2(以節點n4表示分支b2之驗證正確的程式碼,節點n4的內容在釋出時間TL已到達之前合併至節點n10。接著,在釋出時間TL已到達時,節點n10的內容與主線mb節點n5的內容合併,以產生新版主線),因為分支b1可能尚未有解決方案,或是因為某些原因而推遲了出版時間而未能在釋出時間TL已到達之前合併入候選分支中,使得分支b1所對應的臭蟲A在此新版主線中未有解決方案。對於未被合併的分支b1,若未來有了解決方案後,在之後有新開立的候選分支時,能在適宜時間,合併至新開立的候選分支。
於一實施例中,請一併參閱第3圖,第3圖係根據本發明之一實施例繪示一種版本管理方法300之流程圖。第3圖的步驟310~330、350~360分別與第2圖的步驟210~230、250~260相同,故不贅述之。第3圖與第2圖的不同之處在於,步驟335~347更進一步判斷釋出時間TL是否已被設定及其對應操作。
於步驟335中,代理系統30控制程式碼版本控制系統10基於主線mb產生對應臭蟲資訊的一分支(例如分支b2)。
於步驟340中,代理系統30判斷釋出時間TL是否已被設定。若代理系統30判斷釋出時間TL已被設定,則進入步驟350。若代理系統30判斷釋出時間TL尚未被設定,則進入步驟345。
於一實施例中,代理系統30可以藉由搜尋臭蟲管理系統20中關於釋出時間TL的欄位,以判斷釋出時間TL是否已被設定。
於步驟345中,代理系統30設定釋出時間TL或是由儲存裝置40中取得釋出時間TL。其中,代理系統30可以依據一事先設定好的值或使用者輸入的值,設定釋出時間TL。
於步驟347中,代理系統30控制程式碼版本控制系統10產生候選分支cb。
於一實施例中,程式碼版本控制系統10可透過下命令的方式,產生候選分支cb,以命令“git”為例,命令範例為:
git checkout -b candidate_branch
藉此,程式碼版本控制系統10依據此命令可以產生候選分支cb。本領域具通常知識者應可理解,本案是以命令“git”為例,並不侷限於此,例如,亦可以採用命令“SVN”的方式。
本發明實施例所示之版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體,程式碼版本控制系統與臭蟲管理系統可透過代理系統進行對應連接,工程師(或臭蟲負責人)只需藉由與代理系統進行互動,即可完成臭蟲管理系統的臭蟲狀態更新,並建立程式分支、除錯及提供對應的解決方案。由於臭蟲管理系統與解決方案有建立連接,解決方案可以儲存在儲存裝置中,工程師(或臭蟲負責人)可以透過點選對應解決方案的程式碼連結,以從儲存裝置中取得相應的可執行軟體或完整程式碼。由於問題本身也是基於某解決方案測得的結果,所以可重現問題的軟體程式碼也可由代理系統查詢到儲存裝置中查找參照表以取得。此外,被指派處理問題的工程師(或臭蟲負責人)一旦接受指派,代理系統可自動更新臭蟲管理系統上對應問題的臭蟲狀態,並自動產生與臭蟲對應的一個或多個程式碼分支,供工程師(或臭蟲負責人)進行原始碼除錯及修改。此外,代理系統可依臭蟲管理系統所設定的預期修正日期(軟體釋出時間),在程式碼版本控制系統開立方案候選分支,候選分支可供一個或多個解決方案的程式碼進行合併,藉此將一個或多個臭蟲所對應的解決方案作一整合,以利專案的軟體版本作較好的控管,同時也節省各測試人員回歸測試,所需付出的成本。分支上的程式碼一旦相應的解決方案確認後,可被合併入候選分支,在釋出時間到達時,候選分支便會被合併入程式主線,而臭蟲管理系統中的狀態也會立即由代理系統更新,藉此,降低人為錯誤發生的可能性,並提高軟體版本控制的效率。
100:版本管理系統
20:臭蟲管理系統
30:代理系統
LK1、LK2:通訊連結
40:儲存裝置
S1:呼叫訊息
S2:完成訊息
TL:釋出時間
200:版本管理方法
210~260、310~360:步驟
n0~n10:節點
cb:候選分支
mb:主線
b1、b2:分支
41:臭蟲名稱
42:負責人資訊
43:臭蟲狀態
44:說明資訊
45:等級資訊45
46、51、71:程式碼連結
500、400、700:介面
52:原始程式碼
72:程式碼
第1A~1B圖係依照本發明一實施例繪示一種版本管理系統之示意圖。
第1C圖係根據本發明之一實施例繪示一種程式碼版本控制系統的運作方法之示意圖。
第2圖係根據本發明之一實施例繪示一種程式碼版本控制系統的運作方法之示意圖。
第3圖係根據本發明之一實施例繪示一種版本管理方法之流程圖。
第4圖係根據本發明之一實施例繪示一種臭蟲管理系統的介面之示意圖。
第5圖係根據本發明之一實施例繪示一種程式碼連結的介面之示意圖。
第6圖係根據本發明之一實施例繪示一種臭蟲管理系統的介面之示意圖。
第7圖係根據本發明之一實施例繪示一種分支上的程式碼的介面之示意圖。
第8圖係根據本發明之一實施例繪示一種臭蟲管理系統的介面之示意圖。
200:版本管理方法
210~260:步驟
Claims (18)
- 一種版本管理系統,包含:一程式碼版本控制系統,用以選擇一主線;一臭蟲管理系統,用以接收一臭蟲資訊;其中,該臭蟲資訊包含一臭蟲狀態;以及一代理系統,用以於接收對應該臭蟲資訊的一確認指派訊息後,設定該臭蟲狀態為一工作狀態;其中,因應於該代理系統設定該臭蟲狀態為該工作狀態,該代理系統控制該程式碼版本控制系統基於該主線產生對應該臭蟲資訊的一分支,該程式碼版本控制系統合併修改後的該分支的程式碼至一候選分支;其中,因應於一釋出時間到達時,該代理系統控制該程式碼版本控制系統將該候選分支合併到該主線,該代理系統將該臭蟲狀態設定為一驗證狀態;其中,響應於該代理系統判斷該釋出時間尚未被設定時,該代理系統設定該釋出時間或是由一儲存裝置中取得該釋出時間,並控制該程式碼版本控制系統產生該候選分支。
- 如申請專利範圍第1項所述之版本管理系統,其中於該代理系統控制該程式碼版本控制系統將該候選分支合併到該主線後,該代理系統將完成合併後的該主線的程式碼視為一新版主線,將該新版主線的程式碼儲存到該儲存裝置,並對應該新版主線產生一程式碼連結,該臭蟲管理系統透過該程式碼連結由該儲存裝置取得該新版主線的程式碼。
- 如申請專利範圍第1項所述之版本管理系統,其中該臭蟲管理系統於接收到該臭蟲資訊後,傳送一指派負責人訊息到該代理系統,該 代理系統傳送一詢問資訊到對應該指派負責人訊息的一使用者裝置,響應於該使用者裝置回傳該確認指派訊息到該代理系統後,該代理系統將該臭蟲狀態設定為該工作狀態。
- 如申請專利範圍第1項所述之版本管理系統,其中響應於該程式碼版本控制系統合併修改後的該分支的程式碼至該候選分支後,該程式碼版本控制系統驗證該候選分支;其中響應於該候選分支通過驗證且該釋出時間到達時,該代理系統控制該程式碼版本控制系統將該候選分支合併到該主線,並將該臭蟲狀態設定為該驗證狀態。
- 如申請專利範圍第4項所述之版本管理系統,其中響應於該候選分支未通過驗證,則該程式碼版本控制系統將該分支的程式碼由該候選分支退出。
- 如申請專利範圍第1項所述之版本管理系統,其中:響應於該代理系統判斷該釋出時間已被設定時,代表該程式碼版本控制系統已產生該候選分支。
- 一種版本管理方法,包含:選擇一主線;接收一臭蟲資訊;其中,該臭蟲資訊包含一臭蟲狀態;於接收對應該臭蟲資訊的一確認指派訊息後,設定該臭蟲狀態為一工作狀態;以及其中,因應於設定該臭蟲狀態為該工作狀態,基於該主線產生對應該臭蟲資訊的一分支,合併修改後的該分支的程式碼至一候選分支,因應於一釋出時間到達時,將該候選分支合併到該主線,並將該臭蟲狀態設定為一驗證狀態;其中,響應於判斷該釋出時間尚未被設定時,該版本管理方法更包含: 設定該釋出時間或是由一儲存裝置中取得該釋出時間;以及控制一程式碼版本控制系統產生該候選分支。
- 如申請專利範圍第7項所述之版本管理方法,其中將該候選分支合併到該主線的步驟後,更包含:將完成合併後的該主線的程式碼視為一新版主線;儲存該新版主線的程式碼至該儲存裝置;對應該新版主線產生一程式碼連結;以及透過該程式碼連結由該儲存裝置取得該新版主線的程式碼。
- 如申請專利範圍第7項所述之版本管理方法,其中於接收到該臭蟲資訊的步驟後,更包含:傳送一指派負責人訊息;傳送一詢問資訊到對應該指派負責人訊息的一使用者裝置;以及接收來自該使用者裝置的該確認指派訊息後,將該臭蟲狀態設定為該工作狀態。
- 如申請專利範圍第7項所述之版本管理方法,更包含:驗證該候選分支;響應於該候選分支通過驗證,且該釋出時間到達時,將該候選分支合併到該主線,並將該臭蟲狀態設定為該驗證狀態。
- 如申請專利範圍第10項所述之版本管理方法,其中響應於該候選分支未通過驗證時,該版本管理方法更包含:將該分支的程式碼由該候選分支退出。
- 如申請專利範圍第7項所述之版本管理方法,其中響應於判斷該釋出時間尚未被設定時,該版本管理方法更包含:響應於判斷該釋出時間已被設定時,代表該程式碼版本控制系統已產生該候選分支。
- 一種非揮發性電腦可讀取記錄媒體,用以儲存包含複數指令的一或多個電腦程式,當執行該些指令時,將致使一或多個處理單元執行複數操作包含:接收一臭蟲資訊;其中,該臭蟲資訊包含一臭蟲狀態;於接收對應該臭蟲資訊的一確認指派訊息後,設定該臭蟲狀態為一工作狀態;以及響應於設定該臭蟲狀態為該工作狀態,基於一主線產生對應該臭蟲資訊的一分支,合併修改後的該分支的程式碼至一候選分支,因應於一釋出時間到達時,將該候選分支合併到該主線,並將該臭蟲狀態設定為一驗證狀態;響應於判斷該釋出時間尚未被設定時;設定該釋出時間或是由一儲存裝置中取得該釋出時間;以及控制一程式碼版本控制系統產生該候選分支。
- 如申請專利範圍第13項所述之非揮發性電腦可讀取記錄媒體,其中該一或多個處理單元執行該些操作更包含:傳送一指派負責人訊息;傳送一詢問資訊到對應該指派負責人訊息的一使用者裝置;以及接收來自該使用者裝置的該確認指派訊息後,將該臭蟲狀態設定為該工作狀態。
- 如申請專利範圍第13項所述之非揮發性電腦可讀取記錄媒體,該一或多個處理單元執行該些操作更包含:驗證該候選分支;響應於該候選分支通過驗證,且該釋出時間到達時,將該候選分支合併到該主線,並將該臭蟲狀態設定為該驗證狀態。
- 如申請專利範圍第13項所述之非揮發性電腦可讀取記錄媒體,該一或多個處理單元執行該些操作更包含:響應於判斷該釋出時間已被設定時,代表該程式碼版本控制系統已產生該候選分支。
- 如申請專利範圍第13項所述之非揮發性電腦可讀取記錄媒體,其中該一或多個處理單元執行該些操作更包含:響應於該候選分支未通過驗證時,將該分支的程式碼由該候選分支退出。
- 如申請專利範圍第13項所述之非揮發性電腦可讀取記錄媒體,其中該一或多個處理單元執行該些操作更包含:將完成合併後的該主線的程式碼視為一新版主線;儲存該新版主線的程式碼至該儲存裝置;對應該新版主線產生一程式碼連結;以及透過該程式碼連結由該儲存裝置取得該新版主線的程式碼。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108140906A TWI773939B (zh) | 2019-11-12 | 2019-11-12 | 版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體 |
CN201911248309.1A CN112860307B (zh) | 2019-11-12 | 2019-12-09 | 版本管理系统、方法及非挥发性电脑可读取记录媒体 |
US16/741,107 US11175912B2 (en) | 2019-11-12 | 2020-01-13 | Version management system, version management method and non-transitory computer-readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108140906A TWI773939B (zh) | 2019-11-12 | 2019-11-12 | 版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202119204A TW202119204A (zh) | 2021-05-16 |
TWI773939B true TWI773939B (zh) | 2022-08-11 |
Family
ID=75847542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108140906A TWI773939B (zh) | 2019-11-12 | 2019-11-12 | 版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11175912B2 (zh) |
CN (1) | CN112860307B (zh) |
TW (1) | TWI773939B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200408940A (en) * | 2002-10-21 | 2004-06-01 | I2 Technologies Inc | Automatically identifying a program error in a computer program |
US20080066049A1 (en) * | 2006-09-12 | 2008-03-13 | Sandeep Jain | Method for enforcing change policy based on project state |
CN105630522A (zh) * | 2014-10-31 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种Web应用的更新方法、装置和系统 |
TW201913374A (zh) * | 2017-08-21 | 2019-04-01 | 中華電信股份有限公司 | 微服務軟體開發基礎架構下自動化持續整合系統及其方法 |
CN109784595A (zh) * | 2017-11-10 | 2019-05-21 | 常州坤宝软件科技有限公司 | 一种服务于企业内部软件开发质量管理系统 |
US20190196946A1 (en) * | 2017-12-21 | 2019-06-27 | Sap Se | Software testing systems and methods |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8667465B2 (en) * | 2008-03-31 | 2014-03-04 | Accurev, Inc. | System for estimating a software product release time from version information |
US8365140B2 (en) * | 2007-12-20 | 2013-01-29 | Hsbc Technologies Inc. | Automated methods and systems for developing and deploying projects in parallel |
US20090210852A1 (en) * | 2008-02-19 | 2009-08-20 | International Business Machines Corporation | Automated merging in a software development environment |
CN101814026A (zh) | 2010-01-11 | 2010-08-25 | 北京世纪高通科技有限公司 | 软件开发的系统和方法 |
CN102110051B (zh) * | 2010-12-31 | 2014-02-05 | 北京邮电大学 | 应用程序切片技术的静态缺陷检测方法 |
US8856169B2 (en) * | 2011-07-13 | 2014-10-07 | Case Western Reserve University | Multi-modality, multi-resource, information integration environment |
CN103593295B (zh) * | 2013-11-26 | 2017-01-04 | 迈普通信技术股份有限公司 | 一种多分支软件缺陷跟踪方法及系统 |
US9684507B2 (en) * | 2015-03-31 | 2017-06-20 | Ca, Inc. | Effective defect management across multiple code branches |
CN105094851A (zh) | 2015-09-06 | 2015-11-25 | 浪潮软件股份有限公司 | 一种基于Git随时发布代码的实现方法 |
CN105653261B (zh) * | 2015-12-22 | 2019-04-12 | 曙光云计算集团有限公司 | 基于云计算环境下的开发集成测试方法及系统 |
CN106326110A (zh) | 2016-08-10 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种系统版本开发过程中bug缺陷的修复方法及系统 |
US10740093B2 (en) * | 2016-09-01 | 2020-08-11 | Dropbox, Inc. | Advanced packaging techniques for improving work flows |
CN107193677B (zh) * | 2017-04-18 | 2020-11-20 | 广州视源电子科技股份有限公司 | 代码缺陷的通知方法及系统 |
US20190026663A1 (en) * | 2017-07-20 | 2019-01-24 | Ca, Inc. | Inferring time estimates in workflow tracking systems |
US10048944B1 (en) * | 2017-08-03 | 2018-08-14 | Alchemy Cloud, Inc. | Seamless integration of computer and human generated code |
CN108415694A (zh) * | 2018-02-28 | 2018-08-17 | 山东汇贸电子口岸有限公司 | 一种基于GitFlow工作流的Android敏捷开发系统及方法 |
JP7015207B2 (ja) * | 2018-04-27 | 2022-02-02 | 株式会社日立製作所 | ビジュアルプログラミングツールを用いてフローを作成することを支援する装置および方法 |
US10691436B1 (en) * | 2018-06-28 | 2020-06-23 | Atlassian Pty Ltd | Systems and methods for tracking source code deployments |
CN109472447A (zh) * | 2018-09-30 | 2019-03-15 | 广东荟星阁网络科技有限公司 | 酒店服务智能化管理方法、服务器、系统及存储介质 |
US11727117B2 (en) * | 2018-12-19 | 2023-08-15 | Red Hat, Inc. | Vulnerability analyzer for application dependencies in development pipelines |
US10671373B1 (en) * | 2018-12-30 | 2020-06-02 | Microsoft Technology Licensing, Llc | Mechanism for automatically incorporating software code changes into proper channels |
US11275659B2 (en) * | 2019-02-12 | 2022-03-15 | Red Hat Israel, Ltd. | Proactive cherry-picking to back-port commits |
CN110069260A (zh) * | 2019-03-16 | 2019-07-30 | 平安城市建设科技(深圳)有限公司 | 跨版本的分布式管理方法、装置、设备及存储介质 |
CN109976801B (zh) * | 2019-04-24 | 2022-09-09 | 网宿科技股份有限公司 | 一种代码开发方法、系统及计算机可读存储介质 |
-
2019
- 2019-11-12 TW TW108140906A patent/TWI773939B/zh active
- 2019-12-09 CN CN201911248309.1A patent/CN112860307B/zh active Active
-
2020
- 2020-01-13 US US16/741,107 patent/US11175912B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200408940A (en) * | 2002-10-21 | 2004-06-01 | I2 Technologies Inc | Automatically identifying a program error in a computer program |
US20080066049A1 (en) * | 2006-09-12 | 2008-03-13 | Sandeep Jain | Method for enforcing change policy based on project state |
CN105630522A (zh) * | 2014-10-31 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种Web应用的更新方法、装置和系统 |
TW201913374A (zh) * | 2017-08-21 | 2019-04-01 | 中華電信股份有限公司 | 微服務軟體開發基礎架構下自動化持續整合系統及其方法 |
CN109784595A (zh) * | 2017-11-10 | 2019-05-21 | 常州坤宝软件科技有限公司 | 一种服务于企业内部软件开发质量管理系统 |
US20190196946A1 (en) * | 2017-12-21 | 2019-06-27 | Sap Se | Software testing systems and methods |
Non-Patent Citations (1)
Title |
---|
網路文獻 admin,Git分支管理策略,2018/11/06,http://wangzhenkai.com/article/13 _ _ _ _ * |
Also Published As
Publication number | Publication date |
---|---|
TW202119204A (zh) | 2021-05-16 |
US20210141638A1 (en) | 2021-05-13 |
US11175912B2 (en) | 2021-11-16 |
CN112860307B (zh) | 2024-04-19 |
CN112860307A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11642788B2 (en) | System and method for detecting and fixing robotic process automation failures | |
US11467952B2 (en) | API driven continuous testing systems for testing disparate software | |
CN110245088B (zh) | 一种基于Jenkins的缺陷自动验证系统及验证方法 | |
WO2020140820A1 (zh) | 软件测试方法、系统、装置、设备、介质及计算机程序产品 | |
CN109670951B (zh) | 一种区块链智能合约调试发布方法及系统 | |
US8677348B1 (en) | Method and apparatus for determining least risk install order of software patches | |
US9482683B2 (en) | System and method for sequential testing across multiple devices | |
CN109726099A (zh) | 一种应用灰度发布方法、装置及设备 | |
CN108228190B (zh) | 持续集成和交付方法、系统、设备及计算机可读存储介质 | |
CN109977008B (zh) | 一种应用程序依赖的js代码与原生库兼容的方法及终端 | |
CN111078274A (zh) | 一种代码开发方法、装置、电子设备和计算机存储介质 | |
CN111158730A (zh) | 系统更新方法、装置、电子设备和可读存储介质 | |
US9612944B2 (en) | Method and system for verifying scenario based test selection, execution and reporting | |
CN108733468A (zh) | 定时任务动态配置方法及装置、存储介质及服务器集群 | |
CN113760234A (zh) | 一种软件开发方法和系统 | |
TWI773939B (zh) | 版本管理系統、版本管理方法及非揮發性電腦可讀取記錄媒體 | |
KR101599471B1 (ko) | 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체 | |
CN111967137B (zh) | 一种半导体设备建模方法及装置 | |
JP7015625B2 (ja) | プロセスアプリケーションを開発及び診断するためのステップバック機構 | |
US9298428B2 (en) | Graphical user interface editor that displays live data during editing | |
WO2018174223A1 (ja) | 運用管理サーバ、開発運用支援システム、それらの方法及びプログラムを格納した非一時的なコンピュータ可読媒体 | |
CN110874713A (zh) | 业务状态管理方法与装置 | |
CN113867778A (zh) | 一种镜像文件的生成方法、装置、电子设备及存储介质 | |
CN113568834A (zh) | Sdk代码的兼容性检测方法、装置、计算机设备和介质 | |
JP6677345B2 (ja) | 開発運用支援システム、開発管理サーバ、運用管理サーバ、それらの方法及びプログラム |