[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1033709 - /subversion/tests/cmdline/patch_tests.py

From: Paul Burba <ptburba_at_gmail.com>
Date: Thu, 10 Feb 2011 14:25:29 -0500

> 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__':
Received on 2011-02-10 20:26:06 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.