Mercurial のブックマークを使用してファイルを更新する

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

  1. Mercurial リポジトリを作成する
  2. Mercurial リポジトリをコピーしてソース ファイルを追加する
  3. Bitbucket で Mercurial リポジトリから変更をプルする
  4. Mercurial のブックマークを使用してファイルを更新する

あなたは、新しいチーム メンバーとともに、宇宙ステーションのラボをオープンさせます。ただし、ラボはまだ稼動しておらず、新しいチーム メンバーも開始する準備は整っていません。あなたのすべきことは何でしょうか。ファイルを更新できる機能ブックマークについて学習し、準備が整ったら新しいチーム メンバーを追加しましょう。

ブックマークは、チームで作業する際に最も力を発揮します。自分のブックマークからプロジェクトの担当部分で作業し、Bitbucket から更新をプルして、準備が整ったらすべての作業をメイン ブランチにマージできます。

@ ブックマークが開発のメイン ラインを示すポインターであるのと同様に、機能ブックマークは、開発のメイン エリアに含めるための準備段階にある機能の開発ラインを示すポインターです。このポインターは、独自の開発領域とプロジェクト履歴を持ちます。次の図は、 @ ブックマークと、バグ修正を含む別のブックマークの 2 つのブックマークを示しています。


ステップ 1. 変更を加える

ラボで作業するチームを追加する、コミットの準備中のブックマークを作成します。ラボがグランド オープンを迎える際に、ファイルをマージし、不要になったブックマークを削除できます。

機能ブックマークを使用するには、次の操作を行います。

  1. ターミナル ウィンドウを開き、次のコマンドを使用してローカル リポジトリの最上位に移動します。

    macOS / Linux

    $ cd ~/repos/bitbucketstationcrew/

    Windows コマンド プロンプト

    $ cd repos/bitbucketstationcrew/

    ブックマークはコミットを示すポインターにすぎないため、ブックマークを作成する際、Mercurial では新しいポインターの作成のみを行います。リポジトリは変更されません。そのため、開始する前のリポジトリは次のようになります。

      

  2. スペース ラボに関する開発のラインに機能ブックマークを作成します。

    $ hg bookmark spacelaboratory

    このコマンドにより、そのブックマークが作成および有効化されます。リポジトリは次のようになります。

    リポジトリの履歴は変更されません。現在のコミットへの新しいポインターが追加されます。

  3. リポジトリ ファイルを含むディレクトリ フォルダ (例: /Users/<youruser>/repos/bitbucketspacestation) に移動します。ディレクトリ内に追加のファイルやフォルダは存在しないことがわかります。
  4. 任意のエディタで crewroles ファイルを開きます。
  5. 次のクルー メンバーを追加してファイルを変更します。

    <p>
        Max Taylor<br>
        <b>Server Engineer</b>
    </p>


     

    <p>Bitbucket Space Station クルー メンバー:</p>
    <p>
        Emma Paris<br>
        <b>品質保証</b>
    </p>
    <p>
        Max Taylor<br>
        <b>レクリエーション部門</b>
    </p>
  6. ファイルを保存して閉じます。
  7. ターミナル ウィンドウに「hg status」と入力します。次のように表示されるはずです。

    $ hg status
    M crewroles
  8. 以下のように、ターミナル ウィンドウに「hg commit」コマンドを入力します。

    $ hg commit crewroles -m "Making a change"

    すると、リポジトリは次のようになります。


    @ ブックマークに加えた変更を移動させます。

Step 2. ブックマークを先へ進める

スペース ラボの準備が整いました。ここで、新しいチーム メンバーをチーム全体に加えます。@ から現在のブックマークへの線形のパスがある場所へブックマークを動かすことができます。1 つのブックマークを作成し、1 つの変更を加えただけなので、開発のメイン ラインのブックマーク (Mercurial が「@」で参照している) を、新しい先頭に移動させるだけで済みます。

この移動によって履歴が効果的に方法で統合され、spacelaboratory ブックマークから到達可能なすべてのコミットが中心領域から利用できるようになりました。  スペース ラボのチーム メンバーを追加するための個別の場所は不要になったため、spacelaboratory ブックマークは削除することをおすすめします。

このブックマーク ワークフローは小さな変更を伴う短期間のトピック ブックマークに共通しており、長期間実行される機能では一般的ではありません。

