\relax \@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{7}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {paragraph}{Every source tree a branch}{7}} \@writefile{toc}{\contentsline {paragraph}{Theory of patches}{7}} \@writefile{toc}{\contentsline {paragraph}{A simple advanced tool}{8}} \@writefile{toc}{\contentsline {paragraph}{Keeping track of changes rather than versions}{8}} \@writefile{toc}{\contentsline {section}{\numberline {1.1}Features}{9}} \@writefile{toc}{\contentsline {paragraph}{Record changes locally}{9}} \@writefile{toc}{\contentsline {paragraph}{Interactive records}{10}} \@writefile{toc}{\contentsline {paragraph}{Unrecord local changes}{10}} \@writefile{toc}{\contentsline {paragraph}{Interactive everything else}{10}} \@writefile{toc}{\contentsline {paragraph}{Test suites}{10}} \@writefile{toc}{\contentsline {paragraph}{Any old server}{10}} \@writefile{toc}{\contentsline {paragraph}{You decide write permissions}{10}} \@writefile{toc}{\contentsline {paragraph}{Symmetric repositories}{10}} \@writefile{toc}{\contentsline {paragraph}{CGI script}{11}} \@writefile{toc}{\contentsline {paragraph}{Portable}{11}} \@writefile{toc}{\contentsline {paragraph}{File and directory moves}{11}} \@writefile{toc}{\contentsline {paragraph}{Token replace}{11}} \@writefile{toc}{\contentsline {paragraph}{Configurable defaults}{11}} \@writefile{toc}{\contentsline {section}{\numberline {1.2}Switching from CVS}{11}} \@writefile{toc}{\contentsline {paragraph}{Darcs commands for CVS users}{11}} \@writefile{toc}{\contentsline {paragraph}{Migrating CVS repositories to darcs}{12}} \@writefile{toc}{\contentsline {section}{\numberline {1.3}Switching from arch}{12}} \@writefile{toc}{\contentsline {paragraph}{Darcs commands for arch users}{13}} \@writefile{toc}{\contentsline {paragraph}{Migrating arch repositories to darcs}{14}} \@writefile{toc}{\contentsline {chapter}{\numberline {2}Building darcs}{15}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {2.1}Prerequisites}{15}} \@writefile{toc}{\contentsline {section}{\numberline {2.2}Building on Mac\nobreakspace {}OS\nobreakspace {}X}{16}} \@writefile{toc}{\contentsline {section}{\numberline {2.3}Building on Microsoft Windows}{16}} \@writefile{toc}{\contentsline {section}{\numberline {2.4}Building from tarball}{16}} \@writefile{toc}{\contentsline {section}{\numberline {2.5}Building darcs from the repository}{17}} \@writefile{toc}{\contentsline {section}{\numberline {2.6}Submitting patches to darcs}{18}} \@writefile{toc}{\contentsline {chapter}{\numberline {3}Getting started}{19}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {3.1}Creating your repository}{19}} \@writefile{toc}{\contentsline {section}{\numberline {3.2}Making changes}{20}} \@writefile{toc}{\contentsline {section}{\numberline {3.3}Making your repository visible to others}{20}} \@writefile{toc}{\contentsline {section}{\numberline {3.4}Getting changes made to another repository}{21}} \@writefile{toc}{\contentsline {section}{\numberline {3.5}Moving patches from one repository to another}{21}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1}All pulls}{21}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2}Send and apply manually}{21}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.3}Push}{22}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.4}Push ---apply-as}{22}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.5}Sending signed patches by email}{23}} \@writefile{toc}{\contentsline {paragraph}{Security considerations}{23}} \@writefile{toc}{\contentsline {paragraph}{Installing necessary programs}{23}} \@writefile{toc}{\contentsline {paragraph}{Granting access to a repository}{24}} \@writefile{toc}{\contentsline {paragraph}{Setting up a sendable repository using procmail}{24}} \@writefile{toc}{\contentsline {paragraph}{Checking if your e-mail patch was applied}{25}} \@writefile{toc}{\contentsline {section}{\numberline {3.6}Reducing disk space usage}{26}} \newlabel{disk-usage}{{3.6}{26}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.6.1}Linking between repositories}{26}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.6.2}Alternate formats for the pristine tree}{26}} \@writefile{toc}{\contentsline {chapter}{\numberline {4}Configuring darcs}{29}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{configuring}{{4}{29}} \@writefile{toc}{\contentsline {section}{\numberline {4.1}prefs}{29}} \newlabel{defaults}{{4.1}{29}} \@writefile{toc}{\contentsline {paragraph}{defaults}{29}} \@writefile{toc}{\contentsline {paragraph}{repos}{31}} \newlabel{author_prefs}{{4.1}{31}} \@writefile{toc}{\contentsline {paragraph}{author}{31}} \newlabel{boring}{{4.1}{31}} \@writefile{toc}{\contentsline {paragraph}{boring}{31}} \@writefile{toc}{\contentsline {paragraph}{binaries}{31}} \@writefile{toc}{\contentsline {paragraph}{email}{32}} \@writefile{toc}{\contentsline {paragraph}{sources}{32}} \newlabel{motd}{{4.1}{32}} \@writefile{toc}{\contentsline {paragraph}{motd}{32}} \@writefile{toc}{\contentsline {section}{\numberline {4.2}Environment variables}{33}} \@writefile{toc}{\contentsline {section}{\numberline {4.3}General-purpose variables}{33}} \newlabel{env:DARCS_EDITOR}{{4.3}{33}} \@writefile{toc}{\contentsline {paragraph}{DARCS\_EDITOR}{33}} \newlabel{env:DARCS_PAGER}{{4.3}{33}} \@writefile{toc}{\contentsline {paragraph}{DARCS\_PAGER}{33}} \newlabel{env:DARCS_TMPDIR}{{4.3}{34}} \@writefile{toc}{\contentsline {paragraph}{DARCS\_TMPDIR}{34}} \newlabel{env:DARCS_KEEP_TMPDIR}{{4.3}{34}} \@writefile{toc}{\contentsline {paragraph}{DARCS\_KEEP\_TMPDIR}{34}} \newlabel{env:HOME}{{4.3}{34}} \@writefile{toc}{\contentsline {paragraph}{HOME}{34}} \newlabel{env:TERM}{{4.3}{34}} \@writefile{toc}{\contentsline {paragraph}{TERM}{34}} \@writefile{toc}{\contentsline {section}{\numberline {4.4}Remote repositories}{34}} \newlabel{env:SSH_PORT}{{4.4}{34}} \@writefile{toc}{\contentsline {paragraph}{SSH\_PORT}{34}} \newlabel{env:DARCS_SSH}{{4.4}{34}} \@writefile{toc}{\contentsline {paragraph}{DARCS\_SSH}{34}} \newlabel{env:DARCS_SCP}{{4.4}{34}} \newlabel{env:DARCS_SFTP}{{4.4}{34}} \@writefile{toc}{\contentsline {paragraph}{DARCS\_SCP and DARCS\_SFTP}{34}} \newlabel{env:DARCS_PROXYUSERPWD}{{4.4}{35}} \@writefile{toc}{\contentsline {paragraph}{DARCS\_PROXYUSERPWD}{35}} \newlabel{env:DARCS_X_FOO}{{4.4}{35}} \@writefile{toc}{\contentsline {paragraph}{DARCS\_GET\_FOO, DARCS\_MGET\_FOO and DARCS\_APPLY\_FOO}{35}} \newlabel{env:DARCS_MGETMAX}{{4.4}{35}} \@writefile{toc}{\contentsline {paragraph}{DARCS\_MGETMAX}{35}} \newlabel{env:DARCS_WGET}{{4.4}{35}} \@writefile{toc}{\contentsline {paragraph}{DARCS\_WGET}{35}} \@writefile{toc}{\contentsline {section}{\numberline {4.5}Highlighted output}{36}} \newlabel{env:DARCS_ALWAYS_COLOR}{{4.5}{36}} \newlabel{env:DARCS_DO_COLOR_LINES}{{4.5}{36}} \newlabel{env:DARCS_DONT_ESCAPE_white}{{4.5}{36}} \@writefile{toc}{\contentsline {section}{\numberline {4.6}Character escaping and non-ASCII character encodings}{36}} \newlabel{env:DARCS_DONT_ESCAPE_nonascii}{{4.6}{36}} \@writefile{toc}{\contentsline {chapter}{\numberline {5}Best practices}{39}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {5.1}Introduction}{39}} \@writefile{toc}{\contentsline {section}{\numberline {5.2}Creating patches}{39}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}Changes}{40}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}Keeping or discarding changes}{40}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}Unrecording changes}{40}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.4}Special patches and pending}{41}} \@writefile{toc}{\contentsline {section}{\numberline {5.3}Using patches}{42}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.1}Dependencies}{42}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.2}Branches: just normal repositories}{42}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.3}Moving patches around---no versions}{43}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.4}Tags---versions}{43}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.5}Conflicts}{44}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.6}Resolving conflicts}{45}} \@writefile{toc}{\contentsline {section}{\numberline {5.4}Use a Global Cache}{45}} \@writefile{toc}{\contentsline {section}{\numberline {5.5}Distributed development with one primary developer}{45}} \newlabel{darcs-development-practices}{{5.5}{45}} \@writefile{toc}{\contentsline {section}{\numberline {5.6}Development by a small group of developers in one office}{46}} \newlabel{dft-development-practices}{{5.6}{46}} \@writefile{toc}{\contentsline {section}{\numberline {5.7}Personal development}{47}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.7.1}Private patches}{47}} \@writefile{toc}{\contentsline {chapter}{\numberline {6}Repository formats}{51}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {6.1}Introduction}{51}} \@writefile{toc}{\contentsline {section}{\numberline {6.2}Darcs 1 format}{51}} \@writefile{toc}{\contentsline {section}{\numberline {6.3}Hashed format}{51}} \@writefile{toc}{\contentsline {section}{\numberline {6.4}Darcs 2 format}{52}} \@writefile{toc}{\contentsline {chapter}{\numberline {7}Darcs commands}{55}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {paragraph}{Command overview}{55}} \@writefile{toc}{\contentsline {section}{\numberline {7.1}Common options to darcs commands}{56}} \newlabel{selecting}{{7.1}{57}} \@writefile{toc}{\contentsline {paragraph}{Selecting patches}{57}} \@writefile{toc}{\contentsline {paragraph}{Match}{58}} \newlabel{env:DARCS_EMAIL}{{7.1}{60}} \newlabel{resolution}{{7.1}{61}} \@writefile{toc}{\contentsline {paragraph}{Resolution of conflicts}{61}} \newlabel{env:SENDMAIL}{{7.1}{63}} \@writefile{toc}{\contentsline {section}{\numberline {7.2}Options apart from darcs commands}{64}} \@writefile{toc}{\contentsline {section}{\numberline {7.3}Getting help}{65}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.3.1}darcs help}{65}} \newlabel{help}{{7.3.1}{65}} \@writefile{toc}{\contentsline {section}{\numberline {7.4}Creating repositories}{65}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.4.1}darcs initialize}{65}} \newlabel{initialize}{{7.4.1}{65}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.4.2}darcs get}{66}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.4.3}darcs put}{67}} \@writefile{toc}{\contentsline {section}{\numberline {7.5}Modifying the contents of a repository}{68}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.5.1}darcs add}{68}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.5.2}darcs remove}{69}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.5.3}darcs mv}{69}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.5.4}darcs replace}{70}} \@writefile{toc}{\contentsline {section}{\numberline {7.6}Working with changes}{71}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.6.1}darcs record}{71}} \newlabel{record}{{7.6.1}{71}} \newlabel{DARCS_EDITOR}{{7.6.1}{72}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.6.2}darcs pull}{74}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.6.3}darcs push}{77}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.6.4}darcs send}{79}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.6.5}darcs apply}{83}} \@writefile{toc}{\contentsline {section}{\numberline {7.7}Seeing what you've done}{86}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.7.1}darcs whatsnew}{86}} \newlabel{whatsnew}{{7.7.1}{86}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.7.2}darcs changes}{86}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.7.3}darcs show}{88}} \@writefile{toc}{\contentsline {subsubsection}{darcs show authors}{88}} \@writefile{toc}{\contentsline {subsubsection}{darcs show contents}{88}} \@writefile{toc}{\contentsline {subsubsection}{darcs show files}{88}} \newlabel{show-files}{{7.7.3}{88}} \@writefile{toc}{\contentsline {subsubsection}{darcs show tags}{89}} \@writefile{toc}{\contentsline {subsubsection}{darcs show repo}{89}} \@writefile{toc}{\contentsline {section}{\numberline {7.8}More advanced commands}{90}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.8.1}darcs tag}{90}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.8.2}darcs setpref}{91}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.8.3}darcs check}{91}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.8.4}darcs optimize}{92}} \@writefile{toc}{\contentsline {section}{\numberline {7.9}Undoing, redoing and running in circles}{93}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.9.1}darcs amend-record}{93}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.9.2}darcs rollback}{95}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.9.3}darcs unrecord}{96}} \newlabel{unrecord}{{7.9.3}{96}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.9.4}darcs obliterate}{97}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.9.5}darcs revert}{99}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.9.6}darcs unrevert}{99}} \newlabel{unrevert}{{7.9.6}{99}} \@writefile{toc}{\contentsline {section}{\numberline {7.10}Advanced examination of the repository}{100}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.10.1}darcs diff}{100}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.10.2}darcs annotate}{101}} \newlabel{annotate}{{7.10.2}{101}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.10.3}darcs show}{103}} \@writefile{toc}{\contentsline {subsubsection}{darcs show authors}{103}} \@writefile{toc}{\contentsline {subsubsection}{darcs show contents}{103}} \@writefile{toc}{\contentsline {subsubsection}{darcs show files}{103}} \newlabel{show-files}{{7.10.3}{103}} \@writefile{toc}{\contentsline {subsubsection}{darcs show tags}{104}} \@writefile{toc}{\contentsline {subsubsection}{darcs show repo}{104}} \@writefile{toc}{\contentsline {section}{\numberline {7.11}Rarely needed and obscure commands}{105}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.11.1}darcs convert}{105}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.11.2}darcs mark-conflicts}{105}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.11.3}darcs dist}{106}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.11.4}darcs trackdown}{106}} \@writefile{toc}{\contentsline {subsubsection}{Example usage}{107}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.11.5}darcs repair}{107}} \@writefile{toc}{\contentsline {chapter}{\numberline {A}Theory of patches}{109}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{Patch}{{A}{109}} \@writefile{toc}{\contentsline {section}{\numberline {A.1}Background}{109}} \@writefile{toc}{\contentsline {section}{\numberline {A.2}Introduction}{109}} \@writefile{toc}{\contentsline {section}{\numberline {A.3}Applying patches}{110}} \@writefile{toc}{\contentsline {subsection}{\numberline {A.3.1}Hunk patches}{110}} \@writefile{toc}{\contentsline {subsection}{\numberline {A.3.2}Token replace patches}{110}} \newlabel{token_replace}{{A.3.2}{110}} \@writefile{toc}{\contentsline {section}{\numberline {A.4}Patch relationships}{111}} \@writefile{toc}{\contentsline {section}{\numberline {A.5}Commuting patches}{111}} \@writefile{toc}{\contentsline {subsection}{\numberline {A.5.1}Composite patches}{111}} \@writefile{toc}{\contentsline {paragraph}{Merge}{112}} \newlabel{merge_dfn}{{3}{112}} \@writefile{toc}{\contentsline {subsection}{\numberline {A.5.2}How merges are actually performed}{113}} \newlabel{merge_thm}{{2}{113}} \@writefile{toc}{\contentsline {section}{\numberline {A.6}Conflicts}{115}} \@writefile{toc}{\contentsline {section}{\numberline {A.7}Patch string formatting}{116}} \@writefile{toc}{\contentsline {paragraph}{Merger patches}{116}} \@writefile{toc}{\contentsline {paragraph}{Named patches}{116}} \@writefile{toc}{\contentsline {chapter}{\numberline {B}DarcsRepo format}{117}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{repository_format}{{B}{117}} \@writefile{toc}{\contentsline {chapter}{\numberline {C}The GNU General Public License}{119}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{gpl}{{C}{119}} \@writefile{toc}{\contentsline {section}{\numberline {C.1}Appendix: How to Apply These Terms to Your New Programs}{125}}