1

SVNでバージョン管理されているVisualStudioプロジェクトがあります。ローカル作業コピーはにC:\ProjectName\SolutionNameあり、リポジトリはにあります//servername/svn/ProjectName(その中にSolutionNameフォルダーがあります)。

問題は、作業フォルダーでは、SolutionNameフォルダーのみがチェックアウトされることです。これで、SVNに追加する必要があるなどの兄弟フォルダーがC:\ProjectName\Databaseできました。C:\ProjectName\Documentationこれらのフォルダをリポジトリに直接追加して個別にチェックアウトすることもできますが、「チェックアウト」部分を1レベル上に移動して、内部のすべてC:\ProjectNameがバージョン管理下にあるようにします。これにより、コミットが簡単になります(フォルダーごとに複数のコミットが必要になるのではなく、すべて1つのフォルダーから)。また、将来、ソース管理に新しいフォルダーを追加するのも簡単になります。

これを行う簡単な方法はありますか?私が思いついた1つの方法は、作業コピーのバージョンを解除してから、リポジトリを削除して再作成し、希望どおりに設定することです。このプロジェクトは最近のものなので、20程度のコミット履歴を失うことは大きな問題にはなりませんが、もっと簡単な方法を望んでいました。


役立つ場合:ほとんどのトランザクションでTortoiseSVNを使用していますが、コマンドラインツールもインストールしています。また、リポジトリをホストしているサーバーに直接アクセスできます。

4

2 に答える 2

2

まず、新しいローカルフォルダをsvnにインポートします。

  • C:\ ProjectName \ Database-> // servername / svn / ProjectName / Database
  • C:\ ProjectName \ Documentation-> // servername / svn / ProjectName / Documentation

これで、サーバー上のレイアウトが希望どおりに表示されます。

次に、// servername / svn / ProjectNameの新しい作業コピーをチェックアウトします(おそらくC:\ src \ ProjectNameにあります)。これにより、作業コピーに必要な構造(Database、Documentation、SolutionNameの3つのフォルダー)が得られます。次に、「古い」作業コピー(C:\ ProjectName)を破棄します。必要に応じて、C:\ ProjectNameフォルダーを削除し、現在のフォルダーを維持することが重要な場合は、C:\ src \ ProjectNameをC:\ ProjectNameにコピーできます(このように作業コピー全体をローカルに「移動」できます)。 )。

ソース管理の利点は、実際のコードがサーバー上にあるため、「ローカルコピー」を簡単に移動できることです。

于 2012-11-29T17:06:01.657 に答える
0

私があなたの質問を正しく理解しているなら、あなたがリポジトリをチェックアウトするとしたら、あなたはSolutionNameディレクトリ内のフォルダを見るでしょう。(コンテンツだけでなく、フォルダーの意味はバージョン管理下にあります。)

それが正しければ、これを試してください:

  1. プロジェクトを新しいフォルダにチェックアウトします(たとえばC:\ProjectName_Temp)。
  2. C:\ProjectNameフォルダをからにコピーしますC:\ProjectName_Temp
  3. .svnからフォルダを削除しますC:\ProjectName_Temp\SolutionName。(削除しないでくださいC:\ProjectName_Temp\.svn)。
  4. 元のフォルダの名前を、たとえばC:\ProjectName_bakバックアップとして名前を変更し(私が間違っている場合に備えて、何も失わないようにします)、_Tempフォルダの名前をに変更しますC:\ProjectName\

そこから、svn status(またはTortoiseの同等のコマンド)をチェックし、すべての変更が予期されていることを確認します。

これがお役に立てば幸いです。

于 2012-11-29T17:04:11.080 に答える