sshfs + VPN + git를 견딜 수있는 작업 환경으로 만드는 방법은 무엇입니까?


9

현재 내가 작업중 인 프로젝트의 코드베이스는 회사 서버에 원격으로 있습니다. 그렇게 유지해야합니다. 또한 원격 git저장소를 공개 할 수 없습니다.

내 현재 설정은 다음과 같습니다

  • 에 연결 VPN
  • sshfs코드 사본을 마운트하기 위해 실행
  • 코드 작업 시작
  • 내가 끝나면 : ssh원격 서버로 가서 git거기서 명령을 실행하십시오.

이것의 문제는 VPN이 때때로 떨어지기 때문에 내 sshfsmounth가 고장 나고 IDE가 정지 한다는 것 입니다. 내가하는 일은 수동으로 VPN을 다시 연결 한 다음 sshfs다시 실행하고 다시 작동하는 것입니다.

그러나 VPN추락이 더 빈번해지면서 성가시다 .

그래서 sshfs일종의 캐시 에 대한 설정이 있는지 궁금 해서 VPN을 다시 사용할 때만 작동하고 변경 사항을 동기화 할 수 있습니다.

원격 드라이버를 사용할 수 없으면 쓸 내용이 없기 때문에 의미가 없습니다. 그래서 어떤 watch종류의 것을 사용 rsync하고 양방향으로 변경 사항을 이동 시키는 데 사용하는 다른 설정은 어떻 습니까 (파일을 저장할 때 또는 할 때 git pull)

git clone 만 할 수는 없습니다. 전체 환경을 '로컬'(DB 및 물건)로 재생산 할 수 없기 때문입니다.

코드는 서버에 있어야합니다. 내 작업을 테스트 / 확인하려면 URL, 즉 내 샌드 박스에 액세스해야합니다. 변경 사항을보고 싶을 때마다 git push를 사용할 수 없습니다.


3
git제정신 을 사용하지 않는 이유는 무엇 입니까? 저장소를 복제하고 원격으로 작업하십시오.
zecrazytux

내 작업을 테스트 / 볼 수 있도록 서버에서 코드가 있어야하는 로컬 환경에서 전체 환경을 재현 할 수 없기 때문에 git clone 만 할 수는 없습니다. 내 샌드 박스 인 URL에 액세스 할 수 있습니다. 변경 사항을보고 싶을 때마다 git push를 수행 할 수 없습니다
Asgaroth

1
Cripes, 그것은 꽤 고장났습니다.
EEAA

어떻게 나쁜 질문입니까? 인프라를 변경하거나 의사 결정을 내리는 것처럼 원격으로 작업 할 방법이 필요합니다.
Asgaroth

답변:


2

zecrazytux 오른쪽이다 - 왜 사용하지 않는 git당신이 생각하고있는 방법 : 원격으로 작업, 저장소를 복제, 마스터로 다시 변경을 밀어를?

git push변경 사항을보고 싶을 때마다 ( " 테스트되고 입증 된 작업을 수행 할 때 병합되는 개발 지점으로 이동 "할 때마다 작업 을 "할 수없는"이유는 없습니다 . 많은 사람들이이 작업을 수행합니다. post-receive해당 부분을 자동화하려는 경우 후크를 사용 하여 변경 사항을 환경에 배포 할 수도 있습니다 .
(당신은 분명히 이것을하고 싶지 는 않지만, 당신의 문제의 전제를 거부하는 이유를 제시하지 않았습니다.)


솔직히 신뢰할 수없는 네트워크 연결을 "허용"하도록하기 위해 할 수있는 일은 없습니다.screen 당신입니다 기본 네트워크 불안정성을 조사하고 수정하십시오.
"허용 할 수있게"하기 위해 다른 것을 시도하는 것은 무의미한 운동이다 ( "허리케인의 칵테일 우산"을 생각하십시오).


그 이유는 Redmine이 있고 각 커밋은 특정 형식을 가져야하기 때문입니다. 따라서 단일 작업에는 많은 커밋이 허용되지 않습니다. 또한 브라우저로 이동하고 새로 고침 (F5)을 수행하기 전에 git commit + push를 수행하면 현재보다 견딜 수 없게됩니다. 세미콜론을 놓쳤다 고해서 커밋 + 푸시를해야한다고 상상해보십시오 (내가
격렬

we have redmine and each commit should have a specific format<-따라서 개발 브랜치 형식을 병합하면 병합에 대한 커밋이 redmine이 예상하는 방식으로 커밋됩니다. git유연한 유연성 :-)
voretaq7

누락 된 세미콜론은 간단합니다. 실수하지 마십시오. (과장하고 있지만 아이디어를 얻습니다. 작은 것을 제거하기 전에 푸시하기 전에 정적 구문 검사를 실행할 수 있습니다. Redmine은 어쨌든 당신의 개발자 브랜치에서 일어난 공포를 아무도 알 필요가없는 머지 다운 커밋을보십시오) – 그렇지 않으면 우리는 "원격으로 작업 screen하고 연결이
끊어졌을

그것은 사실 일 수는 있지만 여전히 변경 사항을 확인하기 위해 커밋 + 푸시해야합니다. 물론 구문 검사기를 사용하면 아이디어를 얻지 못했습니다. 그러나 웹 응용 프로그램에서 작업 할 때 무언가 작업 할 때 많은 페이지 새로 고침을 수행해야하며 다시 commit + puhs는 현재보다 견딜 수 없게 만듭니다.
Asgaroth

이 설정은 origin → remote clone → local clone으로 설정해야합니다. 로컬 클론에서 원격 클론으로의 푸시가 수행됩니다 (그리고 레드 마인에 의해 제한되지 않음). 레드 마인에 적합한 상태 인 경우 원격 클론을 원점으로 푸시 할 수 있습니다.
Alfe

0

대기 시간을 최소화하기 위해이 sshfs 옵션을 사용하고 있습니다.

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

자동 캐시 및 arcfour chiper를 사용하는 재 연결 플래그, 모든 sshfs 해결 방법이 있습니다.

sshfs 매뉴얼에서 해당 옵션에 대해 읽을 수 있습니다. 최소한 내 설정에서 가장 빠른 sshfs 옵션을 찾았습니다.

ETA : sshfs 성능에 대한 추가 정보 : sshfs performance

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.