Actuellement, la base de code du projet sur lequel je travaille se trouve à distance sur un serveur d'entreprise. et ça doit rester comme ça. le git
référentiel distant ne peut pas non plus être rendu public.
Ma configuration actuelle est la suivante:
- Connectez-vous au
VPN
- exécuter
sshfs
pour monter une copie du code - commencer à travailler sur le code
- quand j'ai fini:
ssh
vers le serveur distant et y exécuter desgit
commandes
Le problème avec cela, c'est que le VPN tombe de temps en temps, donc mon sshfs
mois se brise et mon IDE se bloque. ce que je fais est de reconnecter manuellement le VPN, puis de réexécuter sshfs
et de retourner au travail.
Mais cela devient agaçant car les VPN
chutes se produisent plus souvent.
Je me demande donc s'il existe des paramètres pour sshfs
une sorte de cache, qui me permettraient de travailler et de synchroniser les modifications uniquement lorsque le VPN reviendrait.
Cela peut ne pas avoir de sens, car si le pilote distant n'est pas disponible, il n'y a rien à écrire. Alors qu'en est-il d'une configuration différente qui utilise une watch
sorte de chose et utilise rsync
pour déplacer les modifications de manière bidirectionnelle (soit lorsque j'enregistre un fichier, soit quand je le fais git pull
)
Je ne peux pas simplement git cloner, car je ne peux pas reproduire tout l'environnement pour travailler «localement» (DB et autres)
le code doit être dans leurs serveurs, pour que je puisse tester / voir mon travail, je dois accéder à une URL, c'est mon bac à sable. Je ne peux pas git push chaque fois que je veux voir mes changements.
git
la manière saine? Clonez le référentiel et travaillez à distance.Réponses:
zecrazytux a raison - Pourquoi n'utilisez-vous pas
git
la façon dont vous êtes censé: en clonant le référentiel, en travaillant à distance et en repoussant les modifications au maître?Je ne vois aucune raison pour laquelle vous "ne pouvez pas"
git push
travailler à chaque fois que vous voulez voir vos changements (idéalement en poussant vers une branche de développement qui est ensuite fusionnée lorsqu'elle est testée et éprouvée) - beaucoup de gens le font. Vous pouvez même utiliser unpost-receive
hook pour déployer vos modifications dans l'environnement si vous souhaitez automatiser cette partie des choses.(Vous ne VOULEZ évidemment pas le faire , mais vous n'avez donné aucune raison pour laquelle je rejette la prémisse de votre problème.)
Franchement, vous ne pouvez rien faire pour rendre une connexion réseau non fiable «tolérable» (EN PARTICULIER si vous essayez de monter des systèmes de fichiers réseau) - vous pouvez soit travailler à distance comme indiqué ci-dessus, SSH dans le système et travailler directement dessus (
screen
est votre ami ici), ou recherchez et corrigez l'instabilité du réseau sous-jacent.Essayer de faire autre chose pour «le rendre tolérable» est un exercice futile (pensez à «un parapluie cocktail dans un ouragan»).
la source
we have redmine and each commit should have a specific format
<- Ainsi, lorsque vous fusionnez le format de la branche de développement, la validation de la fusion est conforme à ce que redmine attend.git
est flexible comme ça :-)screen
lorsque la connexion s'éteint"J'utilise ces options sshfs pour minimiser la latence:
Il a le drapeau de reconnexion, toutes les solutions de contournement sshfs, en utilisant le cache automatique et le chipset arcfour.
Vous pouvez lire ces options sur le manuel sshfs, j'ai trouvé ces options sshfs les plus rapides au moins pour ma configuration.
ETA: Plus d'informations sur les performances de sshfs lire ici: performances de sshfs
la source