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

お困りですか?

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

コミュニティに質問

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

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

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

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


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

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

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

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

    macOS/Linux

    $ cd ~/repos/bitbucketstationcrew/

    Windows Command Prompt

    $ cd repos/bitbucketstationcrew/

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

      

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

    $ hg bookmark spacelaboratory

    This command creates and activates that bookmark, so your repository looks something like this:
     

    The repository history remains unchanged. All you get is a new pointer to the current commit.

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

    <p>
        Max Taylor<br>
        <b>サーバー エンジニア</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"

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

     
    It's time to move the change you just made into the @ bookmark.

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

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

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

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

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

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

    macOS/Linux

    $ cd ~/repos/bitbucketstationcrew/

    Windows Command Prompt

    $ 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.orgHTTP
    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. Bitbucket リポジトリの [概要]  ページをクリックすると、[最近のアクティビティ] ストリームにプッシュが表示されます。

  3. Click Commits and you can see the commit you made on your local system. Notice that the change keeps the same commit id as it had on your local system.

    You can also see that the path (the line to the left of the commits list) looks straight forward and shows no bookmarks. That’s because the spacelaboratory bookmark never interacted with Bitbucket, only the change we created and committed.
  4. [ブランチ] をクリックすると、ページにはブックマークのレコードもないことがわかります。

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

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

完了です!

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

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

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


最終更新日 2018 年 1 月 27 日

この翻訳に満足しましたか?

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