有沒有什麼辦法可以從已有的目錄或文件中刪除舊版本....然後(知道它已經「移動」了以後的時間)找出它被移動的地方?svn移動後找到舊文件的新位置
例子。
https:\\myserver.com\Repository1\OldFolderStructure\Folder01\FolderA\MyFile01.txt
(該結構/文件存在於修訂333)
........
svn mkdir "https:\\myserver.com\Repository1\NewFolderStructure\"
svn move "https:\\myserver.com\Repository1\OldFolderStructure\Folder01" "https:\\myserver.com\Repository1\NewFolderStructure"
svn ls "https:\\myserver.com\Repository1\NewFolderStructure\Folder01"
.......... (現在假裝有1000多個其他檢查,但沒有更多的svn動作),所以我跳轉到修訂版1444.) ..........
所以,現在,如果我檢查修訂333,我有這個文件「MyFile01.txt」(或文件夾「Folde RA「)。 我試圖找出它在HEAD修訂版本中的位置。
你可能會想,「他爲什麼需要這個?」 我希望我沒有。但是,我需要30分鐘才能提供修訂歷史記錄。 (< <壞笑話)。
.........編輯..............
所以一些額外的東西。
其中:svn info沒給我足夠的信息來找到新家。主要原因是目錄嵌套。 我svn移動一些文件夾,但該文件夾有多個嵌套在多個級別的子文件夾。
但是,通過svn diff,雖然我獲得了大量信息(在版本1444和333之間)......信息就在那裏。我的意思是,svn diff任務需要33秒,但是一旦它返回,我就有了xml中的信息,我正在解析它並將其放入一些簡單的DTO對象中。
兩個(文件名相同的問題):
如果我的項目的原始位置是:
https://mySvnServer.com/Repo1/SoccerClubWebSite/scripts/validationRoutines.js
,然後我做一個svn差異(詳細),我有以下兩個項目在HEAD修訂版本中:
<path props="none" kind="file" item="add">https://mySvnServer.com/Repo1/WebSites/SoccerClubWebSite/scripts/validationRoutines.js</path>
<path props="none" kind="file" item="add">https://mySvnServer.com/Repo1/WebSites/CriticalBusinessAppWebSite/scripts/validationRoutines.js</path>
我遇到了一些我的文件名不是唯一的地方。
所以我不得不寫一個Uri段匹配器,試圖找到匹配.....通過向後工作的Uri。
例子。 在上述2項中....我首先嚐試URI的最後一段。
validationRoutines.js
我有2個匹配的字符串。因此我不知道我關心的確切人物。 我抓住父母文件夾並使用它。
scripts/validationRoutines.js
還有兩場比賽。
現在我添加了第三URI段(從右至左)
SoccerClubWebSite/scripts/validationRoutines.js
,現在我找到了一個獨特的比賽。
那麼什麼我現在做的基本模板是:
(1) SVN DIFF 333:HEAD
(僅供參考,這給信息反饋ALOT)。 (2) 解析XML並將其推送到簡單的DTO對象。
(3) 在xml中查找「添加」或「修改」的項目,並使用基於上面列出的段邏輯的匹配系統。 (3b)因爲同一個文件可能被多次修改(並且因此不止一次在xml中顯示(但是具有相同的頭部svn-path)...我必須做一個GROUP BY(svn -path)。LINQ組通過行之有效這裏。
我還需要對更多的一些例子測試我的邏輯。但是YOUCH,這不是小事。
感謝您的輸入。有沒有這個命令行版本?或者那只是龜龜唯一的東西? – granadaCoder 2013-03-01 18:35:34
對於'svn mv' TSVN將不會在日誌窗口中顯示任何文件 - 您在這裏(在Tortoise中)有**破解歷史記錄**的文件 – 2013-03-04 04:48:28