2012-01-20 57 views
0

私が現在取り組んでいるプロジェクトは、バージョン管理のためにSVNを使用しています。最初に(現在利用可能でない他の人が)作成したときに、サーバの 'public_html'フォルダは、https://URL/project_name/というフォルダにチェックアウトされました。 'project_name'はリポジトリのルートです。明らかにそれが必要なようには見えなかったので、ブランチ/タグのための構造を提供していませんでした。SVN再チェックアウト(スイッチ/再配置/何か?)

プロジェクトのいくつかのバージョンで並列作業を構成するためにブランチが必要であることがわかったので、適切な構造(メインバージョン用のURL/project_name/trunk/URL/project_name /ブランチ/ ...二次的なもの)。リポジトリ自体の整理には問題ありませんが、サーバー上の 'public_html'フォルダの新しいチェックアウトを行うにはどうすればよいですか? 'svn checkout URL/project_name/trunk/home/public_html'を実行しようとすると、 'public_html'が既に別のURLの作業コピーであるというエラーメッセージが表示されます。

ローカルテストマシンでsvnスイッチとsvn relocateオプションをTortoise SVNで調べようとしましたが、前者は同じリポジトリのブランチを切り替えるためにしか動作しないように見えます。後者は、リポジトリ(と私はチェックアウトフォルダとしてURL/project_name/trunkを指定する必要があります)。この状況で誰かが私を助けてくれますか?

サーバーへのルートSSHアクセス権があります。

答えて

2

TortoiseSVN Helpから:

別の言い方をすれば、あなたの作業コピーが 同じリポジトリ内の同じ場所を参照しているが、 リポジトリ自体が移動したときに再配置する必要があります。

場合は適用されません:あなたは異なるSubversionのリポジトリに移動したい

。その場合、 新しいリポジトリの場所からきれいなチェックアウトを実行する必要があります。

同じ リポジトリ内の別のブランチまたはディレクトリに切り替える必要があります。これを行うには、TortoiseSVN→スイッチを使用する必要があります。 詳細については、第4.19.2項「チェックアウトまたはスイッチ...」を参照してください。

したがって、新しい新鮮なコピーをチェックアウトする必要があります。ディレクトリの内容全体を削除してからチェックアウトするか、新しいディレクトリにチェックアウトして、新しいディレクトリの名前を古いディレクトリの名前に変更します。

+0

私がやろうとしたような新鮮なコピーがチェックアウトされます。 「public_html」ディレクトリ内のコンテンツを削除するにはどうすればよいですか? – parrker9

+0

WindowsエクスプローラのすべてのコンテンツをCtrl-Aで選択し、キーボードのDeleteキーを押します。 –

+0

'.svn'が 'public_html'から削除されるとすぐに新しくチェックアウトすることができます。 – parrker9

2

あなたのプロジェクト名をトランクに移動しようとしてください。ファイルシステムを直接変更しないでください。レポファイルには影響しません。代わりにsvnコマンドを使用してください。

// in URL (parent folder of project_name) 
svn mkdir trunk 
svn mkdir branches 
svn mkdir tags 
svn move project_name trunk 
svn ci -m 'moved' 

らほら

親フォルダを持っていない場合は、「SVNの移動」に一つPROJECT_NAMEルート1内のすべてのファイルとディレクトリがあります。

+0

素晴らしい!これは実際にこの問題に取り組む自然な方法のように感じます。そして、ええ、私たちは親フォルダを持っていないので、いくつかの手動作業があると思います。私はこれが完了したら、私の 'public_html'ディレクトリをトランクフォルダを参照するようにするために、私は 'svn switch/home/public_html/URL/project_name/trunk'を使うことができますか? – parrker9

+0

はい私はスイッチオプションを忘れてしまった。あなたのローカルコピーがトランクを指すようにします – vaugham

1

project_nameは、あなたのルートフォルダである場合は、その下の枝/タグ/トランク構造を作成し、(当然の枝/タグ/トランクを除く)を手動svn moveproject_nameに含まれる各ファイル/フォルダの操作を行うことができます。したがって、コミットのすべての履歴を保存することができます。退屈だが安全だ!

0

TortoiseSVNのようなSVNにGUIを使用できませんか? 私は、右クリックでドラッグして適切なオプションを選択してコミットするのと同じくらい簡単にリポジトリ内のものを再配置すると思った。

また、リポジトリブラウザで実行することもできます。 http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-rename.html