인형 / 교수를위한 협업 도구


36

두 개 이상의 다른 기관의 공동 저자가 라텍스로 논문을 작성하고 있으며 초안을 반복해서 이메일로 보내는 것보다 더 나은 방법을 원한다고 가정하십시오.

그들은 Dropbox 계정을 무료로 개설하고 암호를 공유하며 컴퓨터의 종이 버전을 dropbox의 계정과 동기화 할 수 있다는 것을 알고 있습니다. 그러나 두 사람이 동시에 같은 섹션을 편집하는 경우 서로 변경 사항을 덮어 씁니다.

또한 SVN 및 Git과 같은 버전 제어 시스템에는 동시 변경 사항을 병합하는 도구가 있으며 이는 합리적으로 잘 작동합니다. 그러나 이러한 제품의 설명서는 읽기가 어렵고 논문을 작성하는 공동 저자의 기본 요구보다는 변경을 취소하는 방법과 다른 "분기"를 관리하는 방법에 더 중점을 둡니다.

이 설정에서 버전 제어 시스템을 사용하는 방법에 대한 간단한 단계별 설명이 있습니까?

  • 중앙 저장소
  • 지역 사본
  • "스마트 한"병합
  • 가지가 없다

?

표준 버전 관리 시스템 중에서 가장 사용하기 쉬운 시스템은 무엇입니까? (우리는 여기서 이론적 인 컴퓨터 과학 교수와 이야기하고 있습니다.)

버전 제어없이 스마트 병합과 만 동기화하는 더 간단한 도구가 있습니까?

반대로, 버전 제어 시스템을 사용하여 단일 저자 논문을 작성하는 사람들도 무제한 실행 취소 기능이 추가로 복잡 할 가치가 있다고 생각합니까?


매우 흥미로운 질문입니다.
Oleksandr Bondarenko

1
과연. 나는 지금까지 SVN보다 더 나은 것을 찾지 못했지만 초보자가 올바르게 사용하도록하는 것이 때로는 약간 지루합니다. 사용자에게 친숙한 솔루션을 제공하는 답변을 기대합니다.
Anthony Labarre 님이

2
나도이 질문을 좋아한다! @Luca : 협업을위한 버전 관리 (단어 수준 차이)에 관심이 있으 십니까? .
MS Dousti

1
CS의 일부 부서에서는 종이 (및 슬라이드)를 문맹 소스로 쓰는 것이 일반적입니다. lhs2tex ( people.cs.uu.nl/andres/lhs2tex ) 와 같은 도구가 이와 관련하여 유용합니다. 결론은이 논문의 소스 코드 예제를 컴파일하고 확인할 수 있으며 결과가 자동으로 생성 될 수도 있다는 것입니다. 그러한 경우에, 진짜 dvcs는 유일한 제정신 일처럼 보인다 :-)
sclv

btw dropbox에는 기본 버전 제어 기능이 있습니다. 모든 파일의 이전 버전으로 롤백 할 수 있습니다. 그러나 병합은 수동이어야하는데 이는 번거로울 수 있습니다. 여전히 svn을 사용하더라도 가상 토큰을 전달하는 것이 여전히 좋은 생각이라고 생각하십니까? 내가 한 것은 모든 섹션에 대해 라텍스 파일을 다른 파일로 나누고 dropbox를 사용하는 것입니다.
Sasho Nikolov 2016 년

답변:


12

먼저 실시간 협업 편집에 관심이 있다면 gobby 와 같은 것을 시도 하십시오 . 문자 그대로 동시에 문서를 편집 할 수 있습니다.

개정 시스템에 관해서는 SVN에만 익숙합니다. 이것은 물론 서브 버전을 설치 한 후에 수행하는 작업입니다.

  1. 저장소를 설정하고 URL, 사용자 이름 및 비밀번호를 제공하도록 누군가에게 요청하십시오.
  2. lokal 사본을 갖고 싶은 곳으로 이동
  3. 쉘 (명령 행?)에 다음을 입력하십시오 svn co url://to.your/repository(체크 아웃). 이제 리포지토리 내용이있는 새 폴더가 나타납니다.

