Bagaimana membuat sshfs + VPN + git lingkungan kerja yang bisa ditoleransi?

9

Saat ini basis kode untuk proyek yang saya kerjakan adalah jarak jauh pada server perusahaan. dan harus tetap seperti itu. juga gitrepositori jarak jauh tidak dapat dipublikasikan.

Setup saya saat ini adalah:

  • Hubungkan ke VPN
  • jalankan sshfsuntuk me-mount salinan kode
  • mulai bekerja pada kode
  • ketika saya selesai: sshke server jauh dan menjalankan gitperintah di sana

Masalah dengan ini, adalah bahwa VPN turun dari waktu ke waktu, jadi sshfsmounth saya rusak, dan IDE saya membeku. yang saya lakukan adalah menghubungkan kembali VPN secara manual, lalu jalankan sshfslagi, dan kembali bekerja.

Tapi itu menjengkelkan karena VPNjatuh lebih sering.

Jadi saya bertanya-tanya apakah ada pengaturan untuk sshfsbeberapa jenis cache, yang akan memungkinkan saya untuk bekerja, dan hanya menyinkronkan perubahan ketika VPN kembali.

Itu mungkin tidak masuk akal, karena jika driver jarak jauh tidak tersedia tidak ada yang perlu ditulis. Jadi, bagaimana dengan pengaturan berbeda yang menggunakan beberapa watchjenis dan digunakan rsyncuntuk memindahkan perubahan dengan cara dua arah (baik ketika saya menyimpan file, atau ketika saya melakukannya git pull)

Saya tidak bisa hanya git klon, karena saya tidak bisa mereproduksi seluruh lingkungan untuk bekerja 'secara lokal' (DB dan lainnya)

kode harus ada di server mereka, agar saya dapat menguji / melihat pekerjaan saya, saya harus mengakses URL, yaitu kotak pasir saya. Saya tidak bisa mendapatkan dorongan setiap kali saya ingin melihat perubahan saya.

Asgaroth
sumber
3
Mengapa Anda tidak menggunakan gitcara yang waras? Kloning repo, dan bekerja dari jarak jauh.
zecrazytux
Saya tidak bisa hanya git klon, karena saya tidak bisa mereproduksi seluruh lingkungan untuk bekerja 'secara lokal' kode harus ada di server mereka, agar saya dapat menguji / melihat pekerjaan saya. Saya memiliki akses URL yang merupakan kotak pasir saya. Saya tidak bisa mendapatkan dorongan setiap kali saya ingin melihat perubahan saya
Asgaroth
1
Cripes, itu cukup rusak.
EEAA
Bagaimana ini pertanyaan yang buruk? tidak seperti saya dapat mengubah infrastruktur mereka, atau mengambil keputusan tentang itu, saya hanya perlu cara untuk bekerja dengan mereka dari jarak jauh.
Asgaroth

Jawaban:

2

zecrazytux benar - Mengapa Anda tidak menggunakan gitcara yang seharusnya: dengan mengkloning repositori, mengerjakannya dari jarak jauh, dan mendorong perubahan kembali ke master?

Saya tidak melihat alasan Anda "tidak bisa" git pushbekerja setiap kali Anda ingin melihat perubahan Anda (idealnya mendorong ke cabang pengembangan yang kemudian digabung ketika itu diuji dan terbukti berfungsi) - banyak orang melakukan ini. Anda bahkan dapat menggunakan post-receivepengait untuk menyebarkan perubahan Anda ke lingkungan jika Anda ingin mengotomatisasi bagian itu.
(Anda jelas tidak INGIN melakukan ini , tetapi Anda belum memberikan alasan mengapa saya menolak premis masalah Anda.)


Terus terang tidak ada yang dapat Anda lakukan untuk membuat koneksi jaringan yang tidak dapat diandalkan "dapat ditoleransi" (TERUTAMA jika Anda mencoba me-mount sistem file jaringan) - Anda dapat bekerja dari jarak jauh seperti diuraikan di atas, SSH ke dalam sistem dan bekerja langsung di atasnya ( screenapakah Anda teman di sini), atau selidiki dan perbaiki ketidakstabilan jaringan yang mendasarinya.
Mencoba melakukan hal lain untuk "membuatnya bisa ditoleransi" adalah latihan yang sia-sia (pikirkan "payung koktail dalam badai").

voretaq7
sumber
Alasannya, kami memiliki redmine dan setiap komit harus memiliki format tertentu. jadi banyak komitmen tidak dapat diterima untuk satu tugas. Juga harus melakukan git commit + push, sebelum pergi ke browser dan melakukan refresh (F5), akan membuatnya kurang dapat ditoleransi daripada sekarang. Bayangkan harus melakukan + push, hanya karena saya melewatkan titik koma (saya senang, tetapi Anda mendapatkan ide)
Asgaroth
we have redmine and each commit should have a specific format<- Jadi ketika Anda menggabungkan format cabang pengembangan, komit untuk menggabungkan seperti yang diharapkan oleh redmine. gitfleksibel seperti itu :-)
voretaq7
Masalah titik koma yang hilang sederhana: Jangan membuat kesalahan (saya melebih-lebihkan, tetapi Anda mendapatkan ide - Anda dapat menjalankan pemeriksaan sintaks statis terhadap barang-barang Anda sebelum Anda mendorong untuk menghilangkan hal-hal kecil seperti itu, dan karena Redmine hanya akan lihat komit gabungan tidak ada yang perlu tahu kengerian yang terjadi di cabang dev Anda) - jika tidak, kita akan kembali "bekerja dari jarak jauh, gunakan screenketika koneksi mati"
voretaq7
itu bisa benar, tapi saya masih harus berkomitmen + push untuk melihat perubahan, tentu saja saya menggunakan checker sintaks, Anda tidak mendapatkan ide. tetapi Anda tahu bahwa ketika bekerja di aplikasi web, Anda perlu melakukan banyak penyegaran halaman saat mengerjakan sesuatu, sekali lagi komit + puhs akan membuatnya kurang dapat ditoleransi daripada sekarang.
Asgaroth
Anda harus dapat memiliki pengaturan ini: origin → remote clone → local clone. Dorongan dari klon lokal akan dilakukan ke klon jarak jauh (dan tidak dibatasi oleh hal-hal redmine). Saat Anda berada dalam kondisi yang tampaknya tepat untuk redmine, Anda dapat mendorong klon jauh ke asal.
Alfe
0

Saya menggunakan opsi sshfs ini untuk meminimalkan latensi:

sshfs -o Ciphers=arcfour,compression=no,nonempty,auto_cache,reconnect,workaround=all [email protected]:/usr/local/gitdev/ ~/dev/code

Ini memiliki flag koneksi ulang, semua solusi sshfs, menggunakan cache otomatis dan chiper arcfour.

Anda dapat membaca tentang opsi-opsi pada manual sshfs, saya menemukan opsi-opsi sshfs tercepat setidaknya untuk setup saya.

ETA: Lebih lanjut tentang kinerja sshfs baca di sini: kinerja sshfs

anjing berlian
sumber