[darcs-users] Darcs equivalent of force-pushing and branching

Stephen J. Turnbull stephenjturnbull at gmail.com
Fri Sep 10 11:19:34 UTC 2021


James Cook writes:

 > For short-lived branches, I just use one clone per branch. I think this
 > should work well for long-lived branches too, but I haven't tried.

What's nice about the git storage model is that you can have a
"warehouse" repository with dozens of more or less active branches in
it, and two or three workspaces (which can even share the commit and
content storage of the warehouse, and the warehouse may not even have
a workspace).  I've never wanted more than 3 workspaces, but when
doing release management stuff I've sometimes had as many as 10 active
branches I'm worried about in one session.

git's storage model makes these workflows fast.  Also, in the release
manager workflow, I often didn't need file content as such, I needed
diffs and merges, and the storage model makes it possible to diff and
merge across branches without a checkout (of course for merges the
target branch was always checked out, but in theory it didn't need to
be!)

All of this is obviously quite possible with Darcs.  The problem is
getting the "accounting" right when separating the management of
*sets* of patches from the management of *histories*.  IIRC, in Darcs
the history is in the patches, which means a bit of tedious surgery on
data structures needs to be done.


More information about the darcs-users mailing list