夢想飛翔

          自強不息
          posts - 111, comments - 30, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          SVN提交更新的一個準則

          Posted on 2013-02-14 19:43 love1563 閱讀(5193) 評論(9)  編輯  收藏 所屬分類: SVN

          查閱了一下網絡和博客園,發現還沒有一個明確地指導源碼管理提交準則的相關文章,因此斗膽整理了一部分自己平時開發管理的心得,加上查閱了部分英文資料寫了一個不算很完善的SVN提交準則。

           

          負責而謹慎地提交自己的代碼

          SVN更新的原則是要隨時更新,隨時提交。當完成了一個小功能,能夠通過編譯并且并且自己測試之后,謹慎地提交。

          如果提交過程中產生了沖突,則需要同之前的開發人員聯系,兩個人一起協商解決沖突,解決沖突之后,需要兩人一起測試保證解決沖突之后,程序不會影響其他功能。

          如果提交過程中產生了更新,則也是需要重新編譯并且完成自己的一些必要測試,再進行提交。

           

          保持原子性的提交

          每次提交的間歇盡可能地短,以一個小時,兩個小時的開發工作為宜。如在更改UI界面的時候,可以每完成一個UI界面的修改或者設計,就提交一次。在開發功能模塊的時候,可以每完成一個小細節功能的測試,就提交一次,在修改bug的時候,每修改掉一個bug并且確認修改了這個bug,也就提交一次。我們提倡多提交,也就能多為代碼添加上保險。

           

          不要提交自動生成的文件

          Visual Studio在生成過程中會產生很多自動文件,如.suo等配置文件,Debug,Release,Obj等編譯文件,以及其他的一些自動生成,同編譯代碼無關的文件,這些文件在提交的時候不應該簽入,如果不小心簽入了,需要使用Delete命令從倉庫中刪除。

           

          不要提交不能通過編譯的代碼

          代碼在提交之前,首先要確認自己能夠在本地編譯。如果在代碼中使用了第三方類庫,要考慮到項目組成員中有些成員可能沒有安裝相應的第三方類庫或者沒有放入GAC(針對.Net Framework)中,項目經理在準備項目工作區域的時候,需要考慮到這樣的情況,確保開發小組成員在簽出代碼之后能夠在統一的環境中進行編譯。

           

          不要提交自己不明白的代碼

          代碼在提交入SVN之后,你的代碼將被項目成員所分享。如果提交了你不明白的代碼,你看不懂,別人也看不懂,如果在以后出現了問題將會成為項目質量的隱患。因此在引入任何第三方代碼之前,確保你對這個代碼有一個很清晰的了解。

           

          提前宣布自己的工作計劃

          在自己準備開始進行某項功能的修改之前,先給工作小組的成員談談自己的修改計劃,讓大家都能了解你的思想,了解你即將對軟件作出的修改,這樣能盡可能的減少在開發過程中可能出現的沖突,提高開發效率。同時你也能夠在和成員的交流中發現自己之前設計的不足,完善你的設計。

           

          對提交的信息采用明晰的標注

          +) 表示增加了功能

          *) 表示對某些功能進行了更改

          -) 表示刪除了文件,或者對某些功能進行了裁剪,刪除,屏蔽。

          b) 表示修正了具體的某個bug


          評論

          # re: SVN提交更新的一個準則 [未登錄]  回復  更多評論   

          2013-02-14 20:50 by Samuel
          你在這里說明了SVN提交的一些準則,挺好的。但不完整,SVN提交中最重要的一部分,你遺漏了,就是SVN comment的事情,以及相關的一些準則。
          SVN comment規則
          [CODE]開頭,表示:編碼
          [BUG]開頭,表示:修復BUG
          [PM][DOC]開頭,表示項目管理文檔

          等等,你可以定義自己的規則

          # re: SVN提交更新的一個準則   回復  更多評論   

          2013-02-15 14:51 by Niko7
          總結的挺好。以前給新員工培訓的時候講過這個話題,不過沒想過要發到網上來,還是你有心。

          我總結起來,就是要原子性,獨立性,寫日志。
          就是每次修改肯定有個目的,每次提交的代碼應該能完整的達到這個目的,不能把一次修改分成多次提交。這是原子性。在svn里體現為一個變更集。
          如果改動比較多,可以分解為解決問題的若干個步驟,那么分批次提交,盡量每個變更集都是目的明確的,不要帶有一石多鳥的效果。這是獨立性。
          做到這兩點,日志就很好寫,然后把日志寫明白。做不到這兩點的話,寫日志可羅嗦了。

          機器生成的代碼原則上不提交,但是如果是類庫工程,不妨把有里程碑意義的版本的二進制成品在svn里留一份。

          關于多久提交一次,我覺得這個就太教條了,有時是幾分鐘提交一次,有時是幾小時提交一次。我覺得不必要求每天下班時要提交。但是上班時要查看更新是必要的。

          關于日志,作為一個團隊,盡量要用術語和符號,這樣可以使日志簡潔。

          # re: SVN提交更新的一個準則 [未登錄]  回復  更多評論   

          2013-02-16 22:32 by Samuel
          同意樓上的,剩下就是執行和監督了。如果能集成一個WIKI,比如:trac;可實時查看SVN的提交的日志。

          # re: SVN提交更新的一個準則   回復  更多評論   

          2013-02-17 10:48 by 九星天辰訣
          這個準則希望能應用的更廣泛。

          # re: SVN提交更新的一個準則   回復  更多評論   

          2013-02-18 10:58 by 11
          12. /Windchill/db/db.properties check.
          If wt.pom.dbShemaUser=<windchill_install_username> doesn’t exist.
          a. Add site.xconf
          <Property name="wt.pom.dbShemaUser" overridable="true"
          targetFile="db/db.properties"
          value="wtadmin"/>
          b. xconfmanager – p
          c. upgrademanager -cs

          13. Update the Windchill Database to the Current Maintenance Release
          Execute the update tool:
          Windows
          Start Apache

          update_tool -username <username> -password <password> -noui
          UNIX
          Update_Tool.sh -username <username> -password <password> -noui


          14. Please ignore Windchill Business report component and Windchill Business report muliti language component

          15 .If start apache and windchill start normally, but home page can not access and alert error message 404 can not found, Please add a line “Include conf/extra/app-Windchill.conf” into apache/conf/additions.conf

          # re: SVN提交更新的一個準則   回復  更多評論   

          2013-02-19 08:16 by Unmi
          @Niko7
          二進制的成品要與工作目錄分開來,一般開發是在 trunk 下,二進制成品放在 release 目錄下。

          # re: SVN提交更新的一個準則   回復  更多評論   

          2013-02-19 08:17 by Unmi
          @Samuel
          有一個好的查看 SVN 日志的工具是 Crucible, 與 Jira 是一個公司出品的。

          # re: SVN提交更新的一個準則   回復  更多評論   

          2013-02-19 13:04 by Niko7
          @Samuel

          談到監督和執行,就存在多個層面了。
          僅僅是對于上述原則的輔助支持,可以用svn hook來強制寫日志。
          關于是否可以編譯通過,可以用持續構建。

          如果追求更高的效果,那就是SCM全套了。

          # re: SVN提交更新的一個準則   回復  更多評論   

          2013-03-22 22:24 by dohkoos
          原子性應該不是以時間來確定,而是由要完成的任務來確定。譬如修改某個bug,用了幾天,那也算是符合原子性。

          然后還要重復下:盡早提交,盡快提交,經常提交以及寫commit messages。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 新化县| 金门县| 莎车县| 定陶县| 台安县| 北宁市| 黑龙江省| 曲靖市| 武宁县| 桂林市| 阳新县| 上虞市| 镇赉县| 安庆市| 旅游| 深泽县| 乐山市| 句容市| 冀州市| 乐平市| 台中县| 晋江市| 江陵县| 太仓市| 广水市| 军事| 中牟县| 雷州市| 湛江市| 桃源县| 屏东市| 陵川县| 游戏| 阳曲县| 淮安市| 涞源县| 临江市| 喀喇| 炉霍县| 沛县| 阳山县|