If the variable $TXN contains a *, it is getting expanded by the echo command, 
unix is expanding that before the echo is called.

I would put single around the variable on your echo command

From: Dhiraj Prajapati [mailto:dhiraj.prajap...@games24x7.com]
Sent: Thursday, June 25, 2015 1:10 AM
To: Branko Čibej
Cc: users@subversion.apache.org
Subject: Re: Facing issue in SVN pre commit hook | svnlook cat

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?

-Dhiraj

On Thu, Jun 25, 2015 at 1:37 PM, Branko Čibej 
<br...@wandisco.com<mailto:br...@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

Reply via email to