DokuWiki

It's better when it's simple

사용자 도구

사이트 도구


ko:darcs

DokuWiki darcs 저장소

The DokuWiki 소스는 Darcs 1)를 통해 관리되고 있습니다.

Darcs는 CVS의 대체품입니다. Dars는 오늘날 분산 소프트웨어 프로젝트의 필요성을 만족시키기 위한 강력한 접근방법을 가지고 있으면서도 배우고 사용하기에 간편합니다. 분산형을 특징으로한 Dars는 양자 기계학에서 출발한 “patches 이론”에 기반을 두고 있습니다. Dars는 GPL 라이센스 아래의 프리 소프트웨어입니다.

darcs 사용법

똑같은 내용을 반복해서 언급하는 대신에 몇가지 안내 문서들을 소개합니다:

DokuWiki 설치를 위해 dars 사용하기

현 DokuWiki개발 버전을 가져오려면 다음 명령을 사용합니다.(dokuWiki디렉토리를 자동으로 만듭니다.*):

darcs get --partial http://dev.splitbrain.org/darcs/dokuwiki

이미 있는 checkout을 업데이트하기 위해 dokuwiki디렉토리 안에서 다음 명령을 사용합니다:

darcs pull

만일 소스를 변경한 후 공식 배포판에 변경 내용이 포함되기를 원한다면 patch들을 다음 명령으로 보내기 바랍니다:

darcs record
darcs send

Darcs 초보자

dars는 처음 사용하지만 cvs에는 익숙합니다. dars 사용 경험을 설명합니다.

몇 시간동안 여러가지를 읽어보고 약간 다뤄보면서, dars는 시작하기 아주 쉽다는 느낌을 받았습니다. 그럭저럭 약간의 수정을 해보고, 변경 내용을 기록하고 Andi가 사용할 준비가 된 patch 파일을 만들어 보았습니다.

위 Andi의 노트에 한가지를 덧붙이자면, 아래 두 명령들 사이에서;

$> darcs pull
$> darcs send

일단 여러 변경들을 가한 후(많은 파일들을 수정), 변화들을 “commit”하기 위해 다음 명령을 실행합니다:

$> darcs record

CVS와 달리 이 시점에서 어떤 곳으로도 파일들을 실제로 전송하지 않습니다. 복사본에 대한 “local tag”에 가깝습니다. 그렇지 않다면 지금 dars가 내컴퓨터의 메일 설정 관련하여 투덜거렸을 것입니다. 아래처럼 다른 방법을 쓴다면;

 $> darcs send -o my_doku_patch_file

… 그리고 나서 수동으로 이메일로 패치(my_doku_patch_file)를 전송합니다.

어찌되었든 지금껏 보아왔던 것과 비슷합니다. 가장 아래 줄은 생각할 필요가 없어 보입니다. dars가 개념적으로 어떤 것인지에 좀 더 신경을 쓰는게 낫습니다. 그냥 사용해 보면 이해가 될 겁니다.

dars는 비슷한 모델이 Wiki에도 적용 가능하다는 점에서 또 한번 놀라게 합니다. - 단일 서버에 의해 문서들이 “소유”되지 않는 일종의 분산형 위키 시스템

팁과 트릭

  • 만일 dars가 -o옵션을 사용해서 email을 보낼 수 없다면 만들어진 파일을 일반적인 메일을 사용하여 보낼 수 있습니다:
darcs send -o mypatch.patch
  • “dars send”를 사용하여 패치를 보낸 후, amend-record명령을 절대 사용하지 말기 바랍니다. 이것은 아마 혼란을 만들어 내기 쉽상입니다! 대신 새로운 수정 후 또 다른 패치를 만들도록 하기 바랍니다.
  • 혼란을 방지하기 위해, 새로운 패치에 대한 작업 전에 언제나 pull을 사용합니다.
  • 에디터가 개행문자를 변경하지 않도록 하기 바랍니다,(예를 들어 UNIX LF 개행문자를 도스 CRLF 개행문자로) 이 것은 각 행이 바뀌었기 때문에 작은 패치가 되는 대신 완전히 파일 변경을 야기하게 됩니다.
  • dars 저장소(repository)를 위한 웹 인터페이스 화면은

http://dev.splitbrain.org/darcsweb/darcsweb.cgi?r=dokuwiki;a=summary에서 가능합니다.

공식 tree와 자신만의 패치를 같이 사용하기

각 checkout는 자신만의 repository이므로 사람들은 자신의 수정을 패치로 유지할 수 있으며 “master repository”에서 업데이트도 가능합니다.

