subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Branko ─îibej <br...@wandisco.com>
Subject Re: Facing issue in SVN pre commit hook | svnlook cat
Date Thu, 25 Jun 2015 08:15:42 GMT
On 25.06.2015 10:10, Dhiraj Prajapati wrote:
> Below is the code snippet I am using. I need the file contents in a
> variable.
>
> *fileContents=`$SVNLOOK cat $REPOS $FNAME -t $TXN`
> *
> *echo "contents:" $fileContents 1>&2*
>
> Am I doing anything wrong?


Yes of course you are. You really should read a manual about shell
argument processing.


What's happening here is that shell sees the  'echo' command with the
value of the fileContents variable as its argument list, and one of the
arguments is '/*', and because '*' is not quoted it expands it as a
wildcard.

At the very least, you should be quoting the variable value, like this:

    echo "contents:" "$fileContents" 1>&2

but even that is not completely safe.


> On Thu, Jun 25, 2015 at 1:37 PM, Branko ─îibej <brane@wandisco.com
> <mailto:brane@wandisco.com>> wrote:
>
>     On 25.06.2015 09:31, Dhiraj Prajapati wrote:
>>     Hi,
>>     I have a pre-commit hook which validates the contents of the
>>     files being committed before commit.
>>     I am using /svnlook cat/ command to read the contents of the file
>>     being committed.
>>     However, whenever there is a leading slash on a particular line
>>     in the file, the /svnlook cat/ command fails to display the
>>     slash. Instead it prints the names of all the files/folders in
>>     the root directory.
>>
>>     *Example file contents:*
>>
>>     xyz
>>     <input name=abc/>
>>     /*
>>     abc
>>
>>     *Command:*
>>
>>     svnlook cat <repository_path> <file_name> -t <txn>
>>
>>     *Output:*
>>
>>     xyz <input name=abc/> /app /bin /boot /cdrom /dev /etc /home /lib
>>     /lost+found /media /mnt /opt /proc /root /run /sbin /sources /srv
>>     /sys /tmp /usr /var /vmlinuz /vmlinuz.old abc
>>
>>     I want/svnlook cat/ to print exactly what is in the file. Please
>>     assist.
>
>     This is "impossible" in the sense that 'svnlook cat' does not
>     process the contents in any way, it just prints them to stdout.
>
>     You're probably piping the output of 'svnlook cat' into some kind
>     of program or script that validates them, and I suspect that
>     script is interpreting the contents so that it lists the directory
>     contents as you described. You should most likely look for the bug
>     in your validation script.
>
>     -- Brane
>
>


Mime
View raw message