darcs push로 공개 서버에 전송하면 됩니다.darcs send). 프로젝트 유지관리자는 패치를 수락할지 거부할지 결정할 수 있습니다. 이렇게 하면 커밋 권한 없이도 기여할 수 있습니다.darcs pull로 가져와 충돌을 해결하면 됩니다. 이렇게 하면 포크를 최신 상태로 유지할 수 있습니다.darcs pull과 darcs push 같은 다른 명령도 동일하게 동작합니다.버전 관리 시스템에서 브랜칭은 메인 라인의 작업을 방해하지 않고 병렬 작업을 가능하게 합니다. Git이나 Mercurial 같은 분산 시스템에서는 브랜치를 명시적으로 생성하고 병합합니다(branch, merge).
Darcs에서는 별도의 저장소에서 작업하든 아니든, 어떤 패치(들의 묶음)이든 하나의 브랜치로 간주할 수 있습니다.
예를 들어 버그 추적 시스템에 있는 ‘123’번 티켓을 처리하는 작업을 하고 있다고 합시다. 이 티켓을 해결하려면 서로 관련된 3개의 별도 패치를 만들어야 합니다. 해당 패치들의 ‘record’ 이름을 다음과 같이 붙일 수 있습니다:
RT#123 문서 업데이트
RT#123 버그 수정
RT#123 버그 제대로 수정
여기서 일관되고 고유한 이름은 이 패치 묶음을 즉흥적인 브랜치로 간주하게 해줍니다. darcs에는 이 패치 집합을 아주 쉽게 다룰 수 있는 다양한 옵션이 있습니다:
# 이 브랜치를 중앙 저장소로 병합:
$ darcs push -p 'RT#123'
# 이 브랜치만 운영 복사본에 반영
$ darcs pull -p 'RT#123'
# 이 브랜치를 원격 저장소로 메일 전송
$ darcs send -p 'RT#123'
# 이 브랜치에 포함된 패치 검토
$ darcs log -p 'RT#123'
이는 사용하기 매우 쉽고 강력한 기능으로, 전달해야 하는 변경의 순서가 실제로 작업을 시작할 수 있는 순서와 다를 때 특히 유용합니다.