gitweb for chromium user script

因為新版的 chromium 不能吃傳統的 greasemonkey 的 user script 它會把 user script 都轉成 extension 才能用 這點有機車到 而且我都把我的 user script 用 git 去管理 這樣一來我要更新就麻煩了…. 比較好的辦法是把所有的 user script 都轉成 chromium 的 extension 不過這樣子感覺好麻煩 只好退而求其次 讓 chromium 可以吃 gitweb 的網頁 patch gitweb.cgi 如下 diff gitweb.cgi.old gitweb.cgi --- gitweb.cgi.old 2009-12-05 22:39:01.000000000 +0800 +++ gitweb.cgi 2009-12-05 22:07:16.000000000 +0800 @@ -1006,6 +1006,12 @@ sub href { } } } + if (defined $params{"file_name"} + && $params{"file_name"} =~ /\.user\.js$/ + && defined $params{"action"} + && $params{"action"} eq "blob_plain") { + $href .= $params{"file_name"}; + } $href .= "?" .

git rebase 使用心得

最近在公司裡遇到一個 case 剛好可以讓我練習進階的 git 用法 情況是這樣的: 我們的 team 正在開發某個產品(保密…XD) 因為正在開發 所以有很多功能都還沒做好 同事甲說想要測試一下整合會不會有問題 不過我有個功能開發到一半 (branch A) 而且還要一段不短的時間才能結束 所以就決定先做跟同事甲之間的整合部份 於是…. 回到 branch master 開一個新的 branch B 然後寫程式…. 寫好了之後就是測試啦…. 然後當然是一堆問題 繼續修 bug 這時候 branch B 就離 branch master 很遠了 最後終於把 branch B 結束了 然後我要回到 branch A 繼續長期抗戰 不過我的 branch B 的東西要整合進 branch A 啊 這時候一般人的做法可能是用 merge 的方式把 branch B merge 到 branch A 不過一用 merge 的話就會產生難看的 commit message & 亂七八糟的 merge tree 可能是因為我都有在看 git history tree 所以比較在意整個 history 的美觀….XD 這個時候就是 rebase 派上用場的好機會了 $ git rebase --onto branchB master branchA 一行指令搞定!!

Qt Application Version

要在 Qt on windows 的程式上加入版本訊息其實是可以的 我在 Google 上好像都找不到相關的文章 只好自己從 Qt 的原始碼去找答案了 Qt 小幫手裡面有說明如何把 ICON 加到 Application 上 不過就是沒有說到版本訊息的部份 最後在 QTDIR/src/gui/QtGuid_resource.rc 找到答案 QTDIR/src/gui/QtGuid_resource.rc # if defined(UNDER_CE) # include <winbase.h> # else # include <winver.h> # endif VS_VERSION_INFO VERSIONINFO FILEVERSION 4,5,2,0 PRODUCTVERSION 4,5,2,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG #else FILEFLAGS 0x0L #endif FILEOS VOS__WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" BEGIN VALUE "CompanyName", "Nokia Corporation and/or its subsidiary(-ies)\0" VALUE "FileDescription", "C++ application development framework.\0" VALUE "FileVersion", "4.5.2.0\0" VALUE "LegalCopyright", "Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)\0" VALUE "OriginalFilename", "QtGuid4.dll\0" VALUE "ProductName", "Qt4\0" END END END /* End of Version info */ 再把這個資源檔加進 pro 就好了 RC_FILE = MyApp.rc 不過我比較喜歡把一些訊息統整起來 所以又另外寫一個 config.h 來放程式的名稱、版本、圖示 config.h #ifndef _MYAPP_CONFIG_H #define _MYAPP_CONFIG_H #define PROJNAME "MyApp" #define PROJVER "1.0.0.0" #define PROJVERC 1,0,0,0 #define ICONPATH "../icon/MyApp.ico" #endif//_MYAPP_CONFIG_H myapp.rc # if defined(UNDER_CE) # include <winbase.h> # else # include <winver.h> # endif # include "config.h" IDI_ICON1 ICON DISCARDABLE ICONPATH VS_VERSION_INFO VERSIONINFO FILEVERSION PROJVERC PRODUCTVERSION PROJVERC FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG #else FILEFLAGS 0x0L #endif FILEOS VOS__WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" BEGIN VALUE "CompanyName", "KD\0" VALUE "FileDescription", "MyApp Qt Application\0" VALUE "FileVersion", PROJVER VALUE "LegalCopyright", "Copyright (C) 2009 by tsaikd\0" VALUE "ProductVersion", PROJVER VALUE "ProductName", PROJNAME END END END /* End of Version info */ 然後在 main() 裡面加上這些 code main.cpp int main(int argc, char* argv[]) { ...