subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dhiraj Prajapati <dhiraj.prajap...@games24x7.com>
Subject Re: Facing issue in SVN pre commit hook | svnlook cat
Date Thu, 25 Jun 2015 08:28:54 GMT
Thanks a lot. I am a newbie to shell script. I appreciate your help.
On 25 Jun 2015 13:45, "Branko ─îibej" <brane@wandisco.com> wrote:

>  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> 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