2009-10-31 64 views
1

當我做svn log <path>時,它會顯示該路徑的歷史記錄,直到它從另一個路徑複製的點。那時,它會開始向我展示原始道路的歷史。Subversion:記錄路徑,不管副本

是否有辦法獲取特定路徑的所有更改的歷史記錄,而不管它是否從其他地方複製?我知道你可以通過--stop-on-copy,但是在複製之前切斷了所有的歷史,這正是我想看到的。

我發現的唯一解決方法是首先執行svn log <path>,查找它在其中被複制的版本,然後執行svn log <path>@<revision - 2>(假設原始文件在複製之前立即被刪除)。然後重複以後的副本。但必須有一個更簡單的方法。

這在幾種情況下是有用的:

  • 有時你複製一個文件,而不是因爲你要共享它的歷史,但僅僅是因爲你想要的內容。如果您通過現有文件複製它,您仍可能想要保留現有文件的歷史記錄。

  • 當您使用--reintegrate從分支進行合併時,您的分支爲have to delete,因爲它將在未來合併時中斷。如果您想重複使用相同的分支名稱,則必須製作一份新的副本。但是您可能想要在重新複製之前查看分支中的內容。

如果這是不可能的,這不是一個很大的遺漏嗎?

回答

0

This question正在尋找類似的數據,我認爲。

沒有本地的Subversion方法來做到這一點,因爲Subversion將文件而不是路徑視爲需要跟蹤的東西。您在獲取文件日誌,停止複製,然後在副本之前使用peg修訂等問題中描述的方法似乎是跟蹤該路徑歷史記錄的唯一方法。鏈接問題中的人通過腳本做了這樣的事情。

Re:你的要點,如果你想在保留目標文件的歷史的同時插入文件的內容到另一個文件,你應該複製並粘貼到它。