掌握最即時的股市資訊

2012年12月3日 星期一

[Android] How to gen changelog in android

當 android 進版時, 我們想要知道新版的android 跟上一版的差異在哪,並了解 Google 修改了那些
code, 這時候有 changelog 就比較好了解了。而目前最新release的版本為 android-4.2.1_r1(可以
[1]知道),所以上一版為 android-4.2_r1,先來看一下android-4.2_r1  to android-4.2.1_r1的


從changelog中就很清楚的知道,這次進版Google修改了些什麼,所以如何產生版本之間的
changelog,並透過網頁方式呈現,這裡提供script來去gen:
#!/bin/bash

export NEW_ANDROID='android-4.2.1_r1'
export LAST_ANDROID='android-4.2_r1'

export diff_root=`pwd`
TMP='change.log'

HOST='Jiunway'
HOST_WEBSITE='http://jiunway.blogspot.tw/'

repo forall -c '
changelog=$(git log --oneline --no-merges $LAST_ANDROID..$NEW_ANDROID) >/dev/null 2>&1
if [ ! -z "$changelog" ]; then
 diff_root_len=`expr ${#diff_root} + 2`
 prj_path=`pwd`
 prj=`pwd|cut -c $diff_root_len-${#prj_path}`
 echo "Project: platform/"$prj
 git log --oneline --no-merges $LAST_ANDROID..$NEW_ANDROID
 echo ""
fi
' | cat > $TMP

在這段shell script裡,主要透過git將changelog(short hash+commit)抓回來,再透過project分類存
在change.log中,最後根據change.log裡的資料寫成html的格式,就會如上連結所顯示的樣子了

使用方法:
1) 將changelog.sh下載後放置Android的目錄下(可以參考[3]去下載Anroid Source)
2) 打開changelog.sh,填上你要比對的兩個android version (可參考 [1] 查詢version tag),此範例為比較 android-4.2.1_r1 和 android-4.2_r1 ,下圖所示,在NEW_ANDROID中填上較新的tag,而LAST_ANDROID 則填上一版的tag,而HOST和HOST_WEBSITE則在網頁上告知是誰製作的和製作人的網址
3) 執行changelog.sh 並導向 changelog.html 中,其中 changelog.html 和 changelog.log 就是結果嚕

最後,程式上有疑問還是有問題,請告知,謝謝

changelog.sh:  [下載]

Refenerce
[2] https://groups.google.com/forum/#!msg/android-building/0DtsHawjs4k/And8o3Dni_UJ
[3] http://source.android.com/source/downloading.html

沒有留言:

張貼留言