Derzeit befindet sich die Codebasis für das Projekt, an dem ich arbeite, remote auf einem Unternehmensserver. und so muss es bleiben. Auch das Remote- git
Repository kann nicht veröffentlicht werden.
Mein aktuelles Setup ist:
- Verbinden Sie sich mit dem
VPN
- Führen Sie
sshfs
diese Option aus, um eine Kopie des Codes bereitzustellen - Beginnen Sie mit der Arbeit am Code
- Wenn ich fertig bin:
ssh
zum Remote-Server und dortgit
Befehle ausführen
Das Problem dabei ist, dass das VPN von Zeit zu Zeit sshfs
ausfällt , sodass mein Monat kaputt geht und meine IDE einfriert. Ich verbinde das VPN manuell wieder, führe es dann sshfs
erneut aus und mache mich wieder an die Arbeit.
Aber es wird ärgerlich, wenn die VPN
Fälle häufiger fallen.
Ich frage mich also, ob es Einstellungen für sshfs
eine Art Cache gibt, die es mir ermöglichen würden, zu arbeiten und die Änderungen erst zu synchronisieren, wenn das VPN zurückkommt.
Dies ist möglicherweise nicht sinnvoll, da nichts zu schreiben ist, wenn der Remote-Treiber nicht verfügbar ist. Was ist also mit einem anderen Setup, das etwas watch
verwendet rsync
und Änderungen bidirektional verschiebt (entweder wenn ich eine Datei speichere oder wenn ich es tue git pull
) ?
Ich kann nicht einfach git klonen, weil ich nicht die gesamte Umgebung reproduzieren kann, um 'lokal' zu arbeiten (DB und so)
Der Code muss sich auf ihren Servern befinden, damit ich meine Arbeit testen / sehen kann, muss ich auf eine URL zugreifen, das ist meine Sandbox. Ich kann nicht jedes Mal pushen, wenn ich meine Änderungen sehen möchte.
git
den vernünftigen Weg? Klonen Sie das Repo und arbeiten Sie remote.Antworten:
zecrazytux ist richtig - Warum verwenden Sie nicht die Art und Weise, wie Sie es sollen: indem Sie das Repository klonen, remote daran arbeiten und die Änderungen an den Master zurücksenden ?
git
Ich sehe keinen Grund, warum Sie
git push
Ihre Arbeit nicht jedes Mal "nicht" können, wenn Sie Ihre Änderungen sehen möchten (idealerweise in einen Entwicklungszweig, der dann zusammengeführt wird, wenn er getestet und nachweislich funktioniert) - viele Leute tun dies. Sie können sogar einenpost-receive
Hook verwenden, um Ihre Änderungen in der Umgebung bereitzustellen, wenn Sie diesen Teil der Dinge automatisieren möchten.(Sie wollen dies offensichtlich nicht tun , aber Sie haben keinen Grund angegeben, warum, also lehne ich die Prämisse Ihres Problems ab.)
Ehrlich gesagt können Sie nichts tun, um eine unzuverlässige Netzwerkverbindung "erträglich" zu machen (INSBESONDERE, wenn Sie versuchen, Netzwerkdateisysteme zu mounten) - Sie können entweder wie oben beschrieben remote arbeiten, SSH in das System einbinden und direkt daran arbeiten (
screen
gehört Ihnen) Freund hier) oder untersuchen und beheben Sie die zugrunde liegende Netzwerkinstabilität.Der Versuch, etwas anderes zu tun, um "es erträglich zu machen", ist eine sinnlose Übung (denken Sie an "Cocktailschirm in einem Hurrikan").
quelle
we have redmine and each commit should have a specific format
<- Wenn Sie also das Format des Entwicklungszweigs zusammenführen, wird das Commit für die Zusammenführung so ausgeführt, wie es redmine erwartet.git
ist so flexibel :-)screen
wenn die VerbindungIch verwende diese sshfs-Optionen, um die Latenz zu minimieren:
Es verfügt über das Flag zum erneuten Verbinden, alle sshfs-Problemumgehungen, unter Verwendung von Auto-Cache und Arcfour-Chiper.
Sie können über diese Optionen im sshfs-Handbuch nachlesen. Ich fand diese Optionen zumindest für mein Setup am schnellsten.
ETA: Weitere Informationen zur Leistung von sshfs finden Sie hier: Leistung von sshfs
quelle