Branch\Tag是由Trunk的某一個revision所link出來的,
而要如何知道這一個Branch\Tag是由哪一個地方連結出來的呢?
若是使用TortoiseSVN的話,
則可以使用Revision Graph,
可以看出Branch\Tag是由哪一個revision的Trunk所Link出去的,
直接在Trunk的資料夾按右鍵,選擇「Revision graph」


由以上的圖可以知道,
/branches/SupportDongleEMMC_Will_Hang這個資料夾的初始板本是整個Repository的revision 13,
而它是由Repository rev 9時的/trunk所Link過去的。
換句話說,Repository rev 9時的/trunk與Repository rev 13的/branches/SupportDongleEMMC_Will_Hang的資料內容會是一樣的。
而Repository rev 14的/branches/SupportDongleEMMC_Will_Hang的內容則是由Repository rev 13的/branches/SupportDongleEMMC_Will_Hang所修改而來的。
由這個圖,我們可以很簡單並且清楚的知道分支是由哪一個部分Link出來的
還有另一個方式,可以透過SVN Show log得知~
如下圖,是直接看Repository根目錄的log,

在Repository的rev 27是新增一個資料夾,
而這一個資料夾的Copy from path是Repository的rev 23的/trunk資料夾
參考資料:
SVN中的Branches分支以及Tags标签详解与应用举例
2012年8月8日 星期三
SVN如何查看tag是由哪一個Link連結出來的
2012年8月2日 星期四
Blogger Spot換行
至從Blogger Spot更新介面之後,
要換行都必需另外輸入<br />
非常麻煩,
原來這個要另外設定,
在新增文章時,右邊有一個文章設定→選項→換行符號→按下 Enter 鍵可建立換行符號
這樣就可以了。
如何處理分行符號? - Blogger說明
exVim
一直以來,都想要讓vim可以取代SourceInsight的目標,
但是一直沒有時間去做。
前一陣子發現同事有使用exVim,
這一個功能跟SourceInsight很類似,
現在暫時先研究如何使用~
之後就可以同時使用exVim與SourceInsight,
最後當然希望可以取代SourceInsight
先使用安裝檔的方式,讓它全部幫你設定完!
我的目標是建立一個portable的方式,
目前因為連操作方式都不熟,
還是先用最簡單的設定方式吧~
exVim主頁
exVim wiki
1. 安裝檔案
直接到exVim主頁選擇Download
選擇install去下載,
這一個安裝會全部的設定幫你設定好。
2. 建立一個Project的vimentry
到Project的根目錄資料夾,
點選右鍵,新增exvim vimentry file
新增完成之後,
直接點選這個檔案,
就可以開啟這一個視窗了
3. 掃描所有的檔案
當開啟新增的exvim vimentry file之後,
直接按\R
之後,直接點剛剛新增的vimentry的檔案,
就可以開啟這一個Project了
而以後若要重新掃描整個檔案的話,
則在指令列輸入
:Up[date] tag
:Up[date] symbol
4. 尋找tag
可以直接在目前鼠標的位置,按\]
或是在指令列輸入
:TS <tag-name>
When you are in tag select-window, you can press <enter> to jump to the definition, meanwhile the exTagSelect will record the position to the exJumpStack, you can use <leader>tt to check your stack result. And use <leader>tf, <leader>tb to move backward and forward from the next/last definition.
這個部分的tt, tf, tb不知道如何使用??
參考資料:
ExVim 试用手记 —— 编写代码之 移动光标
Think more... - exvim
2012年4月25日 星期三
如何透過TortoiseSVN去建立本地端的SVN Server
最近老弟在討論SVN的東西,
讓我對SVN有更深入的了解~
在之前,我的認知是TortoiseSVN只是個client端的軟體~
所以,必需要有一個server的位址,這樣TortoiseSVN才可以發揮它的功能。
其實,TortoiseSVN已經具有在自己本機端建立Server的功能,
但是,存取的權限只限於本機端可以存取。
不過,對自己本身來說,確是非常方便的功能。
1. 首先在本機端建立一個空白的資料夾
2. 對資料夾按右鍵,TortoiseSVN→Create repository here

3. 接著可以透過Create folder structure建立預設資料夾trunk/branches/tags,若這次沒有建立之後,就沒有機會了
PS.以後是可以透過手動建立資料夾的方式建立,其實trunk/branches/tags只是這一個Repository的根目錄下的三個資料夾,並沒有什麼特殊的地方,
其特殊的意義是我們賦予的~
而手動建立的缺點就只是會多一個建立這三個資料夾的log而已~

接下來可以透過Start Repobrowser去看這一個Repository
4.建立完之後,仍然可以對這一個資料夾去開啟這一個Repository


