1

私はVisualSourceSafeのバックグラウンドを持っているので、ご容赦ください。TortoiseSVNパラダイムシフトを達成しようとしています。ちなみに、私はVisualSVNを持っていますが、現在発生しているこの問題を作成するためにVisualSVNを使用しませんでした。

彼ら全員に共通していることの1つは、「ねえ、私は場所から大量のファイルを吹き飛ばそうとしています。これで大丈夫ですか?」という趣旨のメッセージボックスの寛大な支援が必要なことです。

私は仕事と家庭からのコードに取り組んでいます。私が唯一の開発者です。オフィスでの仕事の終わりに、私は日中に行ったすべての変更についてチェックインを行いました。Commitそれはうまくいきました。

家に帰ったとき、私がやりたかったのは、VSSで取得するのと同じことでした。ローカルファイルを、更新されたリポジトリのファイルに置き換えたいだけです。それで全部です。複雑なことは何もありません。

だから私はUpdate私のトップレベルの作業フォルダでやりました(ちなみに、その言葉は方向的に曖昧です)。これは、多数のファイルに競合があることを訴えました。マージしたくなかったことに注意してください。リポジトリにあるものでローカルを上書きしたいと思います。だから今、私のシェルオーバーレイアイコンは、ええと、虹のすべての色です。

それで私はグーグルで検索し、答えはaを実行してからを実行することでしCheck OutRevertそこで、リポジトリブラウザのルートフォルダからチェックアウトを行い、TortoiseSVNは作業ディレクトリ内のほぼすべてのファイルを削除しました。それからそれはOKのように言った、任務は達成された、素晴らしい、それはあなたが望んでいたことだ、あなたは賭けた!

さて、古いVSSユーザーにとって意味のある方法でこれを説明できる人はいますか?私は200ページの本を読んでいませんでした(おそらく私の答えは176ページの3番目の段落にあります)が、グーグルをしました、そしてユーザーによって誤って削除されたファイルを回復することでたくさんのヒットがありますが、TortoiseSVNの削除動作を説明することについては何もありません。

概要:

  1. なぜそれをしたのですか?
  2. 仕事から家に帰ったときに、どうすれば確実にGetを実行できますか?
4

1 に答える 1

3

作業コピーが、SVNの使用より前のファイルのディレクトリと「適切な」SVN作業コピーのフランケンシュタイン混合物であるという状況に陥った可能性があるように思われます。チェックアウトしてから元に戻す必要があったという事実は、チェックアウトによってファイルが変更されていないクリーンな作業コピーが常に提供されるため、奇妙なことに思います。空でないディレクトリにチェックアウトしたのではないかと思いますが、これは一般的にはお勧めできません(これを行うのが理にかなっている状況もありますが、この場合は当てはまらないと思います)。

私はあなたがする必要があるのは新しいディレクトリにチェックアウトすることだと思います。そうすれば、変更のない元の作業コピーができあがります。チェックアウトディレクトリは、作成される新しいディレクトリの名前である必要があります。チェックアウトを現在のディレクトリに強制するために、パスの最後のビットを削除したと思われます。具体的な例を次に示します。

  • チェックアウトするURLはhttp://server/svn/trunk
  • 他のプロジェクトが含まれているディレクトリc:\sourceがすでにあります。エクスプローラーで右クリックし、SVNチェックアウトを選択します。
  • URLを入力し、ディレクトリフィールドに。と入力しますc:\source\trunk。入力した場合c:\source、SVNは既存のコンテンツをチェックアウトのコンテンツとマージしようとしますが、これはめったに必要なことではありません。

手付かずの作業用コピーを入手したら、目にしている驚きを感じることはありません。更新すると、競合が発生するだけです。自分でファイルを変更したのとは関係なく、他の誰かがファイルを変更した場合です。適切な作業コピーを更新しても、SVNに個別に追加されたファイルを作業コピーに手動でコピーしない限り、作成したファイルが破棄されることはありません。

于 2012-08-09T08:35:21.990 に答える