그렇다면 어떻게 이것이 실제로 동작할까요? dars는 마법을 부리는게 아닙니다, 만일 local repository에서 뭔가 수정을 한다면 같은 것이 “master repository”에서도 수정됩니다. 어떤 RCS도 이렇게 할 수 없기 때문에 아마 혼란스러울 수도 있습니다.

어찌되었든 주 버전에서 touch되지 않는 사소한 수정을 가해도 dars는 단지 패치들만 적용하기 때문에 공식 repository에서 업데이트할 때 문제가 없습니다. dars가 패치를 적용하기 위한 충분한 정보를 찾는 한 잘 동작합니다.

예를 들어, 만일 어떤 HTML코드를 html.php의 함수 중 하나에 추가한다면 간단히 dars pull를 실행하여 공식적인 패치를 적용할 수도 있습니다.

dars로 안정화 버전 유지하기

darcs는 단지 DokuWiki 개발자를 위한 것이 아닙니다, dars는 마지막 안정화 버전을 가져오기 위해 쓰일 수도 있으며 공식적으로 발표될 때 다음 안정화 버전을 위해 업데이트하기 위해 사용될 수 있습니다.

특정 DokuWiki 배포판을 가져오려면 (yyyy-mm-dd를 배포날짜로 바꿉니다. 예를 들어 2006-11-06)

darcs get --tag "release yyyy-mm-dd" http://dev.splitbrain.org/darcs/dokuwiki

새로운 버전이나 후보 버전으로 업데이트 하려면

darcs pull --tags "release yyyy-mm-dd" --all --quiet
darcs pull --tags "release candidate yyyy-mm-dd" --all --quiet

–all –quiet는 모든 패치가 적용된 것을 특별한 메시지 없이 확실히 가져오도록 해줍니다.

커스터마이즈된 DokuWiki를 업데이트하기

만일 DokuWiki의 내부 코드들에 수정을 했다면, –all –quiet를 사용하지 않고 각 패치를 따로 따로 받는 것이 낫습니다. e.g.

darcs pull --tags "release yyyy-mm-dd"
darcs pull --tags "release candidate yyyy-mm-dd"

패치 과정 마지막에 DokuWiki는 변경과 새로운 버전을 만들기 위해 적용된 패치들 사이에서 충돌이 있는지 알 수 있도록 해줍니다. 그 후, 문제가 되는 파일들을 검사하고 필요한 수정을 하도록 합니다. DokuWiki에 적용한 수정 기록을 유지하도록 다음 명령을 사용할 수 있습니다.

darcs whatsnew

대화식으로 실행될 때 복구 명령도 비슷하게 사용됩니다. 만일 더 이상 필요하지 않게 되면 수정했던 것을 제거할 기회를 줍니다.

왜 Darcs을 사용하는가?

CVS, Subversion, arch 대신에 Dars를 선택했는가?

개인적으로 생각하기에, Darcs는 몇가지 장점이 있습니다:

  • 누구나 읽기 위해서 사용할 때 특별한 서버가 필요없습니다. – 단지 HTTP서버로도 충분합니다.
  • 디렉토리를 관리할 수 있습니다.(svn, arch도 지원)
  • 완전히 분산 시스템이며, 각 checkout는 자신만의 repository에 있습니다. ( arch도 동일)
  • 복잡한 명명규칙이 필요없습니다. (arch도 동일)
  • 독립적인 patchset들 (아래 참조)
  • 기여를 하거나 and 기여한 내용을 쉽게 적용할 수 있습니다. (darcs send통해)

몇가지 단점도 있습니다.

  • 때때로 약간 버그가 있어 보입니다. (그다지 치명적이지는 않습니다.)
  • 상대적으로 지명도가 낮습니다.

가장 좋아하는 것은 patcheset들입니다. 각 checkout은 자신의 repository이므로 사람들은 자신의 수정들을 patchset들로 유지할 수 있으며 심지어 “master repository”에서 업데이트도 할 수 있습니다, 짧은 설명을 보려면 위 섹션을 참고하기 바랍니다.

번역

english version: dokuwiki-2006-11-06.

Add your email here if you created translated or modified whole or part of this page.

  • jk Lee - real mail domain is gmail, not zoo.com for spam filtering 2007-2-9 created
1)
David's advanced revision control system
ko/darcs.txt · 마지막으로 수정됨: 2007-02-09 13:19 저자 bootmeta

별도로 명시하지 않을 경우, 이 위키의 내용은 다음 라이선스에 따라 사용할 수 있습니다: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki