SVN使用中的經驗淺談

來源:互聯網
上載者:User

    上一篇部落格簡單講了在合作開發項目時使用SVN的準備工作,而這篇部落格則重點在使用中的規範也好,注意事項也好或者使用規則也好.簡單說一下使用他的小小經驗!



          在合作開發項目開始前,賈琳師哥向我們提出了使用SVN的規範,如下:

SVN要求(非常重要):

1、程式需定期編譯通過後上傳SVN,每天可上傳多次,根據個人程式開發進度決定,但每天晚下班前必須將當天的程式編譯調試通過並上傳SVN。

2、每天早上上班首先需要更新SVN最新版本。

3、在程式中添加頁面、刪除頁面及修改頁面命名時,需要先更新全部程式特別是解決方案檔案,然後再做添加或者刪除頁面以及修改頁面名稱,做完這類操作後需立刻上傳SVN,以免造成解決方案衝突.

 

以下檔案不允許提交到SVN上,應在本地通過SVN用戶端添加到忽略列表中。

  1、解決方案的suo檔案

  2、工程的bin檔案夾和obj文

 

    第一次看了,沒有太大的重視,可是在使用中,我們出現了,版本沒有說明,合作之間出現了衝突,自己開發的模組影響了其他人的模組等等問題.回過頭來再看這些內容,感覺都是非常重要的.下邊我一一為大家解說並完善一下細節!

 

          首先來說,在公司我們都是合作開發的,而且SVN在公司的使用非常普遍,就算不是我上篇講的軟體,也是非常類似的版本管理軟體,都是大同小異的.使用SVN我們就將自己假設到公司成員的角度,來看一切問題.


          一,程式定期編譯通過後上傳SVN,也就是我們上傳的伺服器的程式必須能正常運行,不要因為自己修改模組,使整個程式癱瘓,影響大家的工作.     上傳SVN伺服器時,我們需要按照步驟:



     為什麼明天晚上要必須將編譯通過的程式上傳呢?

     1,因為在公司,首先可以讓專案經理知道自己每天都在幹活,並瞭解自己的進度;

     2,其次可以很好避免我們沒有備份好,丟失的情況;

     3,再者可以避免由於我們修改過多,如果出現衝突難於解決衝突的情況!

 

          二,每天早上更新最新版本,這個是保證我們可以在最新版本上修改,也是可以避免出現衝突的有效方法之一!


          三,第三點非常重要,意思也就是在做添加頁面、刪除頁面及修改頁面命名時,需要我們先更新解決方案,然後再做上述操作,然後馬上上傳。記得一定要馬上。


             這是為什麼呢?這就涉及到一個副檔名為.csproj檔案,先看一下百科:

     C#專案檔的副檔名,它是“C SharpProject”的縮寫。.net開發環境中建立項目時,會產生 .csproj檔案,這是C#的工程檔案,其中記錄了與工程有關的相關資訊,例如包含的檔案,程式的版本,所產生的檔案的類型和位置的資訊等。

 

        也就是說一個工程就一個.csproj檔案,因為雖然我們在合作開發時分工明確,各自負責各自的模組,但是當我們做上邊提到的幾種操作時,都會修改此檔案。如果期間兩個人都進行了此操作,上傳時,後一個上傳的人就會出現衝突,也就必須解決衝突,這是見比較麻煩的事。而我們先更新,再修改,然後馬上上傳,就是為了保證發成衝突的幾率為最低。

 

   四,.suo檔案,.bin檔案,.obj檔案為什麼不上傳呢?先看下這幾個檔案的作用:

         

          1,suo(solution user options)是一種檔案的格式。*.suo解決方案使用者選項,記錄所有將與解決方案建立關聯的選項,以便在每次開啟時,它都包含使用者所做的自訂設定。VS布局包括:監視器1234的變數列表、斷點標記及開關狀態、輸出視窗錯誤視窗等的分布及其懸浮狀態,還有項目卸載狀態標記。

        也就說.suo檔案時記錄使用者對解決方案一些設定,方便下次開啟更符合使用者的習慣呢。當然,如果刪除,在開啟解決方案是,就會重建立立,只不過哪些記錄的斷點哈,各種視窗的布置沒有了。所以這個檔案我們不用上傳.Suo檔案,在本地產生即可。


         2,bin和obj檔案,我麼看一下他裡邊的檔案:

            在obj檔案中也都是一些Dll檔案,而這些Dll檔案都是我們用項目產生的,



    也就說這兩個檔案中的內容,我們都可以通過解決方案來產生,當然就不用上傳了,我們下載解決到本地,直接產生就可以在本地產生這兩個檔案夾。

 

          這樣大家就明白為什麼不用上傳這三個檔案了吧。下邊對於上邊提到的衝突,我想說一下解決衝突的方法:

       假如兩個人出現了衝突,證明你們同時修改了同一個或多個檔案了,這樣就必須犧牲一個人的成果,把另一個人的成果上傳伺服器為最新版本(通過協商)。當然那個犧牲的並不說找不到了,首先,他可以提前保留備份,能更新到最新版本時,再修改,再上傳。當然我們可以找到SVN中的任何一個版本,下載下來進行修改,或者看以前的功能。下邊就是我們的版本更新,紅色框為沒有添加日誌的,這樣我們看就不知道此版本是改過什麼的。


    雖然衝突可以解決,但是能避免盡量避免,畢竟還是比較麻煩的。

 

    綜上為使用SVN的經驗淺談,主要是根基賈琳師哥給的SVN規範,進行闡述。有什麼問題還請指出,多多交流!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.