그게 다야. 이제 가장 기본적인 명령 :

  • 새 파일 을 추가 할 때마다 다음을 foo입력하십시오.svn add foo
  • 파일을 제거 할 때마다 다음을 입력하십시오. svn rm foo
  • 변경할 때마다 다음을 입력하십시오 svn ci(체크인).
  • 최신 정보를 얻으려면 다음을 입력하십시오. svn up(update)

이동, 복사, 분기, 충돌 해결을위한 명령도 있습니다. 그러나 재미있는 것을 시도하지 않는 한, 위의 내용은 괜찮습니다. 문제가 발생하거나 수정 된 것으로 보이면 편집 한 내용을 백업하고 전체 폴더를 삭제 한 후 새로 확인하십시오. 그것은 Windows 용 재부팅과 같은 svn 용입니다.

부록 : "스마트 병합"에 대해 우려하는 것 같습니다. 나는 두 사람이 종이의 분리 된 부분에 물건을 추가했다는 가정하에 다른 버전의 파일 병합을 언급했다고 가정합니다. 내가 아는 한 svn은 그것을 충돌로 취급 할 것입니다. 나는 두 사람이 같은 출처를 조작 한 후에 원하는 것을 얻는 일반적인 절차가 있다고 생각하지 않습니다. 이러한 충돌을 시각화하고이를 해결하는 데 도움이되는 그래픽 svn 클라이언트가 있습니다. 그들은 충돌하는 모든 줄에 유지할 버전을 선택할 수 있다면 거의 다른 사람들입니다.) 그러나 작업이 필요합니다.


6
또한 ToriseSVN을 사용하여 SVN과의 모든 상호 작용을 그래픽으로 처리해야합니다. 모든 것을 산들 바람으로 만듭니다.
Noon Silk

3
SVN 서버를 설정하는 대신 unfuddle.com 과 같은 무료 호스팅 서비스를 사용하는 것이 좋습니다 . 상당히 고통스럽고 사적입니다.
Anand Kulkarni

2
감사의 말을 전하며 Anand에게 감사의 말을 전한 덕분에 이것은 내가 찾던 1 분짜리 튜토리얼이었습니다. 난민촌에 저장소를 설정하고 다른 컴퓨터에 두 개의 로컬 사본을 만들고 부적절하게 편집하고 체크인했으며 Suresh가 말한 것처럼 스마트 병합을 수행합니다. 두 명의 사용자가 일관되지 않은 변경을 수행하면 두 번째 사용자가 오류 메시지를 수신하지만 두 번째 사용자가 업데이트 한 후 체크인하면 업데이트가 스마트 병합을 로컬로 만들고 체크인에서 스마트 병합을 수행합니다.
Luca Trevisan

1
Raphael에 관한 정보 : etherpad.org- 또 다른 실시간 편집 도구. 매우 유망한 ...
알레산드로 코센 티노

1
많은 사람들이 svn보다 git을 선호한다고 말해야하지만 직접 경험하지는 않았습니다.
Raphael

12

아무도 GIT 에 대한 "작은"자습서를 제공하지 않으므로이를 다룰 것입니다. GIT는 SVN보다 빠르고 우수하지만 SVN이 잘 설정되어 있기 때문에 대학의 서버에서 SVN 계정을 얻는 것이 더 쉽습니다. 또한 공동 작업자가이를 사용하는 방법을 알고있을 수도 있습니다.

SVN을 사용하여 공동 작업을하더라도 로컬 버전 관리에 GIT를 사용할 수 있습니다 (I do!).

경고의 첫 번째 비트 : GIT는 매우 강력하며 기본 사용법의 경우 SVN보다 사용하기가 약간 어렵습니다 (예 : 명령 행에 추가 할 옵션 하나, 중앙 저장소에 두 단계 커밋).

