[darcs-users] some special amend-records

Sebastian Fischer mail at sebfisch.de
Fri Apr 19 10:07:49 UTC 2013


Hi Ganesh and David,

I'll restrict my response to a subset of what we discussed because I
have a simpler change in mind that might be sufficient for factis, at
least initially.

> Yep - in Darcs as it is now, system dependencies indeed about automatically
> and user dependencies can be added with the --ask-deps flag to
> record/amend-record.

I notice that Darcs distinguishes "implicit" and "explicit"
dependencies. However, implicit dependencies are not (always) what I
meant by system dependencies. I have made a wiki page on "essential"
dependencies that (hopefully) clarifies the difference:

    http://darcs.net/Ideas/EssentialDependencies

As far as I can tell, implicit and explicit dependencies have the same
effect in Darcs. Originally, I envisioned system and user dependencies
to have different effects but my new proposal just uses implicit and
explicit dependencies to achieve a similar goal.

> As I understand factis' requirements, they are
>
> (a) they have large patches in the history of their repo which they would
> like to replace with a number of smaller ones that add up to the same patch,
> and be able to propagate that replacement around easily.
>
> and (I think less importantly)
>
> (b) introduce some concept of groups of patches which can be continuously
> updated as new work is done on features
>
> Broadly I think (a) can be implemented either by "changeset abstraction" or
> "changeset evolution" whereas (b) can only be implemented by "changeset
> abstraction".
>
> I suspect changeset evolution is easier to implement. However it would still
> require a repository format upgrade of some form (as the evoluton patches
> wouldn't be backwards compatible). I can't think of anything that would be
> much simpler and still achieve goal (a).

The new wiki page proposes a new flag for darcs record that allows to
automatically split recorded patches into unrelated sets of changes
and grouping them using empty patches. I think this reduces the need
to retroactively splitting patches (it would still be impossible - but
hopefully necessary less frequently - to modify implicit
dependencies.)

What do you think of the new proposal? On the wiki page I make some
assumtions (search for the word "presumably"). Are they accurate?

Best regards,
Sebastian


More information about the darcs-users mailing list