id summary reporter owner description type status priority milestone component version severity resolution keywords cc branch changelog apichanges internalchanges 12549 Provide option for blame to use merged history Ryan J Ollos "`svn blame` has the `-g` option: {{{ -g [--use-merge-history] : use/display additional information from merge history }}} This can be useful for finding the changeset in which a line was changed, which is often more useful than the line in which the change was merged. For example, line 47 of [/browser/trunk/trac/core.py?rev=14978&annotate=blame] shows [13672], however that's a merge changeset and [13671] may be more interesting. `svn blame -g trac/core.py` on the trunk yields: {{{ G 13671 rjollos super(TracError, self).__init__(message) }}} while `svn blame trac/core.py` yields: {{{ 13672 rjollos super(TracError, self).__init__(message) }}} It looks like we could use `blame4` or `blame5` of `svn.client`, rather than [browser:trunk/tracopt/versioncontrol/svn/svn_fs.py@15012:865-866#L846 blame2]: {{{ svn_client_blame4(*args) svn_client_blame4(char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t start, svn_opt_revision_t end, svn_diff_file_options_t const * diff_options, svn_boolean_t ignore_mime_type, svn_boolean_t include_merged_revisions, svn_client_blame_receiver2_t receiver, void * receiver_baton, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t svn_client_blame5(*args) svn_client_blame5(char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t start, svn_opt_revision_t end, svn_diff_file_options_t const * diff_options, svn_boolean_t ignore_mime_type, svn_boolean_t include_merged_revisions, svn_client_blame_receiver3_t receiver, void * receiver_baton, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t }}} Btw, I wonder if it would be useful to have a `blame` TracLink, or extend the `browser` TracLink to allow blame to be specified." enhancement new normal next-major-releases version control normal svn