Re: Darcs equivalent of force-pushing and branching
James Cook <[email protected]> Mon, 13 Sep 2021 20:17:56 +0000
| Newsgroups | gmane.comp.version-control.darcs.user |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Sep 10, 2021 at 08:19:29PM +0900, Stephen J. Turnbull wrote: > 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!) I've used git with multiple working directories, and it is nice. darcs uses hard links to save space, so having multiple clones should be relatively cheap. I only make light use of branches / work dirs / extra clones, but so far I have no complaints about using Darcs and just having one clone per workdir or branch. I don't know a nice command for diffing "branches" if the branches are Darcs repos, though. I guess I would use "diff -r" and filter out anything under _darcs. > 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. I'm not sure what you mean by "histories" as distinct from "sets of patches". Shouldn't a branch just be a set of patches? -- James