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

Re: svn commit: r1577082 - /subversion/trunk/subversion/tests/cmdline/special_tests.py

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Thu, 13 Mar 2014 11:40:17 +0000

Philip Martin <philip.martin_at_wandisco.com> writes:

> "Bert Huijben" <bert_at_qqmail.nl> writes:
>
>>> -----Original Message-----
>>> From: philip_at_apache.org [mailto:philip_at_apache.org]
>>> Sent: donderdag 13 maart 2014 11:13
>>> To: commits_at_subversion.apache.org
>>> Subject: svn commit: r1577082 -
>>> /subversion/trunk/subversion/tests/cmdline/special_tests.py
>>>
>>> Author: philip
>>> Date: Thu Mar 13 10:12:50 2014
>>> New Revision: 1577082
>>>
>>> URL: http://svn.apache.org/r1577082
>>> Log:
>>> Add an XFAIL regression test for issue 4479, multiline svn:special truncated.
>>>
>>> * subversion/tests/cmdline/special_tests.py
>>> (multiline_special): New test.
>>> (test_list): Add new test.
>>
>> As far as I can tell we handled this limitation as 'as designed' when
>> implementing WC-NG.
>>
>> I don't think this is something we can really 'fix', as older clients
>> will just break things when they would find such a 'symlink'.
>>
>> The idea back then (ask gstein :-) was to move away from using a
>> single magic property for this, if we ever wanted to support more
>> 'special' files.
>
> If the pristine file for an svn:special is "foo\nbar\n" we currently
> create a working file containing "foo". Irrespective of future changes
> I think it would be better if the working file contained "foo\nbar\n".
> Are you saying that is not a good idea? In what way will old clients
> break?

This is fix I was intending. Are you saying this is a bad idea?

Index: subversion/libsvn_subr/subst.c
===================================================================
--- subversion/libsvn_subr/subst.c (revision 1577082)
+++ subversion/libsvn_subr/subst.c (working copy)
@@ -1713,23 +1713,27 @@ create_special_file_from_stream(svn_stream_t *sour
     }
 
   /* If nothing else worked, write out the internal representation to
- a file that can be edited by the user.
-
- ### this only writes the first line!
- */
+ a file that can be edited by the user. */
   if (create_using_internal_representation)
     {
       apr_file_t *new_file;
+ svn_stream_t *new_stream;
+
       SVN_ERR(svn_io_open_unique_file3(&new_file, &dst_tmp,
                                        svn_dirent_dirname(dst, pool),
                                        svn_io_file_del_none,
                                        pool, pool));
 
+ if (!eof)
+ svn_stringbuf_appendcstr(contents, "\n");
       SVN_ERR(svn_io_file_write_full(new_file,
                                      contents->data, contents->len, NULL,
                                      pool));
 
- SVN_ERR(svn_io_file_close(new_file, pool));
+ new_stream = svn_stream_from_aprfile2(new_file, FALSE, pool);
+
+ SVN_ERR(svn_stream_copy3(svn_stream_disown(source, pool), new_stream,
+ NULL, NULL, pool));
     }
 
   /* Do the atomic rename from our temporary location. */
Index: subversion/tests/cmdline/special_tests.py
===================================================================
--- subversion/tests/cmdline/special_tests.py (revision 1577082)
+++ subversion/tests/cmdline/special_tests.py (working copy)
@@ -1222,7 +1222,6 @@ def incoming_symlink_changes(sbox):
                                         True)
 
 #----------------------------------------------------------------------
-_at_XFail()
 @Issue(4479)
 def multiline_special(sbox):
   "multiline file with svn:special"

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2014-03-13 12:40:52 CET

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