Linux

腳本化 pdf 程式碼審查

  • October 31, 2013

我試圖達到的目標

我需要查看分佈在十幾個目錄中的一堆 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 的這個舊版本(感謝 Adob​​e)不支持便簽。

因此我需要什麼

總結一下我上面所說的,我需要一個 PDF 閱讀器:

  • 能夠直接保存帶註釋的pdf或至少直接保存在同一目錄中
  • 使用官方 pdf 便簽
  • 創建至少在Adob​​e Readerevince中可見的便簽

非常感謝您的幫助,因為它可以為我節省很多時間!如果它符合我的要求,也可以隨意提出一個完全不同的工作流程想法。

涉及 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 格式很方便。)

引用自:https://unix.stackexchange.com/questions/98326