Michael Hendricks wrote:
>    - suspend and unsuspend
> [...]
>       - need a way to list suspended patches (darcs changes --suspended?)

Yes.

>    - pull
>       - should be "darcs pull --suspend-conflicts"
>       - even better would be "darcs pull
>       --conflicts={mark,allow,disallow,skip,suspend-ours,suspend-theirs}"

Yes, that would be a very good UI, IMO.

>    - obliterate
>       - should be "darcs obliterate --suspended"?

Yes.

>    - rebase command is superfluous UI
>       - as mentioned above, most subcommands belong elsewhere
>       - Darcs already has UI for accomplishing the same goals as
>       Git/Mercurial rebase, no new UI needed except perhaps interactive
>       rebase for performing bulk history-edit operations

I agree completely. I'd go even further and say /most/ uses of git/hg rebase 
map to "darcs null" (i.e. no need to do anything) or maybe "darcs optimize 
--reorder-patches". It is only when the operation violates dependency order 
that darcs actually has to do anything.

> Users coming from Git or Mercurial are likely to think of rebase in the
> following use cases:
> 
>    - moving patches from one branch to another (the original Git use case)
>       - "darcs push --obliterate" could remove the pushed patches from the
>       local repo on success

Interesting. Never missed this one before, but might come in handy 
sometimes.

>    - rewording commit messages, changing author, changing date, etc
>       - amend-record does this, it's just not smart enough yet
>       - rewording a patch needs no commute operations
>       - dependencies should never prevent a reword operation
>       - rewording a buried darcs patch only modifies other patches if
>       there are "record --ask-deps" dependencies (which appear easy to
>       adjust automatically)

No, no, no! This is not possible, changing the meta data will change the 
patch identity of an arbitrary number of other patches! I definitely want to 
have this disabled by default. Note that currently amend-record does not 
mutate any patches other than the one I have explicitly chosen.

I'd say that even the existing version of amend-record would be improved by 
issuing a warning (with a request for confirmation) if I change a patch that 
is also present in the default-repo.

"Warning: This operation modifies a patch the exists in the default remote 
repo. Are you sure? [yN]"

>    - combining arbitrary, adjacent patches
>       - Darcs internals call this coalesce, but we have no UI for it
>       - current amend-record is a special case of this, applied to only
>       the top two patches

To clarify: no, amend-record works fine for all patches that have no 
dependents yet.

>       - maybe a new darcs command (combine,coalesce,squash)?

Yes.

>    - splitting a single patch into multiple, adjacent patches
>       - conceptually similar to combining patches
>       - maybe a new darcs command (split, uncombine, uncoalesce)?

I like the split/squash pair. Short and concise.

> In most of the above use cases, suspend/unsuspend is only needed as a last
> attempt when normal commute/coalesce operations fail.  With some
> adjustments, such failures should be relatively rare.

Yes.

Cheers
Ben

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

Reply via email to