it-swarm.com.de

Liste entfernter Niederlassungen in Mercurial

Gibt es eine Möglichkeit, entfernte Niederlassungen in Mercurial wie in Git aufzulisten?

git branch -r

Ich möchte die Zweige auf einem Remote-Rechner (z. B. Bitbucket) auflisten.

hg branches -R `hg showconfig paths.default` --color false

schlägt mit Abbruch fehl: Repository nicht lokal

29
Raoul

Nein, es ist nicht möglich, Verzweigungen eines entfernten Repositorys aufzulisten, ohne es auf lokal zu klonen.

Wenn SSH-Zugriff auf den Computer mit dem Remote-Repository besteht, kann Mercurial direkt verwendet werden: ssh server hg -R path/to/repo branches.

Wenn das Repository mit hgweb bereitgestellt wird, kann eine Liste von Zweigen daraus abgerufen werden. Verwenden Sie dazu den rohen Stil für die einfache Analyse: https://www.Mercurial-scm.org/repo/hg/branches?style=raw

BitBucket hat eine eigene API, mit der es möglich ist, die Zweige abzurufen, siehe ihre Hilfe und eine Abfrage wie eine URL wie https://api.bitbucket.org/1.0/repositories/mirror/Mercurial abzufragen /Geäst/

18

Die Mercurial API erlaubt es:

from Mercurial import ui, hg, node

peer = hg.peer(ui.ui(), {}, 'http://hg.python.org/cpython')
for name, rev in peer.branchmap().items():
    print name, node.short(rev[0])

Das obige Snippet erzeugt:

default aaa68dce117e
legacy-trunk b77918288f7d
3.2 4787b9b2f860
3.0 4cd9f5e89061
3.1 5a6fa1b8767f
2.3 364638d6434d
2.2 61b0263d6881
2.1 e849d484029f
2.0 5fd74354d73b
2.7 260f3ad7af4b
2.6 f130ce67387d
2.5 b48e1b48e670
2.4 ceec209b26d4
18
gvalkov

Um die Antwort von @ gvalkov zu erweitern, können Sie diese zu einer echten Erweiterung machen, indem Sie eine Datei rheads.py schreiben:

from Mercurial import hg, commands, cmdutil, node
cmdtable = {}
command = cmdutil.command(cmdtable)
@command('rheads', commands.remoteopts, 'hg rheads [SOURCE]')
def rheads(ui, repo, source='default', **opts):
    """print (possibly remote) heads

    Prints a series of lines consisting of hashes and branch names.
    Specify a local or remote repository, defaulting to the configured remote.
    """
    other = hg.peer(ui or repo, opts, ui.expandpath(source))
    for tag, heads in other.branchmap().iteritems():
        for h in heads:
            ui.write("%s %s\n" % (node.short(h), tag))

Bei Konfiguration in ~/.hgrc mit

[extensions]
rheads = …/rheads.py

sie können es wie folgt ausführen:

hg rheads

Ich habe versucht, es zu einem Befehl zu machen, der außerhalb eines Repositorys aufgerufen werden kann, indem ich nur die URL als Argument angibt, die Syntax jedoch nicht aktivieren kann:

commands.norepo += " rheads"
3
Jesse Glick

vielleicht suchen Sie nach hg incoming -B Das hat für mich ganz gut funktioniert. Dies zeigt die Lesezeichen.

2
A. K.

Bitte beachten Sie, dass dies nicht angezeigt wird. nur entfernte Zweige, es werden nur Zweige angezeigt, die Ihrem lokalen Repository bekannt sind.

Als einzige relevante Frage beim Googeln von "hg Befehlszeilenlisten-Zweigen" dachte ich, ich würde das hier belassen. Wenn Sie folgendes ausführen -

hg log | grep "branch" | grep -v "summary" | sort --unique

es gibt aus;

branch:      branch1
branch:      branch2
branch:      branch3
branch:      branch4
branch:      branch5
0
Lewis