[darcs-users] Fwd: Towards a conflict-free revision control system.
Ian Lynagh
igloo at earth.li
Wed Feb 11 22:17:12 UTC 2009
On Wed, Feb 11, 2009 at 09:43:58PM +0000, Simon Marlow wrote:
> Ian Lynagh wrote:
>
> >And what should it mean to cherry pick a patch without one of its
> >dependencies? You get a patch that you can't apply?
>
> Imagine cherry picking the patch with its dependencies, and then pulling
> in the inverse of the dependencies too. That will result in a conflict,
> but in exactly the places you want: the places where the cherry-picked
> patch depends on a patch that you didn't want to pull. Then you record
> a conflict resolution patch.
>
> If this could be made to work, I think it would be a killer feature.
So if we start with the repo
{A} (A is a megapatch)
and someone else has
{A, B, C}
(where C depends on B) and we want C but not B, then I was suggesting we
"force-pull" C, leaving us with
{A}
and unrecorded changes of C, plus the primitive patches in B that C
depends on.
I think you are proposing that we end up with
{A, B, C, B^} (X^ means X inverse)
and unrecorded changes marking the conflicts between B^ and C? That
would also work, but personally I find it less pleasant. Mostly this is
not for any good reason, although it does have the disadvantage that you
can't easily later decide to pull B after all. On the flipside, it does
mean that our repo knows that it contains C, which I means that we'll be
able to pull in some patches that depend on C but don't conflict with
the B^ patch.
There's no reason we couldn't have both options available, of course.
Thanks
Ian
More information about the darcs-users
mailing list