Commits

Takumi IINO committed 251d1b0

図の矢印を逆に

  • Participants
  • Parent commits 9dda0ac

Comments (0)

Files changed (1)

File source/index.rst

       A [ ]
       B [ ]
       C [ ]
-      A -> B
-      B -> C
+      A -> B [ dir = back ]
+      B -> C [ dir = back ]
     }
 
 作業領域の内容が、リビジョン C の状態になっているとします。 この時、「リビジョン C は作業領域の親リビジョンである」と言えます。
       B [ ]
       C [ ]
       D [ style = "filled" fillcolor = "red" ]
-      A -> B -> C -> D
+      A -> B -> C -> D [ dir = back ]
     }
 
 作業領域を「次に作成される仮想的なリビジョンの格納場所」と考えれば、 より理解できるのではないでしょうか。
       0 [ ]
       1 [ ]
       2 [ style = "filled" fillcolor = "red" ]
-      0 -> 1
-      1 -> 2
+      0 -> 1 [ dir = back ]
+      1 -> 2 [ dir = back ]
     }
 
 マルチプルヘッドとは
       1 [ ]
       2 [ ]
       3 [ style = "filled" fillcolor = "red" ]
-      0 -> 1
-      1 -> 2
-      1 -> 3
+      0 -> 1 [ dir = back ]
+      1 -> 2 [ dir = back ]
+      1 -> 3 [ dir = back ]
     }
 
 ヘッドを親にして新たなリビジョンを作成した場合は、ブランチになりません。
       1 [ ]
       2 [ ]
       3 [ style = "filled" fillcolor = "red" ]
-      0 -> 1
-      1 -> 2
-      2 -> 3
+      0 -> 1 [ dir = back ]
+      1 -> 2 [ dir = back ]
+      2 -> 3 [ dir = back ]
     }
 
 ブランチによってヘッドが複数ある状態を、
         c_1
       }
 
-      c_0 -> c_1
+      c_0 -> c_1 [ dir = back ]
     }
 
 まず作業するためにAliceとBobがリポジトリを複製(hg clone)します。
         b_1
       }
 
-      c_0 -> c_1
-      a_0 -> a_1
-      b_0 -> b_1
+      c_0 -> c_1 [ dir = back ]
+      a_0 -> a_1 [ dir = back ]
+      b_0 -> b_1 [ dir = back ]
     }
 
 Aliceが先に編集してコミットしました。
         b_1
       }
 
-      c_0 -> c_1
-      a_0 -> a_1 -> a_2
-      b_0 -> b_1
+      c_0 -> c_1 [ dir = back ]
+      a_0 -> a_1 -> a_2 [ dir = back ]
+      b_0 -> b_1 [ dir = back ]
     }
 
 Bobも編集を加えてコミットしました。
         b_2
       }
 
-      c_0 -> c_1
-      a_0 -> a_1 -> a_2
-      b_0 -> b_1 -> b_2
+      c_0 -> c_1 [ dir = back ]
+      a_0 -> a_1 -> a_2 [ dir = back ]
+      b_0 -> b_1 -> b_2 [ dir = back ]
     }
 
 Aliceは作業が完了したのでみんなに見てもらうように中央リポジトリに変更を反映します。(hg push)
         b_2
       }
 
-      c_0 -> c_1 -> c_2
-      a_0 -> a_1 -> a_2
-      b_0 -> b_1 -> b_2
+      c_0 -> c_1 -> c_2 [ dir = back ]
+      a_0 -> a_1 -> a_2 [ dir = back ]
+      b_0 -> b_1 -> b_2 [ dir = back ]
     }
 
 Bobも作業が完了したのでみんなに見てもらうように中央リポジトリに変更を反映します。(hg push)
         b_2
       }
 
-      c_0 -> c_1 -> c_2
-      c_1 -> c_3
-      a_0 -> a_1 -> a_2
-      b_0 -> b_1 -> b_2
+      c_0 -> c_1 -> c_2 [ dir = back ]
+      c_1 -> c_3 [ dir = back ]
+      a_0 -> a_1 -> a_2 [ dir = back ]
+      b_0 -> b_1 -> b_2 [ dir = back ]
     }
 
 Bobは中央リポジトリに自分の変更を反映する事は出来ませんが、中央リポジトリの変更を取り込むことが出来ます。(hg pull)
         b_3
       }
 
-      c_0 -> c_1 -> c_2
-      a_0 -> a_1 -> a_2
-      b_0 -> b_1 -> b_2
-      b_1 -> b_3
+      c_0 -> c_1 -> c_2 [ dir = back ]
+      a_0 -> a_1 -> a_2 [ dir = back ]
+      b_0 -> b_1 -> b_2 [ dir = back ]
+      b_1 -> b_3 [ dir = back ]
     }
 
 マルチプルヘッドが出来てしまいました。
         b_3
       }
 
