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