> Author: danielsh
> Date: Wed Nov 10 21:02:46 2010
> New Revision: 1033709
>
> URL: http://svn.apache.org/viewvc?rev=1033709&view=rev
> Log:
> Add a regression test for 'svn patch' setting properties without
> trailing newlines.  This could be useful, for example, to transmit
> 'svn:eol-style' properties via 'svn patch' without appending a newline
> to the property value en route.

Hi Daniel,

This test seems to be checking if 'svn patch' can apply a property
value with no trailing newline, but is there even a way to represent
such a property in the unidiff format?

Your test creates this patch:

[[[
Index: .
===================================================================
diff --git a/subversion/branches/1.6.x b/subversion/branches/1.6.x
--- a/subversion/branches/1.6.x (revision 1033278)
+++ b/subversion/branches/1.6.x (working copy)

Property changes on: subversion/branches/1.6.x
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /subversion/trunk:r964349
Added: k
## -0,0 +1 ##
+v
\ No newline at end of property
]]]

But what is '\ No newline at end of property'?  Is that standard?  I'm
only familiar with the special line '\ No newline at end of file'.

Paul

> * subversion/tests/cmdline/patch_tests.py
>  (patch_one_property): New, gutted from patch_strip_cwd().
>  (patch_strip_cwd): Now a warpper around patch_one_property().
>  (patch_set_prop_no_eol): New, wrapper around patch_one_property().
>  (test_list): Run patch_set_prop_no_eol(), XFail.
>
> Modified:
>    subversion/trunk/subversion/tests/cmdline/patch_tests.py
>
> Modified: subversion/trunk/subversion/tests/cmdline/patch_tests.py
> URL: 
> http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/patch_tests.py?rev=1033709&r1=1033708&r2=1033709&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/tests/cmdline/patch_tests.py (original)
> +++ subversion/trunk/subversion/tests/cmdline/patch_tests.py Wed Nov
> 10 21:02:46 2010
> @@ -3356,8 +3356,9 @@ def patch_reverse_revert(sbox):
>                                        1, # dry-run
>                                        '--reverse-diff')
>
> -def patch_strip_cwd(sbox):
> -  "patch --strip propchanges cwd"
> +def patch_one_property(sbox, trailing_eol):
> +  """Helper.  Apply a patch that sets the property 'k' to 'v\n' or to 'v',
> +   and check the results."""
>
>   sbox.build()
>   wc_dir = sbox.wc_dir
> @@ -3383,6 +3384,12 @@ def patch_strip_cwd(sbox):
>     "+v\n",
>   ]
>
> +  if trailing_eol:
> +    value = "v\n"
> +  else:
> +    value = "v"
> +    unidiff_patch += ['\ No newline at end of property']
> +
>   svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
>
>   expected_output = [
> @@ -3390,7 +3397,7 @@ def patch_strip_cwd(sbox):
>   ]
>
>   expected_disk = svntest.main.greek_state.copy()
> -  expected_disk.add({'': Item(props={'k' : 'v\n'})})
> +  expected_disk.add({'': Item(props={'k' : value})})
>
>   expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
>   expected_status.tweak('', status=' M')
> @@ -3407,7 +3414,15 @@ def patch_strip_cwd(sbox):
>                                        1, # dry-run
>                                        '--strip', '3')
>
> -  svntest.actions.check_prop('k', wc_dir, ['v\n'])
> +  svntest.actions.check_prop('k', wc_dir, [value])
> +
> +def patch_strip_cwd(sbox):
> +  "patch --strip propchanges cwd"
> +  return patch_one_property(sbox, True)
> +
> +def patch_set_prop_no_eol(sbox):
> +  "patch doesn't append newline to properties"
> +  return patch_one_property(sbox, False)
>
>  ########################################################################
>  #Run the tests
> @@ -3442,6 +3457,7 @@ test_list = [ None,
>               patch_old_target_names,
>               patch_reverse_revert,
>               patch_strip_cwd,
> +              XFail(patch_set_prop_no_eol),
>             ]
>
>  if __name__ == '__main__':

Reply via email to