ブックマークを前に移動させるには、次の操作を実行します。

  1. ターミナル ウィンドウを開き、ローカル リポジトリの最上位に進みます。

    macOS / Linux

    $ cd ~/repos/bitbucketstationcrew/

    Windows コマンド プロンプト

    $ cd repos/bitbucketstationcrew/
  2. hg bookmarks」コマンドを入力して、すべてのブックマークの一覧を確認します。"*" はチェック アウト済みのブックマークを示します。

    $ hg bookmarks
       @                         26432:d6f92e6b6d94
     * spacelaboratory           30658:2dc7d086f314
  3. hg bookmark @と入力して、メインのブックマークを前に移動させます。

    $ hg bookmark @
    moving bookmark '@' forward from d6f92e6b6d94

    これで、@ bookmark のポインターは現在の先頭に移動しました。リポジトリは次のようになります。

  4. spacelaboratory を今後使用する予定はないため、ブックマークを削除できます

    $ hg bookmark -d spacelaboratory
  5. hg bookmarks」と入力し、spacelaboratory ブックマークが存在しなくなったことを確認します。

    $ hg bookmarks
     * @                         30658:2dc7d086f314
おめでとうございます。ここまでの操作で、次の内容を実行しました。
  • ブックマークの作成とチェックアウト
  • 新しいブックマークへの変更
  • 新しいブックマークへの変更のコミット
  • 開発のメイン ラインへの変更の統合
  • 不要になったブックマークの削除

次に、この作業すべてを Bitbucket にプッシュする必要があります。

ステップ 3. 変更を Bitbucket にプッシュする

新しいチーム メンバーに関するすべての更新を全員が見られるようにしたい場合、ローカル リポジトリの現在の状態を Bitbucket に公開する必要があります。この図は、中央リポジトリにない変更がローカル リポジトリに加えられ、その変更を Bitbucket にプッシュした場合の挙動を示しています。

変更を Bitbucket にプッシュするには、次の操作を行います。

  1. ターミナル ウィンドウのリポジトリ ディレクトリに移動し、hg push -B @」と入力して変更をプッシュします。hg push-B  @ 部分は、ターミナルに対して @ ブックマークをプッシュするよう伝えます。結果は次のようになります。

    $ hg push -B @
    pushing to https://emmap1@bitbucket.org/emmap1/bitbucketstationcrew
    http authorization required for https://bitbucket.org/emmap1/bitbucketstationcrew
    realm: Bitbucket.org HTTP
    user: emmap1
    password:
    searching for changes
    remote: adding changesets
    remote: adding manifests
    remote: adding file changes
    remote: added 1 changesets with 1 changes to 1 files
    exporting bookmark @
  2. [コミット] をクリックすると、ローカル システムで行ったコミットが表示されます。変更では、ローカル システムと同じコミット ID を保持します。

    直線的なパス (コミット一覧の左側のライン) が表示され、ブックマークはないことがわかります。これは、spacelaboratory ブックマークは Bitbucket とやり取りしたことがなく、ユーザーが作成してコミットした変更のみが Bitbucket に適用されるためです。
  3. [ブランチ] をクリックすると、ページにはブックマークのレコードもないことがわかります。

    Mercurial のブックマークを探す場合は、Bitbucket の [ブランチ] ページで検索できます。

  4. [ソース] をクリックしてから、crewroles ファイルをクリックします。
    ファイルに対する最後の変更に、先ほどプッシュしたコミット ID があることがわかります。
  5. このファイルのコミット済み変更を確認するには、次の図のように、ファイル履歴リストをクリックします。

完了です!

大変な作業でした。おそらく、宇宙へロケットを打ち上げる際と比べたら大したことはないでしょう。これで Bitbucket について多くを学び、宇宙ステーションの活動をはるかにうまく実行する準備が整いました。では、少し休憩して、星空を眺めましょう。

Bitbucket と Mercurial についてさらに詳しく学習したい方は、「チームメイトのリポジトリを更新する際の問題」をご覧ください。

学習したすべての Mercurial コマンドを覚える自信がなくても、問題はありません。必要な時に参照できるよう、「Git と Mercurial のコマンド」ページをブックマークしておくことをおすすめします。


最終更新日: 2018 年 9 月 30 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.