Next: ブランチのマージ, Previous: ブランチ間の切り替え, Up: バージョンコントロールのブランチ [Contents][Index]
分散型のバージョンコントロールシステムでは、カレントブランチからの変更により、その変更で他のロケーションを更新(変更を“push”する、とも言います)します。この概念は集中型のバージョンコントロールシステムには存在しません。
分散型のバージョンコントロールシステムでは、他のロケーションから変更を“pull”することにより、カレントのブランチを更新します。
集中型のバージョンコントロールシステムでは、カレントVCファイルセットを更新します。
分散型のバージョンコントロールシステムでは、コマンドC-x v P
(vc-push
)は、カレントブランチからの変更により他のロケーションを更新します。プレフィクス引数を与えた場合、このコマンドは実行する正確なバージョンコントロールコマンドの入力をもとめます。これにより変更をどこにpushするか指定できます。デフォルトは、Bazaarではbzr
push、Gitではgit push、Mercurialではhg
pushです。デフォルトのコマンドは常に、ブランチ設定からバージョンコントロールシステムにより決定されるデフォルトのロケーションにpushします。
pullする前にC-x v O
(vc-log-outgoing
)を使用して、送信される変更のlogバッファーを閲覧できます。VC Change Logを参照してください。
現在のところ、このコマンドはBazaar、Git、Mercurialだけでサポートされます。“push”という概念は集中型のバージョンコントロールシステムには存在しません。なぜなら、この操作は変更セットのコミットの一部なので、集中型のVCSでこのコマンドを呼び出すと、エラーをシグナルします。Bazaarのbound branchでこのコマンドを試みたときもエラーをシグナルします。変更セットのコミットは、自動的に変更を(ローカルのブランチがバインドされている)リモートのリポジトリーにpushするからです。
分散型のバージョンコントロールシステムでは、コマンドC-x v +
(vc-pull
)は、カレントブランチと作業ツリーを更新します。これは通常、リモートのブランチのコピーを更新するのに使用されます。プレフィクス引数を与えた場合、このコマンドは使用する正確なバージョンコントロールコマンドの入力をもとめます。これにより変更をどこからpullするか指定できます。プレフィクス引数を指定しない場合は、バージョンコントロールシステムにより決定される、デフォルトのロケーションからpullします。
分散型のバージョンコントロールシステムの中で、現在C-x v +がサポートするのはBazaar、Git、Mercurialだけです。Bazaarでは、これは通常のブランチにたいしては、(マスターブランチをミラーリングされたブランチにpullするために) bzr pullを呼び出し、バインドされたブランチにたいしては、(中心となるリポジトリーからpullするために) bzr updateを呼び出します。Gitでは、これはリモートのリポジトリーから変更を取得して、それをカレントブランチにマージするためにgit pullを呼び出します。Mercurialでは、デフォルトのリモートリポジトリーから変更を取得して、作業ディレクトリーを更新するためにhg pull -uを呼び出します。
pullする前にC-x v I
(vc-log-incoming
)を使用して、適用される変更のlogバッファーを閲覧できます。VC Change Logを参照してください。
CVSのような集中型のバージョンコントロールシステムでは、C-x v +はリポジトリーからカレントVCファイルセットを更新します。