Erstellen Sie Mercurial-Befehle aus TortoiseHg und senden Sie sie per SSH an das Remote-Linux.

Erstellen Sie Mercurial-Befehle aus TortoiseHg und senden Sie sie per SSH an das Remote-Linux.

ich benutzeTortoiseHg-Werkbankum Repositories auf meinem lokalen Windows-Rechner zu verwalten, und mir gefällt, wie TortoiseHg die Befehle basierend auf den Klicks zusammenstellt, die ich über die GUI mache.

Ich weiß jedoch nur, wie man mit TortoiseHg lokale Windows-Repositorys verwaltet, nicht Remote-Unix-Mercurial-Clients, die auf einem Webserver liegen.

Ist es möglich, über SSH zu tunneln und Befehle an einen Unix-Webserver zu senden? Ich möchte ein Repo auf meinem Webserver mit TortoiseHg remote verwalten.

Antwort1

Nein, das ist nicht möglich: Die einzigen „Befehle“, die Sie über SSH (und HTTPS) senden können, sind hg pushund hg pull.

Sie werden nicht wirklich als „Befehle“ gesendet. Stattdessen verwendet Mercurial ein eigenes Protokoll, mit dem ein Client einen Remote-Server nach einigen Dingen abfragen kann, etwa „Haben Sie diesen Änderungssatz?“, „Was sind die Zweigköpfe?“ und „Bitte akzeptieren Sie dieses Paket!“.

Wenn Sie SSH verwenden, erstellt Ihr Mercurial-Client einen SSH-Tunnel und startet hg serve --stdioauf dem Remote-Host. Dieser hg serveBefehl spricht das Mercurial-Wire-Protokoll, über das ich oben gesprochen habe. Hosting-Umgebungen wie Bitbucket sind gesperrt, sodass dies dienurBefehl, den Sie über SSH ausführen können – sie möchten nicht, dass Sie beliebige Befehle auf ihren Servern ausführen!

Was die Verwaltung eines Remote-Repositorys aufdein eigenesWebserver: Sie müssen sich per SSH anmelden und ein leeres Repository auf Ihrem Unix-Server erstellen:

$ hg init my-website

Anschließend können Sie von Ihrem lokalen Computer aus Folgendes auf den Server übertragen:

$ hg push ssh://your-server.com/path/from/home-dir/to/my-website

Da Sie über die Verwaltung einer Website sprechen, möchten Sie vielleicht hinzufügen

[hooks]
changegroup = hg update

zur .hg/hgrcDatei im Remote-Repository: Dadurch wird Mercurial hg updatenach jedem Push in dieses Repository ausgeführt. Dies bedeutet, dass die Arbeitskopie mit den neuesten Dateien aktualisiert wird und Ihr Webserver diese der Welt zur Verfügung stellen kann.

verwandte Informationen