2012年6月26日 星期二

Oprofile in Android ICS

最近在學用oprofile來調適Android,以下是在Android ICS開啟oprofile的步驟
1.修改kernel 的.config,加入以下設定
CONFIG_OPROFILE=y
CONFIG_PROFILING=y
CONFIG_HAVE_OPROFILE=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_PERF_EVENTS=y

2.rebuild kernel and Android

3.cp -r {Android root}/external/oprofile/events/arm/ /usr/local/share/oprofile/arm

2012年6月18日 星期一

2012年6月5日 星期二

git tips

1.git pull --rebase

在大部分時間git pull其實就OK了 ,會需要 git pull –rebase,我現在只有遇到下面兩個情形

i.已經commit並push ,但server端尚未merge,此時直接git pull 必定多出” merge branch的commit”
ii..已經commit 但無法push,server端有新的commit沒有pull回來,此時git pull 也必定多出” merge branch的commit”

那如果遇到git pull –rebase但本地端又有修改過的檔案該怎麼辦呢?
就要先輸入git stash,之後git會把有修改過的檔案暫存起來,並回復到無修改狀態, 這時也就可以下git pull –rebase,之後合併完後,再下git stash pop則可把剛修改好的檔案復原回來,即可繼續工作,而遇到不小心下了git pull產生出merge時,也還是可以用git reset –hard回merge之前下git pull --rebase。

2.git cherry-pick

有時候各位會自己開一個新的local branch進行開發, 並且在完成開發後,將特定幾個commit合併到別的branch上, 此時可以透過cherry-pick操作,避免commit log多一個”Merge branch” commit。
操作方法如下,
git cherry-pick <commit id>
透過這樣的操作,可以將特定的commit直接拉過去別的branch,又能避免”Merge branch” commit產生。

3.git commit --amend

當最後一個commit的code被人reject時,可以修改code,然後git add跟git commit --amend,即可修改已commit的code,不需要重複commit。如果要修改非最後一個commit,則要搭配git rebase XXXXXXX^ -i,選擇要修改的commit,然後修改完後下git add跟git commit --amend,並且多加git rebase --continue即可,當然這兩個最後都要push才可以囉