2016-07-21 24 views
3

다른 개발자들과 함께 프로젝트를 처음 개발하는 것입니다 (지금은 2 개뿐입니다). 우리의 생각은 FileZilla와 같은 FTP/SFTP 소프트웨어를 사용하여 서버에서 바로 파일을 편집하는 것입니다. 편집을 위해 열린 파일은 모두 차단되므로 다른 사용자가 동시에 편집 할 수 없습니다. 이것이 가능한가? FileZilla가 아닌 다른 소프트웨어를 사용한다면? Git, Codiad 및 기타 유사한 솔루션을 살펴 보았지만 너무 복잡합니다 (GitHub의 병행 버전을 병합하는 것은 쉽지 않음) 버그 (Codiad가 파일을 저장하지 않음)가 있습니다. 우리는 파일 잠금이 원초적이지만 우리에게 충분하다고 생각했습니다 (우리는 같은 방에 있습니다). 문제는 어떻게 구현할 것인가입니다.편집시 Ubuntu 서버에서 파일을 잠그는 방법

답변

2
  • FTP에는 파일 잠금이 없습니다.
  • SFTP에서 잠금 기능이 있지만 일반적으로 지원되지 않습니다. 자세한 내용은 SFTP file lock mechanism을 참조하십시오.
  • WebDAV에는 잠금 기능이 있지만 mod_dav와 같은 afaik의 일반적인 구현은 실제로 WebDAV "world"를 사용하여 파일을 잠그고 실제 기본 파일은 어떤 식 으로든 잠겨 있지 않습니다.

그래서 원격으로 파일을 잠글 수있는 일반적으로 사용 가능한 메커니즘을 알지 못합니다.

+0

그래서 우리는 Git과 같은 것을 사용할 것을 제안합니까? – Rodrigo

+0

Apache Subversion (SVN)이 좋은 선택 인 것처럼 보이지만 단순한 대안이 없다고 생각하는 것은 어렵습니다! 파일 잠금, 멋진 하위 버전 제어가 필요합니다. – Rodrigo

+0

힘내는 좋은 선택이지만 당연히 과장 될 수 있습니다. –

3

u가 컴퓨터 소유자 인 경우 팀용 Koding (최대 4 대 무료)을 설치하고 공동 작업 모드에서 webide를 사용할 수 있습니다.

+1

그래, 그걸 시도 할 수있어. 아직도 서버에 그런 종류의 고전적인 기능이 없다는 것에 놀랐습니다. – Rodrigo

2

작은 팀을 빌려주는 것은 괜찮습니다. (큰 프로젝트에서는 사용하지 않아야합니다)하지만 git을 살펴봐야합니다. 같은 시간에 같은 코드로 작업한다면 난 혼란 스럽습니다. Git GUI로 복잡성을 제거하기 위해 내가 사용하는 도구는 sourcetree이지만 다른 것들도 많이있다. 사용자는 자신이하는 일과 변경 사항을 시각화 할 수있다.

귀하의 질문에 대답하기 위해, 나는 당신이 무슨 일을하겠습니까 독립 실행 형 소프트웨어 모르지만 dreamweaver 자체 파일을 잠글 수있는 방법이 있었어. 이 파일은 filename.lock이라는 파일을 만들어서 작성했습니다.이 파일은 누가 파일을 잠근 것입니까? 수동으로 이와 같은 작업을 수행 할 수 있으므로 잠금 파일을 만들 때 파일을 잠그고 잠금 파일을 삭제하려면 파일을 삭제하고 잠금 파일이있는 파일을 편집하지 않도록하십시오.

가장 좋은 솔루션이나 neetest가 아니지만 작업 방식에 따라 작동 할 수도 있습니다.

7

그렇게하지 마십시오.
우선 코드 복사본을 하나만 작성하는 것은 위험합니다. 서버에서 파일을 직접 편집하면 문제가 발생합니다.
두 번째로 나는 사람들이 왜 과잉을 발견하는지 이해하지 못한다. git
소규모 팀의 경우 실제 배달 파이프 라인이없는 경우 git 개의 모든 권한을 마스터하지 않아도됩니다. 가지와 합병을 할 필요가 없습니다.

당신이 git 작업을 시작하는 데 필요한 모든

은 다음과 같습니다
git clone URL_OF_REPOSITORY - 저장소의 복사본을 다운로드하고
git add PATH_TO_EDITED_FILE_OR_FOLDER 함께 작업을 시작 - 단계별로
git commit -m 'DESCRIPTION OF CHANGES'을 커밋 할 파일 및/또는 폴더를 표시 - 저지/이전 단계에서 표시된 파일 및 폴더의 변경 사항을 적용하고
git push 로컬 이러한 변경 사항에 대한 정보를 저장 - 다시 다른 사람에 의해 최선을 다하고 밀어 변화를 다운로드 - 원격 저장소
git pull에 최선을 다하고 변경 사항을 업로드하기 mote repository

사용자가 알 수있는 것처럼 명령은 정교한 정보를 제공 할 것을 기대하지 않습니다. 원격 저장소의 URL, 다른 사람과 공유 할 준비가되었다고 생각하는 파일 및 변경 사항에 대한 원하는 설명. 정말로 어렵지 않습니다. 그리고 소프트웨어 개발의 핵심 기술 중 하나 인 요즘 버전 제어 시스템에 익숙해지기 시작해야합니다.

+2

이것은. 나는 단일 개발자 프로젝트에서도 자식을 사용한다. – MirMasej

+0

감사합니다. 그러나 한 곳에서 파일을 가지고 있다고해서 우리가 매일 백업하지 않는다는 것을 의미하지는 않습니다. 둘째, 다른 답변은 "당신이 같은 시간에 동일한 코드를 사용하는 경우에만 엉망이됩니다"라고 말하면서 그것이 내 관심사입니다. 지저분한 것을 원하지 마라. 오래된 기술이 다시 작동하기 만하면됩니다. 그리고 네, 저는 Git을 배울 필요가 있다는 것을 알고 있습니다.하지만 나는 여전히 그것이 우리 일의 종류에 과잉이라고 생각합니다. – Rodrigo

+0

@Rodrigo는 '같은 비트의 코드'라는 말은 동일한 파일이 아니라 동일한 라인을 의미합니다. 비록 그것이 일어난다해도, 자식은 당신에게 경고 할 것이고, 충돌하는 선 대신에 좋은 diff를 놓을 것이다. 이후에해야 할 일은 올바른 코드를 선택하고 다른 코드를 제거하고 변경 사항을 적용하는 것입니다. 원격 파일에서 FTP를 통해 작업하면 어떤 경고도없이 다른 개발자가 변경 한 내용을 덮어 쓰게됩니다. – ElmoVanKielmo