This page is about making the "svn mergeinfo" command give a useful and user-friendly summary of the state of merging between two specified branches.

Tracked in issue #4239 "'svn mergeinfo' should show a user-friendly summary".

Compared with the 1.7 “svn mergeinfo” command, we need to:

Mark Phippard said, and I agree with this: "It will be interesting to see if you can show both eligible and merged information at the same time in a way that is understandable. I think if the command can show some things like there the branch came from, or the other path that the branch is merging with, could be useful new information. Sort of like svn info for a branch. I think it makes sense to highly condense the revisions as they are never going to add a lot of value in this kind of context."

Current Goals

Examples

Error Conditions

Subtree Mergeinfo

Mergeinfo should be depth-infinity ("recursive") by default, reporting any sub-tree differences, where presently it does not.

How should the output look in the presence of subtree merges?

$ svn mergeinfo
...

Functional & UI Changes

Where

Requirement or Change

Effort

Status

svn mergeinfo

Bail out if source & target are not different and related branches.

Done

svn mergeinfo

Display a summary when no "--show-revs=" option (any sort of summary).

Done

summary

Summary in the form of a diagram (graph).

Done

summary

Show common origin of branches.

Done

summary

Show latest full merge (revnum and direction). Initially, this only shows the "from" revnum; showing the "to" revnum is a separate requirement.

Done

summary

Show latest full merge in the other direction as well. Should be straightforward to extend the find_symmetric_merge set of functions to report both "base on source" and "base on target", and use them to mark the beginning of the two merge arrows. Of course, omit the arrow if there was no merge.

day

summary

Show the revnum of the "to" end of each merge arrow, as well as the "from" end. This info is not so easy to obtain. The find_reintegrate_merge set of functions will need to scan the branch history for mergeinfo changes and find the first revision in which all the source revs

week

summary

Show cherry-picks: shows whether there are any cherry-picks, in each direction, since the last full merge in the respective direction; and if so, indicates their revision number range(s) compactly.

week

summary

Given a WC target, notice local mods (uncommitted merginfo).

day

summary

Indicate whether subtree info is being shown: at least, indicate if there might be relevant subtree mergeinfo that is not shown.

week

summary

Show subtree info when depth > empty.

month

summary

Abbreviate the branch path to just the branch name, somehow, and/or rearrange layout moving it to a separate line, so that a moderately long branch name does not overflow 80 columns.

day

summary

Indicate how many changes there are on each branch since the last merge. This would help a user to confirm what they're expecting, and/or evaluate whether a branch is in need of a catch-up merge.

days?

summary

Show the last changed revision on each branch (in addition to the head or specified tip revision, probably).

day

--show-revs

Show-revs mode with depth=infinity understandable & documented (in help).

week?

Questions

...

MergeinfoCommand (last edited 2013-02-13 16:26:03 by JulianFoad)