(CollabNetのSubversionのエッジを使用)、WindowsベースのSVNのインストールでは、私はリポジトリのフォルダ名を構築フックバッチファイルをコミット後の持っている、と私は呼び出す必要があるsvnsync
とfile:
そのWindowsフォルダを指すURL。
ここでの問題は、Windowsのフォルダーまたはファイル名をfile:
URLに変換して、そのURLが少なくともSVNコマンドラインツールで受け入れられるようにするにはどうすればよいかということです。
バッチファイルで、変数FILE_OR_FOLDER_NAME
に(絶対または相対、ローカルまたはUNC、スペースの有無、既存または非存在)Windowsファイルまたはディレクトリ名が含まれている場合、次のコマンドは対応するfile:
URLを変数に入れますFILE_URL
。
for /f "delims=" %%R in ("%FILE_OR_FOLDER_NAME%") do set FILE_URL=%%~fR%
set FILE_URL=file:///%FILE_URL%
set FILE_URL=%FILE_URL:///\\=//%
set FILE_URL=%FILE_URL:\=/%
1行目は、相対ファイル名を絶対ファイル名に展開します。2行目は前に付けfile:///
ます; 3行目は、UNCパスの特殊なケースを処理します。4行目では、スラッシュのみを使用していることを確認しています。
まとめると、これらは、、およびに変換\\remotehost\share\folder
されます。file://remotehost/share/folder
d:\folder
file:///d:/folder
私のテストに関する限り、上記のコマンドは常にfile:
SVNコマンドラインで受け入れ可能なURLになり、おそらく他の用途にも使用できます。
本当に正しくない唯一のものは、スペースや他の特殊文字などがあることである#
適切結果にURLエンコードされないfile:
:URLD:/my test#repo
なっfile:///D:/my test#repo
技術的に正しいされていません、。ただし、私の特定のユースケースでは、SVNコマンドラインパーサーがリポジトリを検出するため、これは問題になりません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加