3

しばらくの間、ソース管理下にあるプロジェクトで遊んでいます。いくつかのファイルを追加し、他のファイルをいくつか削除し、ディレクトリ全体を別のプロジェクトからこのプロジェクトにコピーしました。これらのコピーされたフォルダーの一部に .svn ディレクトリが含まれていることに気付きましたが、残念ながら、現在のプロジェクトに関連する .svn ディレクトリとそうでないプロジェクトを見ただけではわかりません。

私はコミットする必要があり、予想通り、svn は私に頭痛の種を与えています。最初は、「見つからないかロックされていません」という厄介なエラーが発生しましたが、何度もいじった後、本当にうまくいかなかったと思います。

では、どのようにコミットを進める必要がありますか? すべての .svn フォルダーを一掃する必要があります (どのフォルダーがこの現在のプロジェクトに対応し、どのフォルダーが対応していないかわかりません)、または svn サーバー内の各ファイルを古いバージョンに接続するすべての情報を削除しますか?

ありがとう

4

3 に答える 3

5

私は次のことを試します:

  1. (壊れた) Workingcopy をバックアップする
  2. 自分のものをコミットしたいクリーンな作業コピーをチェックアウトします
  3. この(クリーンな)作業コピーですべてのファイルを削除しますが、すべてのフォルダー.svn フォルダーを保持します
  4. (壊れた)作業コピーですべての .svn フォルダーを削除しますが、すべてのファイルとフォルダーを保持します
  5. 壊れた作業コピー (.svn フォルダーを削除したため、作業コピーではなくなりました) をクリーンな作業コピーにコピーします。
  6. 作業コピーに新しいすべてのファイルを追加します ( svn statusで確認してください)
  7. 作業コピーが欠落していると報告したすべてのファイルを削除します (空のフォルダーは手動で削除する必要があります。申し訳ありません!)
  8. すべての変更をリポジトリにコミットします

これにより、コミットする前にsvnステータスを慎重に確認する必要があります。何か問題が発生した場合は、バックアップからやり直す必要があります

于 2012-07-26T20:17:56.620 に答える
1

すべてのフォルダーを一掃すること.svnは、おそらく必要なことではありません。各.svnフォルダ内には、entries. そのファイルには、リモート リポジトリの URL が含まれています (Git を使用しているため、正しい SVN の文言を覚えていません。申し訳ありません)。

通常のレポが にあり、コピーされたすべてのフォルダー(実際にはレポhttp://server1.com/myregularrepoに属していない) が .http://otherserver.com/otherrepoentrieshttp://otherserver.com/otherrepo.svn

複数の外部レポ ディレクトリを作業コピーにコピーした場合、状況はもう少し複雑になりますが、何をすべきかはわかったと思います。

于 2012-07-26T20:14:24.077 に答える
0

あなたのコードが思いどおりであれば、svn エクスポート (すべての .svn フォルダーを削除し、元のプロジェクトにパッチとしてインポートする) を実行できると思います。

于 2012-07-26T20:20:46.377 に答える