既知のディレクトリまたはファイルを取得する方法はありますか...古いリビジョンから....そして(後で「移動」されたことを知って)移動された場所を見つけますか?
例。
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"
.......... (1,000 以上のチェックインがあると仮定しますが、svn の移動はもうありません)、リビジョン 1444 にジャンプします。) ..........
今、リビジョン 333 をチェックアウトすると、このファイル "MyFile01.txt" (またはフォルダー "FolderA") があります。そして、HEADリビジョンのどこに存在するかを把握しようとしています。
「なぜ彼はこれが必要なの?」と思うかもしれません。しなかったらよかったのに。しかし、その改訂履歴を提供するには 30 分かかります。(<< 悪い冗談)。
.........編集..............
それで、いくつかの追加事項。
1 つ: svn info では、新しいホームを見つけるのに十分な情報が得られませんでした。これの主な理由は、ディレクトリのネストでした。私はいくつかのフォルダーを移動しますが、そのフォルダーには複数のレベルでネストされたいくつかのサブフォルダーがあります。
ただし、svn diff を使用すると、多くの情報 (リビジョン 1444 と 333 の間) が得られますが、情報はそこにあります。つまり、svn diff タスクには 33 秒ほどかかりますが、戻ってくると xml に情報があり、それを解析していくつかの単純な DTO オブジェクトに入れています。
2 (同じファイル名の問題):
アイテムの元の場所が次の場合:
https://mySvnServer.com/Repo1/SoccerClubWebSite/scripts/validationRoutines.js
次に、svn diff (詳細) を実行すると、HEAD リビジョンに次の 2 つの項目があります。
<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 セグメント マッチャーを作成する必要がありました。
例。上記の 2 つの項目で....最初に URI の最後のセグメントを試します。
validationRoutines.js
その文字列に 2 つの一致があります。したがって、私が懸念しているものを正確に知りません。親フォルダーを取得して使用します。
scripts/validationRoutines.js
まだ2試合。
次に、3 番目の uri セグメントを追加します (右から左へ)
SoccerClubWebSite/scripts/validationRoutines.js
そして今、私はユニークな一致を見つけました.
したがって、私が現在行っていることの基本的なテンプレートは次のとおりです。
(1) svn diff 333:HEAD
(参考までに、これにより大量の情報が返されます)。
(2) xml を解析し、単純な DTO オブジェクトにプッシュします。
(3) その xml 内で「追加」または「変更」されたアイテムを探し、上記のセグメント ロジックに基づいたマッチング システムを使用します。
(3b) 同じファイルが複数回変更された可能性があるため (したがって、xml に複数回 (ただし、同じヘッド svn-path で) 表示される可能性があるため)... GROUP BY (svn-path) を実行する必要がありました。 LINQ group by はここでうまく機能しました。
さらにいくつかの例に対してロジックをテストする必要があります。しかし、あなた、これは些細なことではありませんでした。