Next: , Previous: , Up: バージョンコントロールのブランチ   [Contents][Index]


28.1.11.2 ブランチへ/からの変更のpull/push

C-x v P

分散型のバージョンコントロールシステムでは、カレントブランチからの変更により、その変更で他のロケーションを更新(変更を“push”する、とも言います)します。この概念は集中型のバージョンコントロールシステムには存在しません。

C-x v +

分散型のバージョンコントロールシステムでは、他のロケーションから変更を“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ファイルセットを更新します。