「スイッチ」を実行してディレクトリを別のブランチに変更しようとすると、奇妙なエラーメッセージが表示されます。
これは、リポジトリがホストのWebサイトからそれを見て設定する方法です。以前はbugfix-lobby-quirksというブランチがありましたが、トランクにマージした後に削除されました。この機能とゲーム内対戦相手カードの新しい機能は、どちらもトランクから分岐していました。
ここで、チェックアウトされた作業コピーを、削除されたブランチからこの新しいブランチに「切り替えられた」ものにしたいと思います。 bugfix-lobby-quirksブランチは、ちょうど作業していたので、既にコンピューターでチェックアウトされています。私がやりたいのは、このフォルダ内のすべてを、選択した新しいブランチ内のすべてに切り替えることです。これは、実際にはすべてではないのでいいです()違います。これがsvnスイッチの意味ですよね?
それから私はスイッチをクリックし、ポップアップが現れます。ブランチを自動的に認識し、リストに表示するので、選択します。
残念ながら、これを行うと毎回このエラーメッセージが表示されます。
幸せな日ではありません。悲しい日です。
OK。それで、私は何が間違っていますか?
Svn switchダイアログで[祖先を無視]チェックボックスをクリックします。
これは、最上位フォルダーを実行する代わりに、サブフォルダーの1つを切り替えようとしたために発生する場合があります。つまり、トランクではなくフォルダーtrunk/applicationのみを切り替えようとしていました。
switch a deletedアクティブなブランチにブランチできる場合があります。 Subversionには、そのブランチはもう存在しません。 (そして、存在しないため、祖先を共有しません)。
削除されたブランチの作業コピーに移動し、ブランチ自体が削除される前にリビジョンに対してpdateを実行できるかどうかを確認します。次に、スイッチを試してください。
それがうまくいかない場合は、ndeleteブランチにする必要があります。これはコマンドラインから難しくありません。ブランチがリビジョン12345で削除されたとしましょう:
$ svn co --set-depth=immediates $URL/branches # Checks out just branch names
$ cd branches
$ svn merge -c -12345 . # Removes branch delete
--set-depth=immediates
はすべてのブランチをチェックアウトしますが、その下のプロジェクトはチェックアウトしません。これはかなり高速なチェックアウトになり、/branches
ディレクトリ。これで、削除のreverse mergeを実行して、ブランチを復元できます。
チェックアウトとマージを行いたくない場合は、svn cp
ここでcopy削除される前のリビジョンから現在のリビジョンへのブランチ:
$ svn cp -r12344 $URL/branches/features_in_opponents_cards@12344 $URL/branches
これにより、最初にチェックアウトを行わなくてもブランチを復元できます。