0

次の状況に関する svn マージについて質問があります。

repo/A はトランクです。2 つの子ブランチ コール repo/B と repo/C があります。

  1. 元の repo/B にはリビジョン 10 があるとしましょう。
  2. repo/C で foo.c を repo/A にマージすると、リビジョンは 11 になります。
  3. repo/B の作業コピーが bar.c を repo/B にコミットすると、リビジョンは 12 になります。この時点で repo/B には foo.c がないことに注意してください。これを「NO-FOO-STATE」と呼びましょう。
  4. repo/B が repo/A からマージされて foo.c を取得すると、repo/B のリビジョンは 13 になります。

私の質問は次のとおりです。

  1. それで、repo/B からリビジョン 12 をチェックアウトするとします。作業ディレクトリに foo.c も取得しますよね? 「NO-FOO-STATE」とまったく同じ内容のリビジョン 12 をチェックアウトするにはどうすればよいですか (またはチェックアウトできますか?)

  2. 次のコマンド sudo コードを使用する場合:

svn 削除レポ/B

svn copy repo/B@12 repo/B

repo/B と svn copy repo/B@12 を削除して、リビジョン 12 に戻そうとしました。新しい元に戻されたリポジトリ/B にはまだ foo.c がありますか? はいの場合、「NO-FOO-STATE」に戻すにはどうすればよいですか。

どうもありがとう。

4

1 に答える 1

1

repo/B からリビジョン 12 をチェックアウトした場合。作業ディレクトリに foo.c も取得しますよね?

いいえ、R12 では repo/B から foo.c を取得できません。R13 でのみ取得できます。

リポジトリ ツリーの非 HEAD リビジョンをチェックアウトするには、PEG-revisions 形式を使用します。

svn co URL@REV

于 2013-05-17T07:31:16.517 に答える