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

Re: Facing issue in SVN pre commit hook | svnlook cat

From: Dhiraj Prajapati <dhiraj.prajapati_at_games24x7.com>
Date: Thu, 25 Jun 2015 13:58:54 +0530

Thanks a lot. I am a newbie to shell script. I appreciate your help.
On 25 Jun 2015 13:45, "Branko Čibej" <brane_at_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_at_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
>>
>
>
>
Received on 2015-06-25 10:29:56 CEST

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

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