Beyond Compare 腳本生成比較報告小結(jié)

1 需求描述

當前在修復(fù)bug時,公司流程要求附上修改前后的對比報告。一開始杰刽,我直接使用svn的diff命令來生成對比報告菠发,這種方法也可以看,但顯示效果不太好贺嫂,其他同事看起來不方便滓鸠。
平時在查看代碼差異時,一般會使用Beyond Compare工具來查看涝婉,對比結(jié)果比較清晰哥力。其也可以導(dǎo)出報告,但需要自己手動操作墩弯,沒有svn diff 一行命令這么方便吩跋。后來發(fā)現(xiàn)Beyond Compare也支持通過腳本來生成報告,于是研究了一下渔工,并實現(xiàn)了一個腳本锌钮。

2 實現(xiàn)效果

通過一行命令直接生成下面帶上下文的html 格式的對比報告

3 腳本要點

3.1 Beyond Compare 命令行工具安裝

點擊 Beyond Compare -> 安裝命令行工具,可以直接安裝命令行

3.2 運行Beyond Compare 命令

對于Mac 來說引矩,Beyond Compare主要有兩個命令可以使用
bcompare: 啟動比較并立即返回
bcomp: 啟動比較并等待它完成

我這里想實現(xiàn)生成報告后將其發(fā)送到指定郵箱梁丘,故選擇bcomp命令。
對于運行腳本來說旺韭,只需要運行:
bcomp -silent @compare_script.txt folder-1 folder-2 report.html
其中:
-silent:告訴Beyond Compare不用開啟用戶界面氛谜,后臺運行生成報告即可
@compare_script.txt:Beyond Compare 腳本的路徑,需要在其路徑前加@区端,以標示其是一個腳本路徑值漫,而不是一個普通文件,如果路徑中包含空格织盼,記得用""來包裹路徑
folder-1 folder-2 report.html:這三個參數(shù)不是bcomp 的參數(shù)杨何,而是腳本里面的參數(shù),在后面會介紹沥邻。

3.3 Beyond Compare 腳本的編寫

具體解釋見注釋

# Turn logging on. 打開日志危虱,方便定位問題
log normal "beyond_compare_log.txt"

# Set up basic comparison features. 指定比較規(guī)則,當前指定的是 基于規(guī)則的比較
criteria rules-based

# Filter out log files. 文件過濾唐全,可指定對文件夾中那些或那類文件進行比較埃跷,與用戶界面的配置一樣
filter "-*.xcuserdatad;-*IDEWorkspaceChecks.plist;-.DS_Store;"

# Load first comparison. 加載比較對象,這里的%1 %2為占位符邮利,可通過bcomp 來傳入?yún)?shù)弥雹,如3.1.2 所示。
load %1 %2

# expand all 展開所有文件夾近弟,以對其中內(nèi)容進行遍歷
expand all

# select files. 指定操作的對象缅糟,這里選擇的是所有有差異的文件
select all.diff

# Generate a report of the differences.
# file-report生成文件對比報告挺智;
# layout: 排版祷愉,這里是邊并排窗宦;
# options:可選參數(shù),這里指定了要顯示上下文和行數(shù)二鳄;
# output-to:指定導(dǎo)出文件路徑赴涵; output-options: 導(dǎo)出可選參數(shù),這里指定其自動換行订讼,導(dǎo)出格式為多色的html格式髓窜,其他參數(shù)參見文檔
# 注意:這里有一個需要關(guān)注的點,display-context這個可選參數(shù)在file-report中是沒有的欺殿,但如果你比較的是文本文件寄纵,是可以正常運行的,也會生成帶上下文的比較報告脖苏;但如果有圖片之類的二進制程拭,就會報腳本錯誤。
file-report layout:side-by-side options:display-context,line-numbers output-to:%3 output-options:wrap-word,html-color

這里所有的命令和參數(shù)都可以在官方文檔中找到:
https://www.scootersoftware.com/v4help/index.html?scripting_reference.html
https://www.scootersoftware.com/v4help/index.html?scripting_reference.html

也可以在這里查看官方的腳本示例:
https://www.scootersoftware.com/v4help/
(找到Using Beyond Comapre -> Scripts -> Sample Scripts)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棍潘,一起剝皮案震驚了整個濱河市恃鞋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亦歉,老刑警劉巖恤浪,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肴楷,居然都是意外死亡水由,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門阶祭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绷杜,“玉大人,你說我怎么就攤上這事濒募”廾耍” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵瑰剃,是天一觀的道長齿诉。 經(jīng)常有香客問我,道長晌姚,這世上最難降的妖魔是什么粤剧? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮挥唠,結(jié)果婚禮上抵恋,老公的妹妹穿的比我還像新娘。我一直安慰自己宝磨,他們只是感情好弧关,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布盅安。 她就那樣靜靜地躺著,像睡著了一般世囊。 火紅的嫁衣襯著肌膚如雪别瞭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天株憾,我揣著相機與錄音蝙寨,去河邊找鬼。 笑死嗤瞎,一個胖子當著我的面吹牛墙歪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贝奇,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼箱亿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了弃秆?” 一聲冷哼從身側(cè)響起届惋,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菠赚,沒想到半個月后脑豹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡衡查,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年瘩欺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拌牲。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡俱饿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出塌忽,到底是詐尸還是另有隱情拍埠,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布土居,位于F島的核電站枣购,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏擦耀。R本人自食惡果不足惜棉圈,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望眷蜓。 院中可真熱鬧分瘾,春花似錦、人聲如沸吁系。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氏捞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冒版,已是汗流浹背液茎。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辞嗡,地道東北人捆等。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像续室,于是被迫代替她去往敵國和親栋烤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容