-      b_0 -> b_1 -> b_2
-      b_1 -> b_3
+      b_0 -> b_1 -> b_2 [ dir = back ]
+      b_1 -> b_3 [ dir = back ]
     }
 
 「二重丸」が増えました、これは現在の作業領域がリビジョンBとリビジョンAの内容を含んでいるという事を表しています。
         b_4
       }
 
-      b_0 -> b_1 -> b_2 -> b_4
-      b_1 -> b_3 -> b_4
+      b_0 -> b_1 -> b_2 -> b_4 [ dir = back ]
+      b_1 -> b_3 -> b_4 [ dir = back ]
     }
 
 この状態で初めて中央リポジトリに変更を反映できます。
         b_4
       }
 
-      c_0 -> c_1 -> c_2 -> c_4
-      c_1 -> c_3 -> c_4
-      a_0 -> a_1 -> a_2
-      b_0 -> b_1 -> b_2 -> b_4
-      b_1 -> b_3 -> b_4
+      c_0 -> c_1 -> c_2 -> c_4 [ dir = back ]
+      c_1 -> c_3 -> c_4 [ dir = back ]
+      a_0 -> a_1 -> a_2 [ dir = back ]
+      b_0 -> b_1 -> b_2 -> b_4 [ dir = back ]
+      b_1 -> b_3 -> b_4 [ dir = back ]
     }
 
 コミット済み成果ベースのマージ
         c_4
       }
 
-      c_0 -> c_1 -> c_2 -> c_4
+      c_0 -> c_1 -> c_2 -> c_4 [ dir = back ]
     }
 
 これは次の点で不便です。
         b_4
       }
 
-      b_0 -> b_1 -> b_2 -> b_4
-      b_1 -> b_3 -> b_4
+      b_0 -> b_1 -> b_2 -> b_4 [ dir = back ]
+      b_1 -> b_3 -> b_4 [ dir = back ]
     }
 
 Mercurialではマルチプルヘッドをマージしています。この方法を「コミット済み成果ベースのマージ」と呼びます。
         labelloc = "b" /* bottom */
         3
       }
-      0 -> 1
-      1 -> 2
-      1 -> 3
+      0 -> 1 [ dir = back ]
+      1 -> 2 [ dir = back ]
+      1 -> 3 [ dir = back ]
     }
 
 CVS や Subversion 等の多くの SCM ツールで言うところの「ブランチ」は、
         labelloc = "b" /* bottom */
         3
       }
-      0 -> 1
-      1 -> 2
+      0 -> 1 [ dir = back ]
+      1 -> 2 [ dir = back ]
       2 -> 4 [ style = "invis" ]
-      2 -> 3
+      2 -> 3 [ dir = back ]
     }
 
 これは、一般的な運用であれば、ブランチ元の親リビジョンに対して、
         labelloc = "b" /* bottom */
         3
       }
-      0 -> 1
-      1 -> 2
-      2 -> 4
-      2 -> 3
+      0 -> 1 [ dir = back ]
+      1 -> 2 [ dir = back ]
+      2 -> 4 [ dir = back ]
+      2 -> 3 [ dir = back ]
     }
 
 名前付きブランチのマージ
         labelloc = "b" /* bottom */
         3
       }
-      0 -> 1
-      1 -> 2
-      2 -> 4
-      2 -> 3
+      0 -> 1 [ dir = back ]
+      1 -> 2 [ dir = back ]
+      2 -> 4 [ dir = back ]
+      2 -> 3 [ dir = back ]
     }
 
 作業領域の親リビジョン (= マージ先) が B_one、
         labelloc = "b" /* bottom */
         3
       }
-      0 -> 1
-      1 -> 2
-      2 -> 4
-      2 -> 3
-      4 -> 5
-      3 -> 5
+      0 -> 1 [ dir = back ]
+      1 -> 2 [ dir = back ]
+      2 -> 4 [ dir = back ]
+      2 -> 3 [ dir = back ]
+      4 -> 5 [ dir = back ]
+      3 -> 5 [ dir = back ]
     }
 
 この逆に、
         3
         5
       }
-      0 -> 1
-      1 -> 2
-      2 -> 4
-      2 -> 3
-      4 -> 5
-      3 -> 5
+      0 -> 1 [ dir = back ]
+      1 -> 2 [ dir = back ]
+      2 -> 4 [ dir = back ]
+      2 -> 3 [ dir = back ]
+      4 -> 5 [ dir = back ]
+      3 -> 5 [ dir = back ]
     }
 
 名前付きブランチをなぜ使うのか