경고의 두 번째 비트 : GIT는 세트가 여러 파일에 걸쳐 있어도 일련의 변경 사항을 원자 ( 라고 함)로 간주하는 철학을 가지고 있습니다. 또한 GIT에는 로컬 저장소와 중앙 저장소 라는 개념이 있습니다. GOOD : 오프라인으로 작업 할 수 있습니다. BAD : 중앙 서버에 커밋하는 두 단계가 필요 합니다.Δ

이미 저장소가 있다고 가정하는 기본 명령

  • 저장소를 복제하십시오. git clone <url>
  • 로컬 리포지토리를 업데이트 git pull <repo>하거나 git pull위와 같이 복제 한 경우
  • pull 명령은 실제로 git fetch와를 모두 수행합니다 git merge. 전자는 중앙 서버에서 "가져온"항목이고, 두 번째는 파일과 서버의 파일을 병합합니다.

일부 파일의 동일한 부분에 대한 동시 편집이없는 한 병합은 자동으로 수행됩니다. 병합에 실패하면 작업 디렉토리는 "병합 상태"로 유지됩니다. 이는 충돌을 수정 한 다음 병합 된 사본을 커밋해야 함을 의미합니다. 여전히 파일에서 관리되지 않는 충돌이 있으면 커밋이 다시 실패하고 가비지는 커밋되지 않습니다.

  • 커밋 할 새 파일을 추가하십시오 git add <file name>..
  • 로컬 저장소로 git commit -am "<textmessages>"또는 git commit -a커밋 메시지를 편집하려는 경우 변경 사항을 커밋하십시오.
  • 로컬 저장소 의 변경 사항을 중앙 저장소로 푸시하십시오 .

중앙 리포지토리에 변경 사항을 적용하려면 먼저 로컬 리포지토리 에 커밋 해야하고 모든 커밋 (둘 이상)을 중앙 리포지토리 에 푸시해야 합니다.

사용자 로컬 저장소 작성

  • git init원하는 폴더에 리포지토리 생성
  • 끝난!

멋진 GUI를 사용하여 공개 공유 저장소 (현금을 지불하는 경우 개인)를 작성하십시오.

사용자 그룹은 다르지만 GUI는없는 많은 개인 / 공용 저장소를 크레이트하십시오.

  • 액세스 가능한 시스템에 비밀번호가없는 SSH 계정을 요청하십시오.
  • SSH 키로 인증을 수행하므로 걱정할 필요가 없습니다.
  • 이 튜토리얼 에 따라 Gitosis를 설치하십시오 .
  • 이제 단일 파일을 편집하고 저장소에 커밋하여 자체 git 서버를 관리 할 수 ​​있습니다!

Git에는 중앙 서버가 필요하지 않습니다 . 컴퓨터의 모든 폴더를 리포지토리로 사용할 수 있으므로 git을 사용하여 테스트하고 오프라인으로 테스트 할 수 있습니다. 하나의 저장소를 초기화하고 세 개의 다른 폴더에서 세 개의 협력자를 시뮬레이트 할 수 있습니다. 리포지토리의 복제 된 복사본이 커밋 할 수있는 모든 기능을 갖춘 리포지토리이기 때문입니다. 미국, 중국 또는 유럽 간 항공편을 이용하려는 경우에 좋습니다.


1
위에 답변을 썼으므로 Git을 선호하게되었습니다. Github을 좋아하지만 회사에 지적 재산을 제공하는 것을 주저하고 (및 / 또는 해당 권한을 지불 하려는 경우) Gitlab을 확인하십시오 .
Raphael

8

