Difference between revisions of "Darcs"

From HaskellWiki
Jump to navigation Jump to search
Line 42: Line 42:
 
*<tt>darcs changes</tt>: show patches
 
*<tt>darcs changes</tt>: show patches
   
*<tt>darcs pull</tt>: get patches from another repository
+
*<tt>darcs pull</tt>: add patches from another repository
   
*<tt>darcs push</tt>: put patches in another repository
+
*<tt>darcs push</tt>: add patches from this repository to another repository
   
*<tt>darcs apply</tt>: get patches from an email bundle
+
*<tt>darcs apply</tt>: add patches from an email bundle
   
 
*<tt>darcs rollback</tt>: adds a patch that is the inverse of an existing patch
 
*<tt>darcs rollback</tt>: adds a patch that is the inverse of an existing patch

Revision as of 03:14, 21 August 2006

darcs is a peer-to-peer revision control system, written in Haskell.

Understanding darcs

You can think of a darcs repository as containing these things:

  • Patches: a patch is a collection of changes that forms the unit of synchronisation with other repositories
  • Unrecorded changes to known files and directories
  • Unknown items (files and directories)
  • Boring items: anything with a name matched in _darcs/prefs/boring

Note that some projects are keen on making sure all derivative items are "boring" rather than merely unknown items that will show up with darcs wh -l. Other projects less so.

Operations

Unknown items

  • darcs whatsnew -l: show changes and unknown items
  • creating a item: these will be "unknown".
  • darcs add: turns an unknown item into a change
  • darcs remove: creates an change to remove the item but keeps it as an unknown item.

Changes

  • darcs whatsnew: show unrecorded changes
  • removing an item: creates a change to remove the item
  • editing a file adds to the edit to the changes
  • darcs mv: create a change to move an item
  • darcs replace: create a change to replace text in a file
  • darcs record: record changes as a patch

Patches

  • darcs changes: show patches
  • darcs pull: add patches from another repository
  • darcs push: add patches from this repository to another repository
  • darcs apply: add patches from an email bundle
  • darcs rollback: adds a patch that is the inverse of an existing patch
  • darcs obliterate: removes a patch. Warning: if the patch doesn't exist elsewhere, you will lose that work.

Repositories

  • darcs initialize: create a new empty repository
  • darcs get: create a new empty repository and get patches from another repository

External link