更換 SVN 1.8.4 後發現我常用的 geany + geanyvc &meld 卻不能使用 了 .
主要原因是因為 geanyvc 沒有辦法找到 .svn 資料夾 .
看一下 google 上的討論 , 只要修改兩個小地方就可以用了, 那就動手升級 geany 和 geanyvc 吧 !!
下載 source code .
geany : "geany-1.23.1.tar.gz"
geany plugins : "geany-plugins-1.23.tar.gz"
先編譯 geany:
A. untar source code .
B. into source tree , do ./configure
這時候會遇到問題, 缺少 gtk ... glib 等....
$> sudo apt-get install gtk+-2.0
如果缺少 intltool-update , 就在安裝一次 .
$> sudo apt-get install intltool
C. make
D. sudo make install
這樣就有 geany 1.23.1 版了.不過記住移除就的 geany , 避免有所衝突.
接著編譯 geany-plugins :
A. untar source code.
B. 修改 ..../geany-plugins-1.23/geanyvc/src/vc_svn.c file.
static gchar * get_base_dir(const gchar * path)
{
.................................................
break;
}
while (strcmp(base, base_prev) != 0);
//---- Add patch by Jeff Hsieh.
if (base_prev == NULL)
{
/* fallback for Subversion 1.7: try to climb up the tree until we
* find a .svn subdirectory */
base_prev = find_subdir_path(path, ".svn");
}
g_free(base);
return base_prev
}
還有將下列兩行移除.
static gboolean in_vc_svn(const gchar * filename)
{
.............................
gboolean ret = FALSE;
gchar *std_output;
//---- Remove by Jeff Hsieh.
// if (!find_dir(filename, ".svn", FALSE))
// return FALSE;
if (g_file_test(filename, G_FILE_TEST_IS_DIR))
return TRUE;
.................................
}
這些修改在 google 上都找的到 , 詳細討論請自行到 google 上搜尋.
C. into source tree of top .
$> ./configure --enable-geanyvc
預設應該會打咖 geanvc , 和其他一堆 plugins .... 不過我確保有我要的 geanyvc , 所以特別加註 .
D. make
E. sudo make install
完成了.... 這樣的 geany + geanyvc 就可以支援 meld 的 diff viewer 了 .......