2008-09-09 92 views
3

我們正在遷移我們的作品存儲庫,因此我想在將源代碼樹移動到漂亮的新鮮(空)存儲庫之前挑選存在於源代碼樹中的所有未引用文件。在項目中查找未使用的文件

到目前爲止,我已經手工完成並找到了所有我知道的無關文件,但我想知道是否我抓住了所有這些文件。一種方法是手動將項目文件按文件移動到新文件夾,並在編譯時查看粘貼的內容。這將需要整整一週,所以我需要一個自動化工具。

人們建議什麼?

說明:
1)它是C++。
2)文件混合。我正在尋找已被其他人取代但在版本庫中已經腐爛的文件 - 例如,file_iter.h未被程序中的任何其他文件引用,但仍保留在版本庫中,以防某人想要編譯版本1996年!現在我們正在轉向一個新的存儲庫,我們可以安全地垃圾所有不再使用的文件。
3)林特只發現未使用的包括 - 沒有未使用的文件(我有7.5手冊在我面前)。

+0

你能描述一下你的構建環境嗎?例如,您是否有UNIX命令行類型工具可用,並且使用Make或類似的東西來完成構建。我可以描述一個基於腳本的解決方案,在這種情況下執行此操作... – 2008-09-09 10:52:28

回答

2

你已經用C++標記了這篇文章,所以我假設這是有問題的語言。如果這是存儲庫中唯一的東西,那麼對於每個文件名來存儲存儲庫中的所有文件都不應該太困難,以便爲您提供一個很好的起點。如果存儲庫包含其他文件(元數據,支持文件,資源等),那麼您可能需要手動完成。

0

像lint這樣的靜態源代碼分析工具可能會完成這項工作。他們會告訴你一段代碼是否永遠不會被調用。

0

你看過Source-Navigator嗎?它可以用作IDE,但我發現它非常擅長分析源代碼結構。例如,它可以查找源代碼中是否使用了某種方法。

我不知道它是否可編寫腳本,但它可能是一個很好的起點。

1

我不能爲它提供一個現有的工具,但我希望你可以從你的構建工具中獲得很多這些信息(可能有一些努力)。通常,您至少可以讓構建工具打印它將運行的命令,而無需實際運行它們。 (例如,makebjam-n選項會這樣做。)從中您應該至少可以提取使用的源文件。

-MMg++你可以得到給定源文件的所有非系統頭文件。輸出的格式是make規則,但是通過一些過濾,這應該不成問題。

我不知道這是否有幫助;這正是我會在你的情況下嘗試的。

1

實際上,您可以通過運行「整個項目分析」(其中所有文件一起分析而不是單獨分析)與Lint間接進行此操作。

將其配置爲忽略所有內容,但未引用的變量/枚舉/函數等警告,它應該給你一個合理的指示器,指示死木的位置,而不會讓代碼庫中的任何其他人隱藏這些問題。

+0

我目前正在放假,並且沒有lint手冊,但是我可以看到這將如何顯示源代碼文件夾中未使用的文件。我會很高興,如果你告訴我一種方法來做到這一點... – 2009-02-10 07:48:14

相關問題