[ 
https://issues.apache.org/jira/browse/SVN-4891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17523360#comment-17523360
 ] 

Daniel Shahaf commented on SVN-4891:
------------------------------------

{code:java}
    revert_tests.py 2 revert_reexpand_keyword(): revert reexpands manually 
contracted keyword
      - fails to re-expand a manually contracted keyword in at least one case
      - "See r1101730 and r1101817"
{code}
No noteworthy {{{}revert{}}}-related differences to trunk in either the 
libraries or the Python tests.

Tracing, I see the file is set to be unmodified by {{{}revert_wc_data(){}}}:
{code:java}
 611               /* Issue #1663 asserts that we should compare a file in its  
                                                                                
                                                    
 612                  working copy format here, but before r1101473 we would 
only                                                                            
                                                       
 613                  do that if the file was already unequal to its recorded   
                                                                                
                                                    
 614                  information.                                              
                                                                                
                                                    
 615                                                                            
                                                                                
                                                    
 616                  r1101473 removes the option of asking for a working 
format                                                                          
                                                          
 617                  compare but *also* check the recorded information first, 
as                                                                              
                                                     
 618                  that combination doesn't guarantee a stable behavior.     
                                                                                
                                                    
 619                  (See the revert_test.py: revert_reexpand_keyword)         
                                                                                
                                                    
 620                                                                            
                                                                                
                                                    
 621                  But to have the same issue #1663 behavior for revert as 
we                                                                              
                                                      
 622                  had in <=1.6 we only have to check the recorded 
information                                                                     
                                                              
 623                  ourselves. And we already have everything we need, 
because                                                                         
                                                           
 624                  we called stat ourselves. */                              
                                                                                
                                                    
 625               if (recorded_size != SVN_INVALID_FILESIZE                    
                                                                                
                                                    
 626                   && recorded_time != 0                                    
                                                                                
                                                    
 627                   && recorded_size == finfo.size                           
                                                                                
                                                    
 628                   && recorded_time == finfo.mtime)                         
                                                                                
                                                    
 629                 {                                                          
                                                                                
                                                    
 630                   modified = FALSE;                                        
                                                                                
                                                    
 631                 }                                                          
                                                                                
                                                    
{code}
At this point, both {{recorded_size}} and {{finfo.size}} are the size of the 
repository-normal file. The code doesn't handle svn:keywords files specially, 
and so misses that the file has keywords manually contracted.

However, trunk takes the exact same codepath, runs the same {{modified = 
FALSE;}} line, and yet passes the test. I don't see why. There _are_ two 
function calls added at the end of {{{}revert_wc_data(){}}}, but they are 
inside an {{if (on_disk == svn_kind_none && …)}} block that doesn't even run 
(on either branch).

Thanks for including those two revision numbers there; they helped me place the 
breakpoint.

> Pristines-on-demand: fix disabled tests
> ---------------------------------------
>
>                 Key: SVN-4891
>                 URL: https://issues.apache.org/jira/browse/SVN-4891
>             Project: Subversion
>          Issue Type: Bug
>            Reporter: Julian Foad
>            Assignee: Julian Foad
>            Priority: Major
>
> The following tests had been changed in the pristines-on-demand development.
> Most were disabled with the '@Wimp' decorator. (This caused some of them to 
> give an XPASS and some an XFAIL result when run against the older WC format, 
> and all XFAIL against the newer WC format.)
> They need to be re-enabled and fixed.
> (I am removing them from this list as and when fixed.)
> {code:none}
>     basic_tests.py 8 basic_commit_corruption(): basic corruption detection on 
> commit
>       [[Relies on wc.text_base_path()]]
>     basic_tests.py 9 basic_update_corruption(): basic corruption detection on 
> update
>       [[Relies on wc.text_base_path()]]
>     externals_tests.py ... ... ...:
>       update_modify_file_external(),
>       remap_file_external_with_prop_del(),
>       file_external_recorded_info():
>         existing issue (Windows only)
>     revert_tests.py 2 revert_reexpand_keyword(): revert reexpands manually 
> contracted keyword
>       - fails to re-expand a manually contracted keyword in at least one case
>       - "See r1101730 and r1101817"
>     trans_tests.py 1 keywords_from_birth(): commit new files with keywords 
> active from birth
>       - fails due to mismatch of expected ​keywords in the text-base after a 
> commit
>     update_tests.py 57 skip_access_denied(): access denied paths should be 
> skipped
>       - on Unix: SKIP.
>       - on Windows: XFAIL/WIMP in pristines-on-demand mode, XPASS on old WC 
> format.
>     upgrade_tests.py 16 replaced_files(): upgrade with base and working 
> replaced files
>       - XFAIL in pristines-on-demand mode; PASS with the old WC format.
>    {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to