SVN から更新したところ、ファイルの 1 つが消えてしまいました。SVN クライアントが私のファイルを削除したことを意味するファイルの名前を変更した可能性があります。
VC++ 2008 & Visual SVN を使用しています。
助けて...そして参考までに、この種のことをどのように回避する必要がありますか? コミットする前に更新することになっていませんか?
SVN から更新したところ、ファイルの 1 つが消えてしまいました。SVN クライアントが私のファイルを削除したことを意味するファイルの名前を変更した可能性があります。
VC++ 2008 & Visual SVN を使用しています。
助けて...そして参考までに、この種のことをどのように回避する必要がありますか? コミットする前に更新することになっていませんか?
VSでファイルを探している場合、ファイルはまだディレクトリに存在している可能性がありますが、プロジェクトで参照されていないだけです(VSはプロジェクト内のファイルのみを表示するため)。ファイルの名前が変更された場合、それがVisualStudioでファイルを見つけることができなくなった理由である可能性があります。ファイルが存在していた実際のディレクトリを確認します。
そこにない場合は、含まれているディレクトリをクリックして、ファイルを含む以前のリビジョンに戻すことで、リポジトリから古いファイルを取得できます(ファイルの削除はディレクトリに対する操作です)。
変更がある場合は、ファイルのローカルコピーを削除しないでください。この種のことは煩わしいですが、うまくいけばあまり頻繁には起こりません(ファイルの名前を変更する頻度はどれくらいですか?)。もちろん、これが、コミットする前に更新する必要がある理由でもあります。この場合、古いファイルに加えた変更を新しいファイルに手動でマージし、すべてがまだコンパイルされていることを確認する必要があります。
これはまさに数週間前に私に起こりました。「コミット」の代わりに「更新」をすると疲れました。私の作業はなくなってしまいました。Undelete ツールで一部を復元することができました。
ファイルを変更した場合、SVN はファイルをバックアップする必要があります。「.」で始まるファイルがないか確認してください。変更されたファイルがあるはずのディレクトリの名前のどこかにリビジョンがあります。
そうでない場合は、Visual SVN の設定を確認してください。あるいは、Visual SVN はこれを行わないかもしれません。代わりにTortoiseSVNを試してください。
回答はファイルを復元する方法を示していますが、より重要なのは、質問の 2 番目の部分です。
このために、ファイルをロックできます。これは、このファイルで邪魔されずに作業したいことを意味します。SVN は、他のユーザーがロックされたファイルにコミットすることを許可しません。これには削除も含まれます。