В настоящее время кодовая база проекта, над которым я работаю, находится удаленно на сервере компании. и он должен оставаться таким. также удаленный git
хранилище нельзя сделать общедоступным.
Моя текущая настройка:
VPN
sshfs
смонтировать копию кодаssh
на удаленный сервер и запустите git
команды тамПроблема в том, что VPN время от времени падает, поэтому My sshfs
mounth ломается, и моя IDE зависает. что я делаю, это вручную повторно подключаю VPN, а затем запускаю sshfs
снова и вернуться к работе.
Но это раздражает, когда VPN
падает чаще.
Поэтому мне интересно, есть ли какие-нибудь настройки для sshfs
для какого-то кеша, который позволил бы мне работать и синхронизировать изменения только после того, как VPN вернется.
Это может не иметь смысла, поскольку, если удаленный драйвер недоступен, писать не на что. А как насчет другой настройки, в которой watch
вид вещей и использование rsync
для двунаправленного перемещения изменений (либо когда я сохраняю файл, либо когда git pull
)
Я не могу просто git clone, потому что я не могу воспроизвести всю среду для работы `` локально '' (БД и прочее)
код должен быть на их серверах, чтобы я мог проверить / увидеть свою работу, мне нужно получить доступ к URL-адресу, то есть к моей песочнице. Я не могу git push каждый раз видеть свои изменения.
Зекразитукс прав - Почему бы тебе не использовать git
так, как вы должны: клонировать репозиторий, работать с ним удаленно и отправлять изменения обратно в мастер?
Я не вижу причин, по которым ты "не можешь" git push
свою работу каждый раз, когда вы хотите увидеть свои изменения (в идеале, продвигая ветку разработки, которая затем объединяется, когда она проверена и доказала свою работоспособность) - многие люди так делают. Вы даже можете использовать post-receive
крючок для развертывания ваших изменений в среде, если вы хотите автоматизировать эту часть вещей.
(Вы очевидно не ХОЧУ делать это, но вы не объяснили причину, поэтому я отвергаю предпосылку вашей проблемы.)
Откровенно говоря, вы ничего не можете сделать, чтобы сделать ненадежное сетевое соединение «терпимым» (ОСОБЕННО, если вы пытаетесь смонтировать сетевые файловые системы) - вы можете либо работать удаленно, как описано выше, SSH в систему и работать непосредственно с ней (screen
является вашим другом здесь), или исследуйте и устраните основную нестабильность сети.
Попытки сделать что-то еще, чтобы «сделать его терпимым» - бесполезное занятие (вспомните «коктейльный зонтик во время урагана»).
Я использую эти параметры sshfs, чтобы минимизировать задержку:
sshfs -o Ciphers=arcfour,compression=no,nonempty,auto_cache,reconnect,workaround=all user@development.net:/usr/local/gitdev/ ~/dev/code
У него есть флаг повторного подключения, все обходные пути sshfs, с использованием автоматического кеширования и чипа arcfour.
Вы можете прочитать об этих параметрах в руководстве по sshfs, я обнаружил, что это самые быстрые параметры sshfs, по крайней мере, для моей настройки.
ETA: Подробнее о производительности sshfs читайте здесь: производительность sshfs