Wednesday, September 26, 2007

WinCVS 2.x 快速入門 (九) Update (更新)

在我開始要寫 Log 與Graph時重看了這一系列文章時, 才猛然發現, 我竟忘了寫Update, 不會吧.. 這是CVS 最重要的功能, 我一定是一開始寫Checkout Module時以為我寫過了, 所以讓我來補足這一篇吧.!!

將Update 說成CVS最重要的功能一點也不誇張, CVS 是個版本控制器, 你可以透過log來查看你所有的版本, 可以用diff來比較不同版本, 可以用commit 來上傳不同版本, 但你一定要透過update 這功能才能真正使用不同的版本的程式碼

Update 的功能在於將CVS Server 上的程式碼下載到Local的電腦來, 與Checkout Module 不同的是, Checkout 是將整個module 都下載, 但update可以只下載一個檔案, 到一整個目錄, 當然也可以一整個module

按下滑鼠右鍵, 點入Update

Update Settings 有三個設定

1. Do not recurse into sub-folders : 此功能一勾選, 則只會針對這個目錄裡的檔案進行更新, 而不會將這個目錄裡的子目錄內的檔案一起更新

2. Create missing directories that exist in the repository : 當CVS Server 上有使用者在你選擇Update的目錄裡增加目錄, 需要勾選這個功能, WinCVS才會幫你加入這個目錄, 不然的話只會針對新增的檔案更新與加入, 並不會加入新的目錄

3. Get the clean copy : 取得與CVS Server 相同的檔案版本, 此功能一經勾選, 會將Local的檔案與CVS Server 完全同步, 所以被更動的檔案將被刪除(會備份)

Update options :

我只解釋幾個常用的

1. Reset any sticky tags/date/kopts :

會將原來設定的tag清除, 完全更新成目前CVS 最新的文件

2. By date: 可以設定你要更新的程式碼是在某個日期之前的最新程式碼

3. By revision/tag/branch : 更新成某個Branch 或是Tag

接下來我用case stady 的方式來解釋Update的使用時機說明並圖解.

1. 更新Local的程式碼到CVS 最新的程式碼 : 這個使用時機常是在要開始更改檔案前, 先update 一下, 讓你手上的程式碼是最新的, 再開始改, 避免改完後發現你改的不是目前最新的code,還要做merge

如圖可以看出來, AddRecordDlg.cpp 為1.5 而AddRecordDlg.h則被修改過

20070926230914109

當我勾選"Get the clean copy " 後, 下圖可以看到, 多了一個#AddRecodDlg.h.1.5 就是原來的AddRecordDlg.h的備份, 而可以看到AddRecordDlg.cpp 已經更新為1.6, 代表距離我們上次更新的時間, 有人Commit了新的AddRecordDlg.cpp 到CVS Server

20070926231133937

2. 下載特定版本/日期/TAG的程式碼到Local : 這是在你需要下載某個tag 或是某個branch 的code時的方式, 與checkout 不同是WinCVS會做比較, 如果檔案相同的, 雖然分屬不同tag 或 branch, 也不會重新下載, 所以速度較快

當我們勾選 "By revision/tag/branch" 後可以填入所需要的Tag, 以取這個Tag 的程式碼

20070926232100859

由下圖可以發現, 我們已經Update 了這個Tag 的檔案了

20070926232138500

我們也可以勾選 "By date" 來取出某個日期之前的最新版本的程式碼

20070926232322921

所得到的就是那個日期的程式碼, 不過因為CVS Server 是採UTC時間, 而WinCVS填入的是當地時間, 以台灣來講是UTC+13, 所以會造成日期看起來有點出入

20070926232437656

3. 清除之前下載所設定的版本,回到最新版: 當經過上面說明的步驟後, 不論你怎麼update 都會之前所設定條件的最新版本, 所以要回到沒有認何條件的檔案就必需在Update時勾選 "Reset any sticky tags/date/kopts " 這個選項



相關連結

CVS (Concurrent Versions System) 協作版本系統



yasm 0.6.2 發行

剛才看到 yasm 出新版的 0.6.2, 從release note來看, 最大的特色就是加入了AMDSSE5 的支援了, 離9月初AMD發怖SSE5 也沒多久, 看來yasm 果然比nasm還積極很多, 不過由nasm 的maillist 來看, 應該也快要支援了吧, 重點是, 他們怎麼知道試呀, 應該是跑模擬器吧, 如果是跑實驗室版的CPU就爽了

我也一直想要 AMD 的CPU 說, 不知道 AMD會不會看到我的Blog,也借我一顆玩玩吧.!!

YASM 下載

發卡銀行的誠意

今天為了要打電話給台新,找080的電話找的有點火了, 首頁也沒有, 倒是後來在與我聯絡才找到, 不過其中24小時信用卡授權及查詢可用餘額的080被取消了, 你想要得到授權除了在台北,其它地區都要長途電話費

所以我順手比了一下中國信託, 一下子就可以看出兩家銀行的誠意了

這是中國信託信用卡上, 080與付費電話都在上面, 很清楚

而台新的, 抱歉只有付費電話, 080不見了

再來比一下首頁, 在中國信託最下面, 包含付費與免付費的電話都一目了然但是台新的只有付費電話
而帳單也一樣, 台新的也沒有080的電話, 我的中信是電子帳單, 所以無從確認, 不過電子帳單上當然也有080的電話

相關連結

台新銀行
中國信託