Google 문서 ( https://docs.google.com )는 문서를 함께 작성하는 데 유용한 도구 (실시간 편집 포함)를 제공합니다. 온라인으로 모든 것을 저장하고 Gmail 계정과 잘 통합됩니다. 기본적으로 Google 문서는 LaTeX와 호환되지 않지만 다음 위치에서 사용하도록 설정할 수 있습니다.

http://docs.latexlab.org/

롤백이 얼마나 잘 작동하는지 잘 모르겠지만 기능이 있다고 확신합니다. Google Wave의 LaTeX 플러그인을 사용하여 종이에 대한 예비 스케치를 수행하는 사람들이 있다고 들었습니다.


죄송하지만 경쟁 업체 실험실에서 새로운 발명품의 프로토 타입을 제작하는 것과 같습니다. Google 도구는 사용 편의성과 가용성이 뛰어나서 인기가 높으며 아마도 가장 좋은 선택이라고 생각합니다. 약간의 초기 노력을 기울여도 괜찮은 작업 환경을 설정하는 것은 그리 어렵지 않습니다. 나는 직장을 구하기 위해 방과 후 약 10 년을 보낸 사람들에게 너무 많은 시위가되어서는 안된다고 생각합니다.
Raphael

4
나는 구글과 경쟁하지 않는다. 그래서 나에게 그것은 가장 쉬운 도구를 사용하는 것처럼 보인다. 이것은 OP가 요구 한 요구 사항 중 하나 인 것처럼 보인다. 명령 행에서 실행되지 않는다고해서 반드시 나쁜 도구가되는 것은 아닙니다. 필요한 기능이 없으면 오픈 소스 프로젝트이므로 경험을 사용하여 추가 할 수 있습니다. 또한 개발 버전을 사용하는 경우 서버의 컴파일러 대신 로컬 LaTeX 컴파일러를 사용할 수도 있습니다.
Artem Kaznatcheev

나를 잘못 이해하지 마라, 나는 CLI 전용 사람이 아니다. 예를 들어 WYSIWYG를 싫어하지만 그래픽 편집기를 매우 좋아합니다. 사실 지구상에서 가장 큰 데이터 마이너가 제공하지 않는 대안이 있습니다. Google 컴퓨터 공학, 특히 머신 러닝 맛에 대한 연구를하기 때문에 '경쟁자'라는 용어를 사용했습니다 .
Raphael

7

공동 저자가 Mercurial을 배우게하고 Subversion을 배우도록했습니다. Subversion 팬이라면 이 글을 읽으십시오 .

어떤 시스템을 사용하든 가장 어려운 점은 상대방이 소프트웨어를 설치하고 사용하도록 시작하는 것입니다. Skype는 완벽한 솔루션입니다. 최신 버전의 Skype는 "데스크톱 공유"를 허용하여 설치 절차를 통해 공동 저자를 이끌 때 실제로 도움이됩니다. 그리고 Skype와 결합 된 데스크톱 공유를 사용하여 공동 저자와 함께 논문을 작성했습니다. 꽤 잘 작동합니다.

실제로 필요한 것은 "과학자들을위한 Github"입니다. 저장소를 제공하고, 버전 관리, 협업 편집 등을하는 것이 있습니다. http://www.scribtex.com/ 이 무엇인지 맞춰 보십시오 .


지금 공동 작업자와 설문 조사를 작성하기 위해 Github을 사용하고 있습니다. 충분히 편리하고 일반적으로 다른 섹션에서 작업하기 때문에 온라인 공동 작업 편집이 필요하지 않습니다.
Suresh Venkat

bitbucket은 개인 정보 보호와 함께 github의 장점을 제공합니다. 테스트 중입니다.
제레미

5

다음은 많은 과학적 글쓰기 요구 / 요구 사항을위한 원 스톱 상점으로 유망한 것으로 보이는 WriteLatex 라는 새로운 협업 온라인 라텍스 편집기 입니다.

  • 모바일에서 작동
  • 실시간 미리보기가 있습니다
  • 쉬운 / 개인 공유
  • 라텍스 오류를 찾습니다
  • 라텍스 라이브러리 / 스타일에 추가 가능
  • 클라우드 스토리지

공동 저자 인 존 해머 슬리 (John Hammersley)는 여기 에 tcs se meta로 공지 사항을 게시했으며 피드백에 반응합니다 (광고에 5 번 더 투표하면 기본 사이트에 표시됨). 그것은 시간이 지남에 따라 tcs 커뮤니티를위한 귀중한 도구로 발전 할 수있는 것처럼 보이며 아마도 저자는 요청에 따라 일부 인기있는 기능을 구현할 수있을 것입니다.


2

간단한 시스템, 솔루션은 어떻습니까?

의문의 여지가 없지만 때로는 그룹의 일부가 SVN과 같은 간단한 솔루션을 사용할 수있는 반면 그룹의 다른 부분은 GIT와 같은 분산 버전 제어가 가능한 상황이 있습니다. 이러한 상황에서는 협력이 가능합니다.


2

최근에 sharelatex.com을 발견 하고 공동 작업자와 함께 종이를 공동 작성했습니다. 나는 현재 계획이 모든 프로젝트에 사용하는 것을 너무 좋아했습니다. 몇 가지 주목할만한 기능 :

  • 실시간 브라우저 내 TeXing (Google Docs와 유사하지만 TeX, 구문 강조 표시 등)에 적합합니다.

  • 브라우저 내 컴파일 및 PDF보기

  • 여러 파일로 프로젝트 지원

  • 역사 기능이 있습니다

  • Dropbox와 동기화 (현재 베타 상태에서 공개적으로 출시 예정). 이렇게하면 백업 저장 등을 Dropbox로 오프로드 할 수 있습니다. Dropbox를 사용하여 파일을 공유 할 의사가있는 한, 공유 방법에 따라 공유 작성자가 원하지 않더라도 sharelatex를 사용할 수도 있습니다.

  • 언제든지 프로젝트를 다운로드 / 업로드 할 수 있으므로 문제가 발생하거나 마음이 바뀔 때 sharelatex를 사용하지 않아도됩니다.

유일한 단점 (그러나 가치가 있다고 생각합니다) : sharelatex를 사용하는 것은 무료이지만 그 기능 중 일부는 그렇지 않습니다. 특히 Dropbox 동기화 (해당 시점)를 사용하거나 6 개 이상의 공동 저자가 동일한 sharelatex 프로젝트에서 작업하려면 $ 8 / mo 를 지불해야 합니다. 또는 $ 80 / 년 [2013 년 4 월 기준]. Dropbox 동기화를 해제하면 나에게 매우 공평한 가격 인 것 같습니다.

[면책 조항 : 본인은 자신의 제품을 사용하는 것 외에 sharelatex 또는 그 직원과 아무런 관계가 없습니다.]


지금은 오픈 소스입니다! (그리고, fwiw에는 유사하지만 등록없이 빠른 재미를 위해 사용할 수있는 writelatex 도 있습니다.) 저는 지적 재산을 상업용 클라우드에 게시하지 않을 것입니다 (게시 될 때까지).
Raphael

-5

SVN은 이러한 목적으로 개발 된 도구입니다. 나는 그것을 배우려고 노력했다. algorithm2e Latex 패키지 또는 pdf 슬라이드 작성자 Latex 패키지 중 하나를 사용하는 것을 배우는 것보다 더 복잡하지 않습니다.

그렇게 말하면서 SVN 대신 CVS를 사용합니다. 우리 기관의 CS 관리자로부터 더 나은 지원이 제공됩니다 (SVN 서버는 더 사용자 관리됩니다). 또한 기본 버전 파일이 여전히 존재하고 매우 잘못되면 편집 할 수 있음을 알고 있습니다.

SVN과 비교할 때 두 가지 단점이 있습니다. 파일 이름 바꾸기는 좋지 않지만 그와 함께 살 수 있습니다 (처음 좋은 이름을 선택하십시오). 두 번째 문제는 리포지토리에 액세스하려면 로컬 CS 계정이 필요하다는 것입니다. 따라서 다른 기관에서 계정을 먼저 만든 경우에만 액세스 할 수 있습니다. 물론 나는 이것이 어디에서나 진짜 문제가 될 것으로 기대하지는 않는다. 현지 부서 구성원이 해당 계정을 후원 할 수 있습니다.

로컬 액세스 제한은 관리자가 pserver를 지원하지 않기 때문입니다. (보안 장치 등)


3
이것이 실제로 단계별 도움 요청에 대한 문제를 해결하지 못하고 나열된 장점과 단점의 대부분이 응답자의 가정 기관에 국한된 것으로 보이기 때문에 하향 조정됩니다.
David Eppstein
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.