2009-07-16 2 views
5

これはおそらくSVN 101ですが、私は尋ねなければなりません。SVNチェックアウト後にプロジェクトを並べ替える

私は色んなディレクトリ構造のプロジェクトに取り組んでいます。私が好きなIDEでビルドして実行するために、プロジェクトをチェックアウトした後、プロジェクト全体を別のディレクトリにコピーして、私のもの(そして自分のIDEのもの)を好きな場所に移動します。

私の基本的な質問はこうです:リポジトリのディレクトリ構造とは異なるディレクトリにあるファイルを安全に編集/更新/マージできますか?

たとえば、/home/me/dev/proj/index.jspをチェックアウトしてにコピーした場合、index.jspが別のディレクトリにあるということは、そのSVNステータスに関しては正しくなるはずです。そうですか?違う?それとも私はトラブルを求めているのですか?

答えて

6

あなたには問題があります。たくさんのトラブル。ルートを更新しようとすると、結果として完全な狂気が得られるでしょう(多くの障害物、 "復元された"ファイルなど)。また、個々のファイルのメタデータをどのようにコピーしていますか? SVNメタデータは、ディレクトリごとの.svnフォルダにあります。 は、変更されていない個々のディレクトリを更新してコミットすることができます(つまり、ディレクトリ自体が移動または名前変更されていますが、その子はすべてリポジトリと同じです)。それではまた、あなたはそうではないかもしれません。それは危険だ。

プロジェクトの使用方法やビルド方法に合わせてIDEをカスタマイズするか、使用/ビルドの方法に合わせてプロジェクトを並べ替える必要があります。後者の場合は、svn moveサブコマンド(svn help move)を調べる必要があります。 SVNのためのGUIは、あなたが並べ替えをたくさんするつもりなら、おそらくTortoiseSVN(窓用)のように役に立つでしょう。

0

質問に間違いがありました。私はあなたがSVN moveコマンドのようなものを探していると思った。 (see these questions)

しかし、それはあなたが探しているものではないようです。

私はあなたの提案したワークフローに問題があると思っています。それは本当に良い考えではありません。なぜあなたはsvn内の作業項目を移動しないのですか?

1

あなたはチームの他の構造とは異なる構造でプロジェクトを扱っていますか?私はそれが正直にどのように動作するのか分かりません。私は関係するすべての人に話し、svnを使用してください:あなたが皆同意できる場所で履歴を持つすべてのファイルを取得するように移動します。

1

バージョン管理されたディレクトリを、親ではないバージョンのディレクトリに配置しようとすると、この方法で問題が発生します。それ以外に、別々の作業コピーに関連する書類の頭痛以外のものに遭遇してはいけません。

svn moveを使用してリポジトリでプロジェクトを再編成することができない理由はありますか?あなたはそのような歴史を失うことはなく、あなたの人生をはるかに簡単にするでしょう。

2

宛先がまだ作業コピー内にある場合は、svn movedocumentation)を使用してください。いずれにしても、は、矛盾や一般的な頭痛につながるので、.svnメタデータを自分自身で操作したいことがあります。

先が別のリポジトリの作業コピーである場合は、先のレポにsvn adddocumentation)に続くソースレポにsvn exportdocumentation)を行うことをお勧めします。

また読む価値があります:Subversion Basic Work Cycle

関連する問題