'features'というSVNプロジェクトのブランチを作成しました。このプロジェクトを更新しようとすると、ブランチからのプロジェクトの別のコピーを含むfeaturesフォルダーが表示されます。これがもう起こらないように、リポジトリからブランチを完全に削除する方法はありますか?
回答:
確かに:svn rm
不要なフォルダ、そしてコミットします。
将来この状況を回避するために、SVNプロジェクトの推奨レイアウトに従います。
/someproject/trunk
フォルダーに配置し
ます(または
/trunk
、リポジトリにプロジェクトを1つだけ配置する場合)/someproject/branches/somebranch
/someproject/tags
作業コピーをチェックアウトするときは、必ず、trunk
またはいくつかの個別のブランチのみをチェックアウトしてください。すべてのブランチを含む1つの巨大な作業コピーですべてをチェックアウトしないでください。1
1自分が何をしているのかを知らない限り、その場合は浅い作業コピーを作成する方法を知っています。
このブランチが外部またはシンボリックリンクではないと仮定すると、ブランチの削除は次のように簡単になります。
svn rm branches/< mybranch >
svn ci -m "message"
リポジトリでこれを実行したい場合は、更新して作業コピーから削除し、次のようにします。
svn rm http://< myurl >/< myrepo >/branches/< mybranch >
次に、以下を実行します。
svn update
TortoiseSVNを使用している場合は、リポジトリブラウザ(コンテキストメニューで「リポジトリブラウザ」というラベルが付いています)を使用してこれを実行できます。
削除したいブランチフォルダを見つけて右クリックし、「削除」を選択します。
コミットメッセージを入力すれば完了です。
リモートのブランチを直接削除することもできます。それが終わったら、次のアップデートで作業コピーから削除されます。
svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"
^
「SVN情報」に見られるように、リモートのURLの略です。^
は特殊文字であるため、Windowsコマンドラインでは二重引用符が必要です。
このコマンドは、ブランチをチェックアウトしたことがない場合にも機能します。
ブランチを削除するコマンドは次のとおりです。
svn delete -m "<your message>" <branch url>
リポジトリ全体をフェッチ/チェックアウトしたくない場合は、ターミナルで次のコマンドを実行します。
1)作業コピーを含むディレクトリの絶対パスを取得します
> pwd
2)svnコードチェックアウトを開始します
> svn checkout <ブランチURL> <ポイント1からの絶対パス>
上記の手順では、フォルダ全体ではなく、ブランチフォルダ内のファイルを取得します。