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. Navigate to the directory folder containing your repository files (something like /Users/<youruser>/repos/bitbucketspacestation). You will notice there are no extra files or folders in the directory.
  4. Open the crewroles file using your preferred editor.
  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. Enter hg status in the terminal window. You will see something like this:

    $ hg status
    M crewroles
  8. Enter the hg commit  command in the terminal window, as shown by the following:

    $ hg commit crewroles -m "Making a change"

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


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

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

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

This move effectively combines the histories, since all of the commits reachable from the spacelaboratory bookmark are now available through the main one.  Because you don't need to have a separate place to add space laboratory team members anymore, it's probably a good idea to delete the  spacelaboratory  bookmark.

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

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

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

    macOS/Linux

    $ cd ~/repos/bitbucketstationcrew/

    Windows コマンド プロンプト

    $ cd repos/bitbucketstationcrew/
  2. Enter the  hg bookmarks  command to display a list of all your bookmarks. The * indicates the bookmark you have checked out.

    $ hg bookmarks
       @                         26432:d6f92e6b6d94
     * spacelaboratory           30658:2dc7d086f314
  3. Enter hg bookmark @  to move the main bookmark forward:

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

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

  4. Because you don't plan on using spacelaboratory anymore, you can delete the bookmark.

    $ hg bookmark -d spacelaboratory
  5. Enter hg bookmarks to see that the spacelaboratory bookmark no longer exists.

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

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

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

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

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

  1. Navigate to the repository directory in your terminal window and  enter hg push -B  @  to push the changes. The -B  @ part of hg push tells the terminal to push the @ bookmark. It will result in something like the following:

    $ 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. 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.
  3. [ブランチ] をクリックすると、ページにはブックマークのレコードもないことがわかります。

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

  4. Click Source, and then select the  crewroles  file.
    You can see the last change to the file has the commit id you just pushed.
  5. このファイルのコミット済み変更を確認するには、次の図のように、ファイル履歴リストをクリックします。

完了です!

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

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

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


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

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

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