PageRank



轉移公告

計劃把 http://blog.hoamon.info/ 文章全部轉移至 http://www.hoamon.info/blog/ 這裡,而本 Blogger 站台的文章近 500 篇,我預計在 2014-12-31 前移轉完畢,完成後 http://blog.hoamon.info/ 將只作代轉服務,一律把舊連結如 http://blog.hoamon.info/index.html 轉成 http://www.hoamon.info/blog/index.html ,敬請舊雨新知互相走告。

新文章只發佈在 http://www.hoamon.info/blog/

何岳峰 敬上

2007年3月26日 星期一

誰還在用 copy 呀!

曾看過一個網友留言,說道他的小組才3個人而已,用不上 VSS(Visual SourceSafe) 之類的東西,他都是用 copy 的方式與其他人交換程式的。不曉得他這番話的重點是說 VSS 不好用,還是版本控制器不適合小組作業,只能用在大專案上。

從我認識了 cvs 及 subversion 後,就算是只有我自己在開發程式,如果不用版本控制器管理純文字格式文件的話,會覺得十分對不起自己。

想想看,一個程式檔你除了思考程式邏輯外,還要拿一份「記憶體」放置今天的算法與昨天算法在程式碼的差別,喔~饒了我吧!我的腦袋放不了那麼多東西了。

況且有那麼多的 open source 工具協助你,實在沒有理由不用版本控制器。想想看程式/文件寫了3個月後,你忽然覺得後悔了,想回復3天前放棄的演算法,你要拿出 xxx_070321.tgz、xxx_070322.tgz 出來,一個檔一個檔地找嗎?還是用 Trac + subversion 之類的工具,讓你可以點選
http://ptrac.hoamon.info/changeset/3 ,然後從這找出你想要的算法呢!!

嗨~朋友,我懇求你學一下 subversion 吧!別把你的青春放在這,多一點時間玩 online game 會比較好。

我的另一篇文章: 版本控制系統 svn(subversion)

12 則留言:

  1. 說的真好,但是一般人要叫他去使用版本控制器好像(我是說那些只會點幾下、打打文件的人)...有點困難。

    順道一提:oddmuse 的 wiki 本身就有版本控制的功能,不錯吧!這也是我打算用它的原因之ㄧ唷。

    回覆刪除
  2. windows 的版本控制器 TortoiseSVN
    也是點幾下、打打文件註解就行了。重點是「不想學」的心態問題。

    回覆刪除
  3. 曾經試過說服同事使用subversion(TortoiseSVN on Windows),得到的回答是:「如果subversion管理的檔案損毁了,那麼source code不就全沒了?」

    他們認為,以,.c或.cpp的檔案格式儲存(備份),是最安全的方式。不知前輩對於這樣的說法有解嗎?

    回覆刪除
  4. 首先,我不是前輩,在軟體界我是菜鳥。
    第二,你的同事是不是誤會了用subversion的話,會把程式碼存成另一種格式,這是錯誤的。在伺服器端,subversion是使用其他格式來儲存你的文件;但如果你checkout出來到本機端時,它就是清清白白的 .c .cpp檔了。
    第三,我假設你的同事架了一台ftp伺服器來收集大家的.c .cpp程式碼,那麼請問這台ftp掛了,怎麼辦?所以如果不放心版本伺服器,我建議你們每天自動 checkout一份程式碼到備份伺服器去。

    回覆刪除
  5. 可是,,每次寫個程式,都要去.. create repository,, import (建立 trunk,branch, release),checkout,add....
    有點麻煩,,,不知道有沒有"一次到位"的方法。

    回覆刪除
  6. 針對 .(Checko) 的回應:
    當你設好了 subversion 儲存庫,你應該只要
    # svn import someproject file:///somewhere/trunk/someproject
    你不一定要把1個專案分 branch/, trunk/, tags/ 放呀!

    回覆刪除
  7. 深有同感。「Programming with Subversion Quickstart」中的個人經驗: 當我面對上百份 C 語言原始檔、上萬行程式碼時, CVS 是不可或缺的工具。沒有 CVS/SVN 這類版本控制工具,任何修改程式碼的動作都會增加 programmer 大腦記憶體的負擔, programmer 將會浪費許多時間在搜尋與比對程式碼的工作之上。就算是撰寫個人使用的小程式,版本控制工具仍然帶給 programmer 許多便利之處。我為自己寫過的小工具不知凡幾,有些程式寫完後又過了好幾個月才會想到再修改。此時版本控制工具的提交 (commit) 記錄功能就能幫我喚起以往撰寫過程中的記憶。分支功能可以讓我無後顧之憂地為我的小工具添加新功能,確認無誤後再合併回主幹。"

    回覆刪除
  8. 我想你把人的學習想的有點容易,你不是也曾經幫別人上過課嗎?就算是點點點對某些人(甚至是大部分的人)都是一種困難,我們常常站在自己的角度看世界。這讓我想到一個故事:之前有個大數學家(忘了是誰好像是高斯),在課堂上講解了一個數學證明,下課時一個學生來找他說聽不懂,大數學家看看他再看看黑板,就繼續讀他的paper;學生不解繼續問他,他抬起頭來看看黑板再看看學生,又繼續去讀他的paper。學生不耐的問,老師你怎麼都不理我,大數學家回他:我不是已經連續用兩種不一樣的方式告訴你答案了嗎?

    回覆刪除
  9. 真感激,這樣真的方便多了,原來很多project可放在同一個trunk 中。
    這樣也不用每次 import 3 folder,checkout, add...
    果然是"一次到位"的方法。

    再,,請問一下。
    # svn import someproject file:///somewhere/trunk/someproject

    完了之後,是不是就可以作"checkout",開始 "someproject" 的version control ?

    謝謝.

    回覆刪除
  10. 針對 .(Checko) 的回應:
    的確,import後,就可以直接 check out了。
    另外建議你先看一下這兩篇文章
    版本控制系統:svn(subversion)

    Subversion Book, Traditional Chinese Edition

    了解一下 svn 的觀念,再對應至 windows 版的 TortoiseSVN ,能更快上手。

    回覆刪除
  11. 看了 .(Checko) 的作法,臉上不由得浮出三條黑線... =.=!!! (幹嘛做這些事?

    我通常一開始只建立 trunk 一個目錄,有時甚至連 trunk 都不建。我也不用 import ,我習慣建立 repository 後就直接 add 文件。只有當我要分支時,我才會建立 branch, tags 目錄。

    SVN 允許我們只 checkout/commit 子目錄的內容、或是單一文件。這確實是個很方便的功能。所以我也跟 hoamon 一樣,有些比較雜的項目都放在同一個 repository ,再按子目錄區分 project 。

    回覆刪除
  12. 喔?原來還可以只checkout子目錄。
    這樣就不會有一堆repository了。

    回覆刪除

Related Posts Plugin for WordPress, Blogger...