On 17/08/2010 22:27, Ganesh Sittampalam wrote:
Hi,

I'd like to announce a first preview release of a new 'rebase' feature
for darcs.

As a first preview, it comes with the obvious caveats about eating your
repository etc etc.

I intend to keep his feature on a branch for quite a while, in part so
that I can "dogfood" it to keep the branch up to date, and in part to
avoid it ending up in a release before it's ready.

Please see http://wiki.darcs.net/Ideas/RebaseStatus for instructions on
download and use.

Please do send as much feedback as you can. There's lots I know I need
to do, but also a lot of uncertainty around how the UI should behave.

I just tried this out, using a local branch of GHC with a sequence of 9 fairly large local patches, which was a couple of months behind the main trunk. I had about 500 patches to pull, of which a sequence of 12 were in conflict with my local changes.

Overall, it went very smoothly - I completed the merge in less than an hour, and all the conflicts I was presented with looked reasonable. 'darcs check' after the merge succeeded. So this is great! There's no way I could have completed this merge without rebase. However, the workflow has some unnecessary steps and I think could be cleaned up a bit, which would make things even smoother; various points I noted along the way are below.

---

I have 'pull --skip-conflicts' in my ~/.darcs/defaults, and this seems to apply to 'darcs rebase pull' too, which it probably shouldn't (I'd like to specify defaults for rebase pull separately).

This one would have helped me most: as far as I can tell 'rebase unsuspend' doesn't understand --skip-conflicts: it would be really useful if it did, so that I could amend-record the conflicting patch and then unsuspend all the remaining non-conflicting patches. I suppose what I really want is '--one-conflict', which would unsuspend all the non-conflicting patches and at most one conflicting patch (I like to deal with conflicts one at a time, my brain can't cope with any more).

The conflict markers are substantially less than helpful, but we knew this already. What would make it much easier is to have a simple way to show the 3 versions (or original + 2 diffs) in each conflict, clearly annotated with which is which.

The message "The following local patches are in conflict:" is printed even if there are no local patches in conflict.

What happens if you don't say 'y' to suspend all the patches that you are presented with, during 'darcs rebase pull'? Would it be possible to recover from doing that by accident?

The patches to suspend seem to be presented in reverse order: if I unsuspend I get them in the other order.

'rebase pull' is a bit slow: about 15s to completion after asking which patches to suspend.

Cheers,
        Simon
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to