台灣最大程式設計社群網站
線上人數
1051
 
會員總數:239342
討論主題:185682
歡迎您免費加入會員
討論區列表 >> C# >> C# 在Visual Studio+TFS版控時能對"單一功能"做發佈或版本控制嗎
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C# 在Visual Studio+TFS版控時能對"單一功能"做發佈或版本控制嗎
價值 : 100 QP  點閱數:132 回應數:1

樓主

WhiteEye
門外漢
0 1
14 0
發送站內信

各位前輩大家好
小弟最近遇到一個有關版本控制的問題,希望能尋求各位前輩的解答。

小弟處在一個多人協作的環境,開發工具為VISUAL SUDIO, 語言是C#,並以TFS功能做為版本控制的核心。
我們會依程式的整體功能去建置多個專案,而專案底下可能會再細分為多個程式碼頁面。
並且,我們另外建置複本專案,把這個複本專案當成上版專用區,我們會把開發版的程式用”合併”功能來更新這個複本專案

但我們有個困擾就是在發佈或合併時,都無法對一個程式頁裡的特定功能去做單獨的版本控制,如附圖所述的情況(注意以下所述都是發生在”一個專案裡的同一個程式頁”):
範例圖
1.假設A先生先在某專案的某個程式頁面裡編輯了A+B兩個功能,接著簽入TFS版控。
2.接著由B先生再接手往下開發,而開發前會先由TFS取得最新版本,因此B先生在編輯的頁面裡當然就包含了前面A先生開發的A+B兩個功能。
而B先生就在這個基礎之上再繼續往下開發了C功能,並也在完成後簽入TFS版控。
3.因此,這個程式頁面最後的狀態就是有A+B+C三個部份。
4.最後,問題就來了,我可以在做TFS版本合併或是專案發佈時只單對”一個功能”去做更新或還原嗎?
(以圖中為例,我可以在一個程式頁裡已經包含了A+B+C三個部份時,只選擇針對”C”來做版本合併或專案發佈嗎?(A+B在這情況下希望保持不動,不要受到任何更新或還原的影響)

當然直接在一個程式碼片段按右鍵選擇還原舊版或取得新版是可行的.......不過實務上不會像範例講的那麼單純.....實際上我會面臨”我只知道要更新C,而其它部份的異動我都不會知道”的這種狀況。
實際的處境會是在同一個程式頁面下經過多個人修修改改已經有了十幾個程式片段(A+B+C+D+......),而這些功能又經過了多次修修改改,可能A功能已經被更新過5個版本,而C才在第一個版本。
但是我們在做程式上版時會面臨被指定”只想上A的第三個版本,B+C維持不變”,或是”只想上C功能的第一個版本,A+B維持不變”,甚至再更複雜一點,”要上A的最新版本,而B要上第三個版本,C要上第一個版本”,而這些功能都是經由不同人在不同的時間點開發的。

以專案發佈來說,在操作時我發現似乎固定只能用”整個專案”為單位去做發佈,一經發佈就包含了A+B+C,而無法只選擇一部份的特定功能,我不確定這是我操作錯誤的關係或是天生的功能限制。

以合併功能來說,操作上發現我們仍是做”整個專案”的特定版本控制,而不是”特定功能”的版本控制。
(例如:同樣以上圖為例,這個專案總共會有三個版本狀態:1.剛建立什麼都沒有,2.已經存在A先生簽入的A+B功能,3.已存在B先生隨後更新的部份,因此包含A+B+C。 我們只能在三種版本狀態擇一,無法真的去選擇A或B或C)

當然土砲的做法就是乾脆一個功能就拆一個獨立的程式頁,但這樣在實務上是有點不切實際,我們已經儘量的依整個功能去切專案+切程式頁面了,但終究是無法做到一個功能片段就拆一個程式頁,就算刻意這樣做也只是帶來另外的麻煩。

以上就是我的問題,困擾許久,希望能有機會得到解答,或者若有Visual studio或是TFS以外的解決方案也還請指示無妨,十分感謝。



搜尋相關Tags的文章: [ c# ] , [ visual studio ] , [ tfs ] , [ 版控 ] ,
本篇文章發表於2017-01-09 00:54
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
如果都寫再同一個頁面,好像沒一款軟體能做到。
以git來說,他一次也是簽入一個檔案。
TFS也是一樣。

剛想到git能用分支的方式來作業,請寫A的人開一個分支,寫B的人開一個分支。
有需要的話,再將分支合併,這樣不知道行不行。

本篇文章回覆於2017-01-10 10:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.