5. 剩下的部分就跟使用一般server是一樣的方式
若只要在本機端使用的話,這個功能是蠻不錯的!!
2012年3月31日 星期六
Defy開啟/關閉3G上網
今天去遠傳申請七天免費試用3G上網的服務,
要提供雙證件~還有1200元的保証金。
最近要去客戶那裡,這一個服務可以來試一下3G的感覺~
另外,值得一提的是,遠傳有提供每日25元吃到飽的服務,
到時候如果有要去外面旅遊的服務,
需要用到3G網路的話,
是一個不錯的服務哩~
之前剛買到智慧型手機的時候,不小心透過2G上網,當月的帳單就是7百多元~
嚇死人了~
當時就快一點上網找如何關閉透過3G上網~
也忘記當時是怎麼設定的~
現在反而要設定如何透過3G上網哩~
開啟3G上網
設定→資料管理員→資料傳輸→已啟用資料(啟用Google行動服務網路的資料存取)→勾選
設定3G轉wifi分享
選擇3G Mobile Hotspot軟體→3G Mobile Hotspot→勾選
關閉3G上網
設定→資料管理員→資料傳輸→已啟用資料(啟用Google行動服務網路的資料存取)→取消勾選
參考資料:
[心得] defy開啟與關閉3G上網功能方法
2012年3月25日 星期日
在右鍵選單設定「特定程式」開啟檔案
若可以直接對某一個檔案按右鍵,
並且選擇要開啟的檔案,
如此一來就會非常方便了~
這一篇文章,打算使用vim當作特定的程式,
可以在所有的檔案按右鍵來開啟~
1. 透過「Win鍵+r」,輸入「regedit」。
2. 在左邊窗格找到「HKEY_CLASSES_ROOT\*\shell」機碼,並在該機碼上按一下滑鼠右鍵 ,從選單中點選【新增】→【機碼】,並且改名為VIM。
3. 然後,在VIM機碼上按滑鼠右鍵,從選單中點選【新增】→【機碼】,並且改名為command
4. 點選Command機碼內的(預設值),並且修改其數值資料為E:\Portable\PortableApps\gVimPortable\gVimPortable.exe -p --remote-tab-silent "%1"
修改完後應該如下圖:
而vim的這一個指令後面接的--remote-tab-silent則是表示會尋找目前已經存在的視窗來開啟目前指定的這一個檔案。
最後結果如下:
如果要設定只有對txt副檔名的檔案顯示這一個設定的話,
一始我們找到HKEY_CLASSES_ROOT\.txt機碼,而其預設值是txtfile
因為,我必需找到txtfile的機碼,並且去修改它。
找到了txtfile的機碼之後,剩下的動作就跟之前的是一樣的了。
參考資料:
Adding entries to the Windows context menu
ASL code簡單教學
這一篇是用來記錄我自己學習ASL code的文章~
我在想一開始應該會有很多錯誤吧~
就慢慢修正囉~
Device (DeviceName) {ObjectList}
建立一個名為DeviceName的Object,其是代表Bus或device或是其它的hardware
OperationRegion (RegionName, RegionSpace, Offset, Length)
建立一個名為RegionName的變數,這一個東東代表的就是一個可以存取的空間。
而RegionSpace就是這個空間的類型,在Acpi5.0可能是
SystemMemory,
SystemIO,
PCI_Config,
EmbeddedControl,
SMBus,
CMOS,
PCIBARTarget,
IPMI,
GeneralPurposeIO,
GenericSerialbus
而Offset則表示由這一上述的空間的起始位址開始位移Offset (byte)的地方代表目前宣告的RegionName的起始位址。
Length則表示目前這一個RegionName所代表的大小(byte)
Field (RegionName, AccessType, LockRule, UpdateRule) {FieldUnitList}
Field通常是跟OperationRegion搭配使用,把OperationRegion宣告的空間,在細分成可以access的個別的變數。
RegionName就是OperationRegion宣告的變數名稱。
AccessType就是存取變數是一次存取的長度,可以是
AnyAcc,
ByteAcc,
WordAcc,
DWordAcc,
QWordAcc
LockRule可以設定為Lock or NoLock
若設定為Lock的情況時,當變數被access時,其它他要access這一個變數,必需等到這一個變數沒有被access才可以動作。
UpdateRule可以設定為Preserve, WriteAsOnes and WriteAsZeros
這裡若是設定一個Field為QWordAccess,則當有一個成員為4 bits,則當這一個被update時,其它的12個成員為被保留或是設定為1或是0。
以下為一個OperationRegion與Field的例子:
OperationRegion (MIOC, PCI_Config, 0x10, 0xFF)
Field (MIOC, AnyAcc, NoLock, Preserve)
{
Offset (0x58),
HXGB, 32,
HXGT, 32,
GAPE, 8,
Offset (0x70),
MR0A, 4,
MR0B, 4
}這裡是說,宣告一個OperationRegion其起始位址為PCI configuration space的0x10 byte的地方,
並且其長度為0xFF bytes。
並且在下面宣告了一個MIOC的Field,其Access的方式並沒有限定,並且沒有Lock的機制,並保留其它沒有access的數值。
Office (0x58)意思是先直接跳到MIOC起始位置0x58 bytes的地方,
接下來設定一個名為HXGB的變數,其大小為32 bits,而其起始位置就在0x58 bytes offset of MIOC
再來設定一個名為HXGT的變數,其大小為32 bits,而其起始位置就在0x5C bytes offset of MIOC
Offset (0x70)則一樣是直接跳到MIOC起始位置0x70 bytes的地方,
再來設定一個名為MR0A的變數,其大小為4 bits,而其起始位置就在0x70 bytes offset of MIOC
參考資料:
ACPIspec5.0
自己動手寫DSDT系列教程1-ASL(ACPI Source Language)基礎篇