You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2010/11/04 20:18:07 UTC

svn commit: r1031165 - in /subversion/trunk/subversion: libsvn_client/blame.c tests/cmdline/blame_tests.py

Author: cmpilato
Date: Thu Nov  4 19:18:07 2010
New Revision: 1031165

URL: http://svn.apache.org/viewvc?rev=1031165&view=rev
Log:
Fix issue #3666 ("Assertion frb->last_filename == NULL fails in
libsvn_client/blame.c")

* subversion/libsvn_client/blame.c
  (file_rev_handler): Tweak an assertion condition to account for the
    realities of included mergeinfo.

* subversion/tests/cmdline/blame_tests.py
  (test_list): No longer expect blame_merge_info() to fail.

Modified:
    subversion/trunk/subversion/libsvn_client/blame.c
    subversion/trunk/subversion/tests/cmdline/blame_tests.py

Modified: subversion/trunk/subversion/libsvn_client/blame.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/blame.c?rev=1031165&r1=1031164&r2=1031165&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/blame.c (original)
+++ subversion/trunk/subversion/libsvn_client/blame.c Thu Nov  4 19:18:07 2010
@@ -93,6 +93,8 @@ struct file_rev_baton {
   /* These are used for tracking merged revisions. */
   svn_boolean_t include_merged_revisions;
   svn_boolean_t merged_revision;
+  svn_boolean_t seen_merged_revision;
+
   struct blame_chain *merged_chain;  /* the merged blame chain. */
   /* name of file containing the previous merged revision of the file */
   const char *last_original_filename;
@@ -490,8 +492,10 @@ file_rev_handler(void *baton, const char
 
   if (revnum < frb->start_rev)
     {
-      /* We shouldn't get more than one revision before start. */
-      SVN_ERR_ASSERT(frb->last_filename == NULL);
+      /* We shouldn't get more than one revision before the starting
+         revision (unless of including merged revisions). */
+      SVN_ERR_ASSERT((frb->last_filename == NULL)
+                     || frb->include_merged_revisions);
 
       /* The file existed before start_rev; generate no blame info for
          lines from this revision (or before). */

Modified: subversion/trunk/subversion/tests/cmdline/blame_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/blame_tests.py?rev=1031165&r1=1031164&r2=1031165&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/blame_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/blame_tests.py Thu Nov  4 19:18:07 2010
@@ -719,7 +719,7 @@ test_list = [ None,
               blame_eol_styles,
               blame_ignore_whitespace,
               blame_ignore_eolstyle,
-              XFail(SkipUnless(blame_merge_info, server_has_mergeinfo)),
+              SkipUnless(blame_merge_info, server_has_mergeinfo),
               SkipUnless(blame_merge_out_of_range, server_has_mergeinfo),
               blame_peg_rev_file_not_in_head,
               blame_file_not_in_head,