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

Re: Queries about SVN (Security related)

From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Tue, 29 Nov 2011 14:46:18 +0100

On Tue, Nov 29, 2011 at 7:44 AM, Daniel Shahaf <d.s_at_daniel.shahaf.name> wrote:
> Jerryleen S wrote on Tue, Nov 29, 2011 at 10:50:06 +0530:
>> but as per discussion in the thread it isn't possible to differentiate
>> deleting or adding or modifying transaction during pre-commit script.
>>
>
> I don't understand what you're claiming.  The situation is:
>
> - The pre-commit hook knows the EXACT contents of the transaction
>  (which will become a revision if the hook does exit(0)).  That in
>  particular includes the equivalent of 'svn log -qv' of the txn.
>
>  (five minutes on a file:///tmp/r repository with 'svnlook -t' will
>  confirm or refute this)
>
> - The pre-commit hook can modify the txn before it becomes a revision.
>  Such modifications cannot be communicated to the client performing the
>  commit.
>
>  (for the former assertion, see svn_fs_open_txn() and similar FS APIs.
>  for the latter, the client code (libsvn_ra and libsvn_wc) assumes that
>  the changes sent to the server are those committed, and updates the wc
>  state based on the changes sent.)

To reiterate what Daniel said: you can perfectly well see the
difference between an Add (A), a Delete (D) or a Modification (M) in a
pre-commit hook. The command 'svnlook changed -t <transaction>' will
give you a list of everything that's about to be changed by the
transaction in question. Lines beginning with A indicate Additions, D
for Deletes and M for Modifications.

Of course this is only speaking at file/directory granularity (which
files/directories are added, deleted, modified). If you want to know
if a Modified file has additions, deletions or modifications, you'll
have to examine/parse the output of 'svnlook diff' to see the concrete
content changes ...

-- 
Johan
Received on 2011-11-29 14:47:15 CET

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.