2010-03-20 63 views
1

問題描述如下: 假設我有一個版本的文件列表(比如說A,B,C,D)。在下一個版本中,我有以下文件(A,E,F,G)。他們的內容有一些相似之處。更新版本中的文件來自以前的版本,通過文件名重命名,內容添加,刪除或部分修改或不作任何更改(例如,A未更改)。如何在一個版本中確定文件的文本塊來自以前版本中的哪個文件?

我從一個文件(E,第二個版本)中取一塊文本並檢查哪些文件(在第一個版本中)包含這個文本塊。我發現B,C和D包含文本片段。我想確定這個文本塊實際來自哪個文件(B或c或d)(我假設E是在第二個版本中名稱改變的文件)。

由於內容可能會在後面的版本中更改,添加或刪除,所以爲了確定相似性我使用LCS算法。但我無法將文件映射到以前的版本。 我認爲一種可能的方法可能是使用匹配文本塊的位置信息。但是這種啓發式方法並不總是奏效。是否有任何研究或算法可以找到。任何方向都會有幫助。提前致謝。

回答

0

我認爲看看Subversion及其跟蹤版本之間文件重命名的功能可能會有幫助。​​

它被嘗試和測試,因爲它被許多開發者使用。重命名必須通過使用顛覆工具來實現,但有很多(命令行,不同操作系統,圖形用戶界面,IDE的文件資源管理器集成,您可以將其命名)。它還包括在目錄之間移動文件,以及合併多行更改(分支)。

相關問題