免責事項:Ruby / Railsを知らないので、フリーズされたgemが何であるかはわかりません(コンパイルされたバイナリまたはトークン化されたソースだと思いますが)が、Subversionはよく知っています。
.svnディレクトリはSubversionの「簿記」のみを保持します。そこには回復不可能なものは何もありません。
.svnファイルの削除はまったく問題ありません。.svnディレクトリが欠落しているディレクトリがSubversionワーキングコピー(チェックアウトしたディレクトリ)のディレクトリツリー内のどこかにある場合は、それらのディレクトリを削除し、svnを更新するだけで、再作成されます。
ツリー全体に.svnファイルがない場合は、ツリー全体を削除して、svnチェックアウトを再度実行します。
svn:externalsは「シンボリックリンク」のようなものです。プロジェクトAとプロジェクトAを使用するプロジェクトBがあります。プロジェクトAのライブラリディレクトリを参照するsvn:externalプロパティを追加することで、プロジェクトBをチェックアウトするたびに、プロジェクトAからライブラリディレクトリが自動的に配置されます。初期化。たとえば、subversionの他のプロジェクトへのevn:external参照など、他の場所からのライブラリの外部を保持する「thirdparty」というディレクトリがよくあります。
このようなバージョンの問題を解決するための1つのヒントは、ライブラリ(またはフリーズされたgem)に個別のリリースディレクトリを用意し、それらを必要とするプロジェクトで、適切なリリースディレクトリへのsvn:external参照を使用することです。新しいリリースがリリースされたら、svn:externalプロパティを変更して、新しいリリースディレクトリとsvnアップデートを指すようにします。