2013年10月21日 星期一

[Batch] call的用法,call與goto的差別

call可用在執行其他batch檔
也可以執行寫好的function(在batch稱為label)

Ex1:
ECHO CALL example1
CALL test1.bat

Ex2:
ECHO CALL example2
CALL :test2

:test2
ECHO This is test2


goto也可以執行寫好的function
但call與goto兩者最大差別為
call跳到label後,執行完label中的程式碼,會跳回call之後的程式碼
但goto跳到label後,並不會跳回來

此外
call後面可接傳入function的參數

Ex3:
ECHO CALL example3
CALL :test3 100

:test3
ECHO This is test3
ECHO %1%



refs: http://ccd9527.blogspot.tw/2010/11/bat-call-06.html

2013年10月4日 星期五

[Linux] 製作patch;打patch

1. 製作patch
使用linux的diff指令,diff舊檔案及新檔案的差別,並輸出成.patch
$ diff -Naur [old_file] [new_file] > [patch_name].patch

2. 打patch
使用linux的patch指令,將patch內容更新舊檔案
$ patch -p0 < [patch_name].patch
將檔案復原
$ patch -R -p0 < [patch_name].patch

2013年10月3日 星期四

[Linux] 計算資料夾或檔案大小

計算資料夾或檔案大小
後面可以接資料夾或檔案,否則則為當下資料夾
$ du -h

[Android] 檢查apk sign的key

與sign key一樣使用java的指令 -- jarsigner

$ jarsigner -verify -verbose -certs [apk_name]

會列出來像是以下的資訊
sm      3512 Mon Apr 15 00:13:32 CST 2013 AndroidManifest.xml

      X.509, CN=Android Debug, O=Android, C=US
      [certificate is valid from 2013/4/14 下午 3:10 to 2043/4/7 下午 3:10]

sm      5937 Sun Apr 14 15:09:46 CST 2013 res/drawable-xhdpi/ic_launcher.png

      X.509, CN=Android Debug, O=Android, C=US
      [certificate is valid from 2013/4/14 下午 3:10 to 2043/4/7 下午 3:10]

如果用Android test key sign過的apk結果會長這樣
sm      3875 Wed Apr 16 07:40:50 CST 2008 res/drawable-hdpi/rbt_icon.png

      X.509, EMAILADDRESS=android@android.com, CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
      [certificate is valid from 2008/4/16 上午 6:40 to 2035/9/2 上午 6:40]

sm      1765 Wed Apr 16 07:40:50 CST 2008 res/drawable-ldpi/rbt_icon.png

      X.509, EMAILADDRESS=android@android.com, CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
      [certificate is valid from 2008/4/16 上午 6:40 to 2035/9/2 上午 6:40]

可以藉此得知apk是用哪一把key sign的

※refs:http://www.cnblogs.com/not-code/archive/2011/05/15/2047057.html

2013年9月23日 星期一

2013年9月13日 星期五

[Gerrit][Git] 新增/刪除Branch

1). 在local端新增branch並切換

1.1). 新增branch,再切換到該branch
$ git branch [branch_name]
$ git checkout [branch_name]

1.2). 新增branch並直接切換到該branch
$ git checkout -b [branch_name]

1.2). 以某個tag為基準,新增branch並直接切換到該branch
$ git checkout [tag_name] -b [branch_name]


2). 在remote端新增branch
$ git push origin [local_branch_name]:[remote_branch_name]

3). 在local端刪除branch (-D為強制)
$ git branch -d [branch_name]
$ git branch -D [branch_name]

4). 在remote端刪除branch
$ git push origin :[branch_name]

※在Gerrit要刪除remote端的branch
在push的權限中,必須增加force push才能夠刪除

※新增branch
git branch [branch_name] [base_on_which_branch]
若是[base_on_which_branch]沒有寫,預設是master
若是此git沒有master branch,則後面沒寫會無法新增branch

2013年9月4日 星期三

[Gerrit] [Git] [Repo] 新增/刪除tag

1). 在local端新增tag
$ git tag -a [tag_name] [commit_id]

2). 在remote端新增tag
$ git push origin [tag_name]
$ git push origin --tag (一次將所有tag push上去)

3). 在local端刪除tag
 $ git tag -d [tag_name]

4). 在remote端刪除tag
$ git push origin :refs/tags/[tag_name]

//======================================

9/4新增repo的部份
在repo codebase之下的用法

1). 在local端新增tag
$ repo forall -c 'git tag [tag_name]'

2). 在remote端新增tag
$ repo forall -c 'git push --tags'

3). 在local端刪除tag
$ repo forall -c 'git tag -d [tag_name]'

4). 在remote端刪除tag(需取得gerrit權限,目前沒嘗試過)
$ repo forall -c 'git push origin :refs/tags/[tag_name]'

[Gerrit] 在Gerrit網頁上加客製化修改

Gerrit網頁上方有能夠讓使用者客製化的區域
可藉由修改html檔,加上想要客製化的內容
請在放置gerrit的目錄底下的etc中增加GerritSiteHeader.html檔案
/home/gerrit/review_site/etc/GerritSiteHeader.html

內容請用<pre></pre>夾起來
example:
<pre>
Hello
World
</pre>

區域為底下圖片底色紅色的部份



2013年8月26日 星期一

[Gerrit] 解決Gerrit 2.5版本以上gitweb "404 no projects found"

Gerrit 2.5版以上有即使在All-Projects設了refs/*->read:allow
Gitweb仍舊會"404 no projects found"的bug

workround
在refs/meta/config->read:allow Project Owners
取消Exclusive的勾選
雖然被設定可讀權限的人可修改project access的狀況
但會以等待review方式呈現,且無submit的權限
所以暫時可以這個方式作為workaround

※refs:http://blog.sina.com.cn/s/blog_4fb490ff01018i0v.html

[Linux] 在Ubuntu上看影片;解決mplayer載入srt字幕亂碼

因為有在Ubuntu看影片的需求,搜尋了一下
在Linux中一個很強大的播放程式--mplayer

安裝
$ sudo apt-get install mplayer

播放
$ mplayer [檔名]
若有字幕,請放在同一個位置,並取與影片檔相同檔名

若srv字幕為繁體中文,通常編碼為big5
容易會有亂碼的情形發生
因此可在家目錄底下的.mplayer中找到config這隻檔案並修改
(若無,請建立$HOME/.mplayer/config)
font可在/usr/share/fonts/truetype搜尋字體並修改
subcp=cp950
unicode=yes
subfont-text-scale=3
font=/usr/share/fonts/truetype/arphic/ukai.ttc