Làm cách nào để tạo sshfs + VPN + git một môi trường làm việc có thể chấp nhận được?


9

Hiện tại cơ sở mã cho dự án tôi đang làm việc là từ xa trên máy chủ của công ty. và nó phải ở lại như thế cũng là gitkho lưu trữ từ xa không thể được công khai.

Thiết lập hiện tại của tôi là:

  • Kết nối với VPN
  • chạy sshfsđể gắn một bản sao của mã
  • bắt đầu làm việc với mã
  • Khi tôi hoàn thành: sshđến máy chủ từ xa và chạy gitcác lệnh ở đó

Vấn đề với điều này là VPN thỉnh thoảng bị rơi, do đó, sshfsđỉnh của tôi bị hỏng và IDE của tôi bị đóng băng. những gì tôi làm là kết nối lại thủ công VPN, sau đó chạy sshfslại và hoạt động trở lại.

Nhưng nó trở nên khó chịu vì VPNthác thường xuyên hơn.

Vì vậy, tôi tự hỏi nếu có bất kỳ cài đặt nào sshfscho một số loại bộ đệm, điều đó sẽ cho phép tôi làm việc và chỉ đồng bộ hóa các thay đổi khi VPN hoạt động trở lại.

Điều đó có thể vô nghĩa, vì nếu trình điều khiển từ xa không có sẵn thì không có gì để viết. Vì vậy, những gì về một thiết lập khác sử dụng một số watchloại và sử dụng rsyncđể di chuyển các thay đổi theo cách hai chiều (khi tôi lưu tệp hoặc khi tôi làm git pull)

Tôi không thể chỉ nhân bản, vì tôi không thể tái tạo toàn bộ môi trường để hoạt động 'cục bộ' (DB và công cụ)

mã phải ở trong máy chủ của họ, để tôi kiểm tra / xem công việc của mình, tôi phải truy cập URL, đó là hộp cát của tôi. Tôi không thể đẩy mỗi lần tôi muốn thấy những thay đổi của mình.


3
Tại sao bạn không sử dụng gitcách lành mạnh? Nhân bản repo, và làm việc từ xa.
zecrazytux

Tôi không thể chỉ nhân bản, vì tôi không thể tái tạo toàn bộ môi trường để hoạt động 'cục bộ', mã phải có trong máy chủ của họ, để tôi kiểm tra / xem công việc của mình. Tôi đã truy cập một URL đó là hộp cát của tôi. Tôi không thể đẩy mỗi lần tôi muốn thấy những thay đổi của mình
Asgaroth

1
Cripes, đó là khá hỏng.
EEAA

Làm thế nào nó là một câu hỏi xấu? Nó không giống như tôi có thể thay đổi cơ sở hạ tầng của họ, hoặc đưa ra quyết định về nó, tôi chỉ cần một cách để làm việc với họ từ xa.
Asgaroth

Câu trả lời:


2

zecrazytux đã đúng - Tại sao bạn không sử dụng gitcách bạn phải làm: bằng cách nhân bản kho lưu trữ, làm việc trên nó từ xa và đẩy các thay đổi trở lại bản gốc?

Tôi thấy không có lý do gì bạn "không thể" git pushlàm việc mỗi khi bạn muốn thấy những thay đổi của mình (lý tưởng nhất là đẩy đến một nhánh phát triển sau đó được hợp nhất khi nó được thử nghiệm và chứng minh hoạt động) - rất nhiều người làm điều này. Bạn thậm chí có thể sử dụng một post-receivecái móc để triển khai các thay đổi của mình vào môi trường nếu bạn muốn tự động hóa phần đó của mọi thứ.
(Rõ ràng là bạn KHÔNG MUỐN làm điều này , nhưng bạn không đưa ra bất kỳ lý do nào khiến tôi từ chối tiền đề của vấn đề của bạn.)


Thành thật mà nói bạn không thể làm gì để làm cho một kết nối mạng không đáng tin cậy "có thể chấp nhận được" (ĐẶC BIỆT nếu bạn đang cố gắn hệ thống tệp mạng) - bạn có thể làm việc từ xa như đã nêu ở trên, SSH vào hệ thống và làm việc trực tiếp với nó ( screenlà của bạn bạn ở đây), hoặc điều tra và sửa lỗi mất ổn định mạng cơ bản.
Cố gắng làm một cái gì đó khác để "làm cho nó có thể chịu đựng được" là một bài tập vô ích (nghĩ "ô cocktail trong cơn bão").


Lý do là, chúng tôi có redmine và mỗi cam kết nên có một định dạng cụ thể. vì vậy một loạt các cam kết không được chấp nhận cho một nhiệm vụ. Ngoài ra, phải thực hiện git commit + push, trước khi vào trình duyệt và làm mới (F5), sẽ làm cho nó ít chịu đựng hơn so với bây giờ. Hãy tưởng tượng bạn phải cam kết + đẩy, chỉ vì tôi đã bỏ lỡ một dấu chấm phẩy (Tôi đang háo hức, nhưng bạn hiểu ý)
Asgaroth

we have redmine and each commit should have a specific format<- Vì vậy, khi bạn hợp nhất định dạng nhánh phát triển, cam kết hợp nhất theo cách mà redmine mong đợi. gitlinh hoạt như thế :-)
voretaq7

Điều thiếu dấu chấm phẩy rất đơn giản: Đừng phạm sai lầm (Tôi đang phóng đại, nhưng bạn hiểu ý - bạn có thể chạy kiểm tra cú pháp tĩnh đối với nội dung của mình trước khi bạn cố gắng loại bỏ những điều nhỏ nhặt như vậy và vì Redmine sẽ chỉ hãy xem cam kết hợp nhất không ai cần biết những điều khủng khiếp đã xảy ra trong nhánh nhà phát triển của bạn) - nếu không, chúng tôi sẽ quay lại "làm việc từ xa, sử dụng screenkhi kết nối chết"
voretaq7

điều đó có thể đúng, nhưng tôi vẫn còn phải cam kết + đẩy để xem các thay đổi, tất nhiên tôi sử dụng trình kiểm tra cú pháp, bạn không hiểu ý tưởng. nhưng bạn biết rằng khi làm việc trong các ứng dụng web, bạn cần phải làm mới nhiều trang khi làm việc trên một cái gì đó, một lần nữa cam kết + puhs sẽ làm cho nó ít chịu đựng hơn bây giờ.
Asgaroth

Bạn sẽ có thể có thiết lập này: origin → remote clone → local clone. Một cú đẩy từ bản sao cục bộ sẽ được thực hiện đến bản sao từ xa (và không bị hạn chế bởi bất kỳ nội dung redmine nào). Khi bạn ở trong trạng thái có vẻ phù hợp với redmine, bạn có thể đẩy bản sao từ xa về nguồn gốc.
Alfe

0

Tôi đang sử dụng các tùy chọn sshfs này để giảm thiểu độ trễ:

sshfs -o Ciphers=arcfour,compression=no,nonempty,auto_cache,reconnect,workaround=all user@development.net:/usr/local/gitdev/ ~/dev/code

Nó có cờ kết nối lại, tất cả các cách giải quyết sshfs, sử dụng bộ đệm tự động và chiper arcfour.

Bạn có thể đọc về các tùy chọn đó trên sổ tay sshfs, tôi thấy đó là những tùy chọn sshfs nhanh nhất ít nhất là cho thiết lập của tôi.

ETA: Thông tin thêm về hiệu suất sshfs đọc tại đây: hiệu suất sshfs

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.