リポジトリから作業コピーをチェックアウトし、いくつかのディレクトリを別の URL に切り替えましたが、同じリポジトリ (同じホストと svn サーバー) にありました。
これらの切り替えられたディレクトリを一覧表示するにはどうすればよいですか?
私たちは内部的な目的で多くの切り替えを使用しており、これらすべてを作業コピーに簡単にリストするのに役立つでしょう。
リポジトリから作業コピーをチェックアウトし、いくつかのディレクトリを別の URL に切り替えましたが、同じリポジトリ (同じホストと svn サーバー) にありました。
これらの切り替えられたディレクトリを一覧表示するにはどうすればよいですか?
私たちは内部的な目的で多くの切り替えを使用しており、これらすべてを作業コピーに簡単にリストするのに役立つでしょう。
(1) @ ks1322 によって提供された回答は簡潔であり、1 つのマイナーな調整を除いて正常に機能します。ファイルによってはCopied from URL
行も報告されるため、「URL」だけでなく「^URL」を使用する必要があります。私のシステムでの小さな問題を示すサンプル出力を次に示します。
URL: file:///C:/usr/tmp/SvnSandbox/branches/sub-branch1
URL: file:///C:/usr/tmp/SvnSandbox/branches/sub-branch1/commands
URL: file:///C:/usr/tmp/SvnSandbox/branches/sub-branch1/commands/show%20test.cmd
URL: file:///C:/usr/tmp/SvnSandbox/trunk/commands/subdir
URL: file:///C:/usr/tmp/SvnSandbox/trunk/commands/subdir/stuff.txt
URL: file:///C:/usr/tmp/SvnSandbox/branches/sub-branch1/commands/reversion_test.txt
URL: file:///C:/usr/tmp/SvnSandbox/branches/sub-branch1/file-on-branch1.txt
Copied From URL: file:///C:/usr/tmp/SvnSandbox/branches/branch1/file-on-branch1.txt
URL: file:///C:/usr/tmp/SvnSandbox/branches/sub-branch1/externals
URL: file:///C:/usr/tmp/SvnSandbox/branches/sub-branch1/file-on-branch-and-subbranch.txt
URL: file:///C:/usr/tmp/SvnSandbox/branches/sub-branch1/file-on-sub-branch1.txt
(2) Windows システムの場合、同等のコマンド (PowerShell を使用) は次のとおりです。
svn info --depth=infinity | Select-String ^URL
(3) ただし、信号対雑音比がはるかに高い出力の場合は、次を試してください。
Get-SvnInfo . -Recurse -ContainersOnly Path, URL |
Format-Table Path, `
@{ n='Branch'; `
e={$_.URL -replace ".*(trunk|branches/[^/]*).*", '$1'} }
そのシーケンスからの出力は、知っておくべきことを一目で示します。最初の例で使用したのと同じサンプル ツリーから、次のことがわかります。
Path Branch
---- ------
commands branches/sub-branch1
externals branches/sub-branch1
commands\subdir trunk
externals\commonlib trunk
externals\commonlib\textfiles trunk
(Get-SvnInfo
コマンドレットは、私のオープン ソース PowerShell ライブラリから入手できます。詳細については、私のAPI ブックシェルフにある PowerShell ブックを参照してください。)
次のようなコマンドを使用して、作業コピー内のすべてのファイルとディレクトリの URL を再帰的に一覧表示できます。
svn info --depth=infinity|grep URL
出力に切り替えられた URL が表示されるため、ディレクトリも切り替えられます。