Kevinm wrote:
> Apologies Julian - it was the end of a long day :)

> 
> Please find the patch attached... hopefully.

Yup, it's there.

Anyone know how we generate 'svn_load_dirs.pl' from
'svn_load_dirs.pl.in'?  I can't seem to find anything in "configure" or
"make".  I re-built and still it's not there.

- Julian


> On 20 December 2010 16:57, Julian Foad <julian.f...@wandisco.com>
> wrote:
>         Hi Kevin.
>         
>         Thanks for contributing this bug fix.
>         
>         '@' is called an 'at' sign; '&' is called an ampersand.
>         
>         Unfortunately your patch didn't reach the mailing list,
>         probably because
>         the mailing list strips attachments that it doesn't recognize
>         as a plain
>         text MIME type.  You could try renaming it as ".txt" to
>         encourage your
>         mail program to set the MIME type properly.
>         
>         - Julian
>         
>         
>         
>         On Mon, 2010-12-20 at 16:28 +0000, Kevinm wrote:
>         > I stumbled across a bug in svn_load_dirs.pl when importing
>         paths with
>         > an ampersand character. Anything after the final ampersand
>         in a path
>         > gets interpreted as a peg revision during the add phase, so
>         the
>         > affected files don't get imported and the sanity check at
>         the end
>         > fails.
>         >
>         >
>         > I have attached a patch to get around the issue; it always
>         adds
>         > an ampersand to the end of each path while building the
>         TARGETS file.
>         > This is documented in the svn book
>         > here:
>         http://svnbook.red-bean.com/en/1.5/svn.advanced.pegrevs.html
>         >
>         >
>         >         The perceptive reader is probably wondering at this
>         point
>         >         whether the peg revision syntax causes problems for
>         working
>         >         copy paths or URLs that actually have at signs in
>         them. After
>         >         all, how does svn know whether n...@11 is the name
>         of a
>         >         directory in my tree or just a syntax for “revision
>         11 of
>         >         news”? Thankfully, while svn will always assume the
>         latter,
>         >         there is a trivial workaround. You need only append
>         an at sign
>         >         to the end of the path, such as n...@11@. svn cares
>         only about
>         >         the last at sign in the argument, and it is not
>         considered
>         >         illegal to omit a literal peg revision specifier
>         after that at
>         >         sign. This workaround even applies to paths that end
>         in an at
>         >         sign—you would use filename@@ to talk about a file
>         named
>         >         filen...@.
>         >
>         >
>         > Below is a simple test to reproduce the issue:
>         >
>         >
>         > dev-kevinm04:~$ mkdir test
>         > dev-kevinm04:~$ touch test/a.txt
>         > dev-kevinm04:~$ svnadmin create repos
>         > dev-kevinm04:~$ svn_load_dirs -v -t 1.0 file://`pwd`/repos
>         current
>         > test
>         > Directory test will be tagged as 1.0
>         >
>         >
>         > <snip>
>         >
>         >
>         > Cleaning up /tmp/svn_load_dirs_a_cRabZpNS
>         > dev-kevinm04:~$ touch test/b...@c.txt
>         > dev-kevinm04:~$ svn_load_dirs -v -t 2.0 file://`pwd`/repos
>         current
>         > test
>         > Directory test will be tagged as 2.0
>         >
>         >
>         > <snip>
>         >
>         >
>         > Checking out file:///home/london/kevinm/repos/current
>         > into /tmp/svn_load_dirs_SfwwQDtsAX/my_import_wc
>         > Running /usr/local/bin/svn checkout --non-interactive
>         > file:///home/london/kevinm/repos/current my_import_wc
>         >
>         >
>         > Loading test and will save in tag 2.0.
>         > A   b...@c.txt
>         > Running /usr/local/bin/svn add -N
>         > --targets /tmp/svn_load_dirs_SfwwQDtsAX/targets.00001
>         > Running /usr/local/bin/svn commit --non-interactive -m Load
>         test into
>         > current.
>         >
>         >
>         > Running /usr/local/bin/svn update --non-interactive
>         > Running /usr/local/bin/svn cp --non-interactive -m Tag
>         current as 2.0.
>         >  file:///home/london/kevinm/repos/current
>         > file:///home/london/kevinm/repos/2.0
>         > Checking out file:///home/london/kevinm/repos/2.0
>         > into /tmp/svn_load_dirs_SfwwQDtsAX/my_tag_wc_named_2.0
>         > Running /usr/local/bin/svn checkout --non-interactive
>         > file:///home/london/kevinm/repos/2.0 my_tag_wc_named_2.0
>         > Running diff -u -x .svn -r
>         > test /tmp/svn_load_dirs_SfwwQDtsAX/my_tag_wc_named_2.0
>         > /usr/local/bin/svn_load_dirs: diff -u -x .svn -r
>         > test /tmp/svn_load_dirs_SfwwQDtsAX/my_tag_wc_named_2.0
>         failed with
>         > this output:
>         > Only in test: b...@c.txt
>         > Press return to quit and clean up svn working directory:
>         > Cleaning up /tmp/svn_load_dirs_SfwwQDtsAX
>         > dev-kevinm04:~$
>         >
>         >
>         > Thanks,
>         >
>         >
>         > Kevin.
>         
>         
>         
> 
> 


Reply via email to