1

同じ SVN ブランチを 2 回作成できます。SVN で同じブランチを再度作成できないことを願っています。この問題を解決するのを手伝ってください。

4

2 に答える 2

10

SVN RedBookから:

Subversion には、ブランチの内部概念はありません。コピーを作成する方法しか知りません。ディレクトリをコピーすると、結果のディレクトリは「枝」にすぎません。その意味を付加するからです。ディレクトリを別の方法で考えたり、別の方法で扱ったりするかもしれませんが、Subversion にとっては、追加の履歴情報をたまたま保持する普通のディレクトリにすぎません。

このコピー メカニズムにより、Subversion のブランチは通常のファイル システム ディレクトリとしてリポジトリに存在します。

したがって、ブランチ 'patch' を作成すると、リポジトリ内に複数のディレクトリ 'patch' を作成できます。

大文字と小文字を区別する OS で、同じ親ディレクトリ 'patch' に大文字と小文字 (パッチとパッチ) を変えて 2 回作成すると、混乱する可能性があります。


あなたの質問によりよく答えるには:

SVN で同じブランチを再度作成できないことを願っています。

「ケース関連のパスの衝突」を本当に防ぎたい場合は、 svn tools contribから、このようなpre-commit フック(これはsvn copy によってもトリガーされます) を設定できます。

大文字と小文字を区別しない.py :

  • 既存のパスまたは他の新しいパスと「衝突」する新しいパスを検出します。
  • すでに「衝突」している既存のパスを無視します
  • 「衝突」が検出された場合、エラー コードと stderr の診断で終了します。

そのフックを使用すると、同じ名前で複数のブランチを作成できますが、少なくとも同じ親ディレクトリではなく、大文字と小文字が異なります。

于 2008-12-02T12:28:20.400 に答える
0

SVN では、ブランチ (およびタグも) は単なるコピーです。

SVN はブランチが何であるかを認識しておらず、コピーについてしか認識していません。SVN ユーザーはそれらのコピーにブランチの意味を与えますが、それは SVN ではなく、人々が従う慣習にすぎません。

于 2008-12-02T13:23:47.327 に答える