2017-08-07 60 views
0

我的公司多年來一直使用雲端TFS主機。現在,主機已經從互聯網上消失了,大量的代碼和歷史已經消失。有人正在處理它,所以它可能會被解決,但無論如何我需要在Visual Studio Online中相當快速地設置新的源代碼處理,並且需要一些關於如何執行它的提示。擁有許多小型項目和單個開發人員的團隊服務

目前的解決方案早在我開始使用之前就已經建立了,由於各種原因,我目前是唯一的開發者。它可能在未來發生變化,但每個Visual Studio解決方案永遠不會有多個開發人員。我使用Visual Studio(windows應用程序,windows服務,WebAPI,SSRS,SQL,實體框架)中的許多小型客戶特定項目工作。項目的平均規模可能從開始編碼到部署需要20個小時(還有一些較大的項目)。新功能和錯誤修復有時會在部署後添加(可能會在幾年後),但通常是2-6小時的項目。

當前進程每個客戶有一個TFS項目,每個包含最多少量的Visual Studio解決方案。解決方案之間沒有任何依賴關係,通用代碼與NuGet一起處理。

我們在雲中有大約250個項目,即使我迄今爲止只恢復了其中的50個,我在本地的那些,我們遲早會得到類似的數字。總大小大約在30GB(很大程度上來自TFS默認檢查nuget包文件夾)

對於大多數項目,不需要工作項目,看板,報告和其他ALM功能。只有開發人員纔會在線使用visual studio。我想要使​​用分支/請求/合併過程。來自Git/Mercurial我從來沒有對TFS感到滿意。

所以我的問題現在:

  1. 什麼是組織項目的好辦法?

    • 單VSTS項目的一切
    • 一個VSTS項目爲每一個客戶(今天)
    • 一個VSTS項目每Visual Studio解決方案
  2. 什麼是好辦法構建存儲庫?一切

    • 一個存儲庫
    • 一個每個客戶庫
    • 每Visual Studio解決方案的一個倉庫
  3. 如何Visual Studio和數以百計的項目/庫,其中90的在線門戶網站工作%不活躍。我通常有3-5個Visual Studio隨時運行不同解決方案的實例。

我已經閱讀了很多建議,但他們似乎都處理長壽命的項目和/或開發團隊。

我的主要問題是:

  1. 多少工作是增加新客戶或Visual Studio解決方案(每週發生)
  2. 入門時間。有時涉及外部開發人員。這並不常見,但是當它發生時,我不希望它們花費大量時間進行克隆/拉(安全性不是問題)
  3. 標準。我希望該流程儘可能遵循標準/最佳實踐,以便更容易爲其他開發人員提供文檔。例如不在項目名稱或強制文件夾結構中編碼信息。

回答

1

我會建議:

  • 從每個客戶創建項目。例如,您可以使用WebAPI,SSRS,SQL等客戶名創建項目。

  • 由於VSTS項目屬於某個客戶相關的項目。因此,團隊項目中的所有存儲庫都應與客戶相關。存儲庫的結構可以是:針對客戶的每個案例/解決方案的不同存儲庫。

目前只有兩種託管在VSTS/TFS版本控制系統:的GitTFVC。看起來你對Git和Mercurial很熟悉,所以你可以爲你的項目使用Git VCS。

VSTS上託管的Git存儲庫像其他遠程存儲庫一樣工作,如github,bitbucket等,它是沒有工作目錄的裸回購。所以解決方案不會被存儲,而是兩個版本之間的校驗和,並存儲sha-1值(40個字符)。而且大多數時候,你在本地回購工作(沒有連接/與遠程回購通信)。只有當你克隆/拉/推,你的本地git倉庫纔會與遠程倉庫進行通信。

+0

謝謝你的回覆。爲了正確理解您的意思,您的意思是每個客戶有一個VSTS項目,然後是每個VS解決方案的存儲庫。爲什麼比@ starain-MSFT在另一個答案中提出的一個單一的項目更好? – adrianm

+0

客戶項目的兩個原因:** 1。**這些客戶彼此不相關,並且使您可以方便地管理不同客戶的不同要求和功能。 ** 2。**您的項目/解決方案確實適合大尺寸,它將有利於分佈式。原因之一是,你可以接受Starain的建議,因爲這兩種方式都可以工作,並且有點個人依賴。 –

+0

標記爲答案,因爲這是我們最終做的。在團隊項目中有一些challanges有多個存儲庫,但目前它們可以管理。 – adrianm

1

項目結構:單項目的一切。

庫結構:每VS解決方案的一個倉庫

關於VS這些項目/解決方案的工作,你可以關閉一個解決方案,然後打開另一種解決方案(在同你不能在同一時間打開多個解決方案VS的實例),你也可以在VS中打開文件並進行編輯。關於提交和推送,您可以使用Git命令(例如git commit,push)

當開發人員參與時,您需要將它們添加到VSTS中,並且需要從遠程克隆/提取源代碼。

+0

謝謝你的回覆。這是我一直在想的方式,但我不確定如何管理500個存儲庫。是否可以將某種可搜索的元數據(例如客戶)添加到存儲庫? – adrianm

+0

@adrianm您可以將它們與某些類別(例如服務,客戶端,移動設備)分組,然後爲這些類別創建許多團隊項目,之後,這些存儲庫易於管理。 –

+0

不知道我關注你。 「分組」是指(存儲庫,團隊項目)?我沒有看到將它們中的任何一個分類的方法。另外,你現在是否爲每個解決方案推薦一個團隊項目? – adrianm

相關問題