2

BitbucketでホストされているMercurialを1年間使用してきましたが、チームが7人の開発者に拡大したので、NamedBranchesで機能ごとのブランチのSCM戦略を使い始めることにしました。ブランチは数日または数ヶ月生きることができます(長い話)。チームリーダーとして、私はブランチのマージを担当することがよくあります。多くの開発者が1つのブランチで作業する可能性があり、コミット情報を簡単に確認できますが、誰がブランチを作成/クローズしたかを確認するにはどうすればよいですか?また、ブランチはどのようにして「非アクティブ」になり、その詳細をどのように確認できますか?

更新:Mercurial 1.9.3を使用すると、一部のブランチが非アクティブとして表示されます。Mercurialは非アクティブの使用から遠ざかっているようですが、私は誤解しているのでしょうか。
$ hg
branchs default 1538:a145e13ab06a
IIP-628 1510:3e48d51e7757
IIP-98 1528:17a57f033d3b(非アクティブ)

4

1 に答える 1

1

ブランチへの最初のコミットの作成者は、ブランチを作成した人です。

hg log -r "first(branch('branchname'))"

クローズフラグが設定されたコミットの作成者は、ブランチをクローズした人です。ブランチが再開される可能性があるため、複数の「クローザー」が存在する可能性があります。

hg log -r "branch('branchname') and closed()"
hg log -r "last(branch('branchname') and closed())"

アクティブなヘッドがない場合、つまりすべてのチェンジセットが他のブランチにマージされている場合、ブランチは非アクティブです。必要な特定の情報を返すようにrevsetクエリを作成できますが、通常はhg heads、非アクティブなヘッドを含むすべてのヘッドを表示するために使用します。

hg heads
hg heads --closed

ブランチにはアクティブなヘッドがなく、閉じられていないか、閉じられているが、閉じているチェンジセットがヘッドである可能性があることに注意してください(IIRCは、変更セットが閉じているだけのブランチは暗黙的に非アクティブです。Mercurialがインストールされているマシンではチェックしません)。

したがって、「クローズ」の定義が「アクティブヘッドなし」である場合、最後にマージされたチェンジセットを探します。これは通常、ブランチ内の最後のチェンジセットですが、そうでない場合もあります。次のリビジョンセットは、ヘッドチェンジセットでもあるブランチ内の最後に閉じられた、またはマージされたチェンジセットを返します。

hg log -r "last(branch('branchname') and head() and (closed() or parents(merge())))"
于 2012-12-15T23:08:24.697 に答える