1

相対 svn 外部 (../project/subfolder) であるサブフォルダーがあります。新しいトランク チェックアウトでは (...TRUNK/project/subfolder) を指し、新しいブランチ チェックアウトでは (...BRANCH/branchName/project/subfolder) を指します。ただし、サブフォルダーを含むプロジェクトで切り替えを行うと、サブフォルダーは TRUNK を指したままになります。または、BRANCH チェックアウトを実行して TRUNK に切り替えると、BRANCH を指したままになります。

svn:switch は相対外部を更新すべきではありませんか? ある種の再帰的な svn:switch を実行する必要がありますか?

4

5 に答える 5

4

質問に対する正しい答えは、「はい、それらの外部を更新する必要があります」です。そうでないという事実はバグです:

参照: http://subversion.tigris.org/issues/show_bug.cgi?id=3390

修正ターゲット マイルストーンは 1.6.10 です。修正は完了したようですが、これを書いている現在のリリース バージョンはまだ 1.6.6 です。

于 2010-04-24T13:31:32.530 に答える
1

残念ながら、上記のバグ修正はかなり前に実装されていましたが、これはまだ修正されていないと思います。

名前にスペースが埋め込まれ、二重相対パスを使用する外観があります。私の外部は、同じブランチ内のファイルを上下に参照しています。次のようになります。../../myOriginFolder/itsSubfolder/my file name.pdf

ブランチの名前を変更すると、TortoiseSVN 1.7.8(またはそのコマンドラインSVN 1.7.6)を使用してリポジトリが壊れます。古い作業コピーは、切り替え後に正しく更新できません。また、古い名前のブランチの新しいコピーをチェックアウトすることもできません。すべてのコマンド(checkout-to-old-revision、update-to-old-revision、switch-and-update)は失敗します。正常に機能する唯一のことは、新たにチェックアウトを行ってから先に進み、決して戻らないことです。

これはかなり悪いバグのようです!これは、相対パスexternalsを使用した結果、ブランチの名前を変更/切り替え/元に戻すことができなくなったことを意味します。

誰かがこれを見て、回避策があるのだろうか?それらの参照をハードコーディングするだけでよいのかどうか疑問に思っています。それでも、この失敗よりも良いかもしれません。

また、1.6から1.7の間で作業コピーの形式が変更されたために、上記の修正が失敗する可能性があるのではないかと思います。現在、トップレベルのブレッドクラムは1つだけです。おそらくそれは問題に関連している可能性がありますか?それでもそのフォルダーをチェックアウトできる場合は、/。svn /情報を比較して、最新の新しいチェックアウトと以前の名前を比較します。

これが私が見たエラーの詳細です。

TortoiseSVNによると:外部障害c:\ myRepo-keyword \ myDestinationFolder \ my file name.pdf'/ svn / myrepo /!svn / me'のエラーレポート:チャンクサイズを読み取れませんでした:接続がサーバーによって閉じられました。

Apache/VisualSVNイベントログには次のように記載されています。ソース:VisualSVN Server 2.5日付:2012年8月21日11:20:57 AMイベントID:4000レベル:情報説明:switch / myRepo-Path / myOriginFolder / itsSubfolder / my file name.pdf / my file name.pdf / myRepo -Path / mySubfolder / my file name.pdf@7178

これは、名前変更前のリビジョンからのexternal-edフォルダーのフレッシュチェックアウトからのエラーです。外部障害:C:\ VcsSvn \ 3.7.8.6328.RuntimeRefs \ Stroz Review User Guide.pdf
エラー:URL
エラー:' http:// myurl / svn / myOldRepo-Path / myOriginFolder / itsSuubfolder / my file name.pdf'
エラー:リビジョン7179では存在しません
完了:リビジョン:6328

//編集別のstackoverflowユーザーのおかげで、関連している可能性のあるこのオープンチケットを見つけました。 http://subversion.tigris.org/issues/show_bug.cgi?id=4150

// edit2; 別のポスターは、外部を避けることを推奨して います: SVNで分岐し、svn:externalフォルダーも分岐させるにはどうすればよいですか?

于 2012-08-21T20:11:06.803 に答える
1

svncopy.pl を試してみてください。svn:externals は、分岐または切り替え時に更新されません。

于 2009-01-13T16:27:08.550 に答える
1

Subversion は通常、エクスターナルをそれらを含むプロジェクトとは別のものと見なします。たとえば、「svn commit」はプロジェクト内のファイルのみを参照し、プロジェクト内に含まれる外部ファイルは参照しません。「svn switch」も同じように機能します。メイン プロジェクトを切り替えることができますが、各外部で個別の「svn スイッチ」を実行する必要があります。

于 2009-01-13T16:29:34.893 に答える
1

これは Subversion 1.6.11 http://svn.apache.org/repos/asf/subversion/trunk/CHANGESで修正されたようです

于 2010-11-26T12:45:04.677 に答える