腳本化 pdf 程式碼審查
我試圖達到的目標
我需要查看分佈在十幾個目錄中的一堆 C 原始碼。我已經有一個 bash 腳本,它執行以下操作:它在我感興趣的目錄中搜尋所有原始碼。對於找到的每個程式碼,它使用以下命令生成一個 pdf(源文件所在的位置):
a2ps $source -R --columns=1 --prologue='color' --line-numbers=1 -T2 -M A4 \ --chars-per-line=100 --borders=no --encoding=iso1 -o - | \ ps2pdf -sPAPERSIZE=a4 - $dest
然後它用 PDF 查看器打開這個生成的 pdf,讓我使用便箋查看它。然後我保存它,關閉它,腳本對下一個 c 原始碼等執行相同的操作。
通過這種方式,我可以自動查看所有原始碼,並以方便的 pdf 格式分發評論。
失敗的地方
我找不到合適的 PDF 閱讀器,它可以讓我完全按照上面提到的方式進行操作。基本上我嘗試過的:
表明
不允許將便箋保存在同一個文件中,我需要“另存為…”並顯示然後打開以前使用的位置而不是目前 pdf 的位置。這迫使我手動導航到目錄以找到源 pdf 以覆蓋它。
日報
它沒有便簽,這對我來說是強制性的。
目鏡
Adobe Reader 中看不到便簽,這對我來說也是強制性的。
Adobe 閱讀器 9
Linux 的這個舊版本(感謝 Adobe)不支持便簽。
因此我需要什麼
總結一下我上面所說的,我需要一個 PDF 閱讀器:
- 能夠直接保存帶註釋的pdf或至少直接保存在同一目錄中
- 使用官方 pdf 便簽
- 創建至少在Adobe Reader和evince中可見的便簽
非常感謝您的幫助,因為它可以為我節省很多時間!如果它符合我的要求,也可以隨意提出一個完全不同的工作流程想法。
涉及 evince 和您的 bash 腳本的快速想法:
dir=$(dirname $source) rm -f ~/evince_save ln -s $dir ~/evince_save
當您在 evince 中“另存為”時,保存到
~/evince_save
. 如您所見,evince 每次都會使用同一個目錄,但自動化腳本每次都會替換它的連結;您不必進行任何導航,文件最終會出現在正確的位置。
rm
刪除符號連結而不是目錄;如果尚不存在,-f
則表示沒有錯誤。~/evince_save
如果這些 C 源文件尚未受到修訂控制,請將它們置於修訂控制之下(我的建議是 mercurial)。如果他們在一些過時的版本控制系統(SVN、CVS)下轉換原始碼庫。
(之後,)複製儲存庫並創建分支“修訂”,使用帶有語法突出顯示的普通編輯器(應該與您的 PDF 一樣可讀)和一些可辨識的方式來標記您的評論:
/*CID: need to review the following in more detail */
可以通過送出和推送您的更改來提供審查回饋,其他人可以只做一個(圖形差異)來查看您的評論在哪裡(每個文件或一堆文件)。
您不必標記評論,但如果有人在您的評論中合併您的“更改”,則更容易辨識。
(我不完全確定您為什麼覺得 PDF 格式很方便。)