2012-04-17 3 views
2

プロジェクトをSubversionリポジトリにインポートする方法に関する質問があります。私はグーグルで多くの答えを見つけましたが、その背後にあるロジックを理解できませんでした。私は理解してSVNでプロジェクトをインポートする正しい方法は?

手順は次のとおりです。枝、タグとトランク:

  1. は三つのサブディレクトリとプロジェクトディレクトリを作成します。

  2. トランクの下にすべてのコードを配置します。

  3. 次のコマンドを実行します。

    svn import project_dir file:///repository_name/project -m "First Import"

    project_dirは三つのサブディレクトリが含まれています。

この後、私は別のディレクトリに出て、再び自分のコードをチェックする必要があります。

  1. svn checkout file:///repository_name/project/trunk new_project_dir

  2. がnew_project_dirの作業を続けます。

私はproject_dirを1回だけ作成して無視しているようです。

私の質問は以下のとおりです。

  1. 私はnew_project_dirにコードをチェックアウトした後、まだ古いproject_dirは便利なのですか?または単にSVNにレイアウトを与えるだけですか?

  2. 他の2つのサブディレクトリで作業する必要がありますか?自社の支店やタグ(たとえば、そこのコンテンツをチェックアウトしています)?それとも単にSVNの内部使用ですか?それがSVNの内部使用のためのものなら、なぜ私たちのためにSVNがそれを自動的に作成できないのですか?

答えて

4

必要に応じて、SVNでレイアウトを直接作成できます。あなたの質問にステップ3)を使用すると、すべてを1つにすることができるようになります。フォローしても、インポート後に最初のフォルダは必要ありません。実際には、インポート元のフォルダはバージョン管理下に置かれていないため、そこに加えられた変更はリポジトリに戻されません。

レイアウトに関しては、通常そうですが、SVNは課されません制約:プロジェクトを自由に整理できます。伝統的なロジックは以下のとおりです。

  • trunk
  • branchesが(おそらく別の人によって)、様々な開発努力を示すサブフォルダがあり、最新の知ら作業コピーを表し、 - 例えば特定のバグ修正のために。トランクや他のブランチに変更を加えずに作業し、準備ができたらトランクに変更をマージします。
  • タグはトランクのマークされたバージョンで、特定の時間/ステージでのトランクの状態を示します。これは、複数のバージョン番号を記憶する代わりに、同じリリースに属しているものを簡単に特定できるようにするためです
+0

ありがとうございます。私は同じフォルダを使用することはできませんが、いつも別のフォルダを作成する必要があります – ericn

1

古いproject_dirは、単にSVNにレイアウトを与えるだけです。 コードはリポジトリにコピーされますが、SVNはこのディレクトリとファイルを読み込み、それらに触れません。したがって、それは「作業コピー」ではありません。

新しい場所にチェックアウトした後、それにはコードとsvnメタデータが含まれているため、魔法が発生します。

AFAIKトランク、タグ、ブランチは命名規則です。 SVNはそれらを必要としません、あなたは将来彼らを必要とするかもしれません。分岐やタグ付けを計画していない場合、ファイルを直接ルートにインポートすることができます。

+0

SVNから見ると、それらはすべて単なるディレクトリです。ブランチをトランクやトランクにマージしてブランチにすることはできますが、SVNは気にしません。注意を払って、ディレクトリを理解してもらうためにディレクトリ名を明確にする必要があります。 –

関連する問題