Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jan 2013 21:54:52 +0000
From:      Xyne <xyne@archlinux.ca>
To:        Peter Vereshagin <peter@vereshagin.org>
Cc:        glarkin@FreeBSD.org, questions@freebsd.org
Subject:   Re: 'svn-export' incrementing?
Message-ID:  <20130124215452.3fba0d68@archlinux.ca>
In-Reply-To: <51004C02.9040107@FreeBSD.org>
References:  <20130123012915.GA16404@external.screwed.box> <51004C02.9040107@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Greg Larkin wrote:

>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>On 1/22/13 8:29 PM, Peter Vereshagin wrote:
>> Hello.
>> 
>> I use the 'svn-export this way and expect it will try to update
>> the 'work-tree' next time I run it:
>> 
>> $ python3 svn-export-2013.1/svn-export
>> http://svn.gna.org/svn/nasmail/trunk nasmail Exporting new
>> repository. Exported revision 1546 [portato@screwed /tmp]$ ls -a
>> nasmail .               decode          plugin_pack     tests
>> utilities ..              nasmail         plugins
>> translations [portato@screwed /tmp]$ python3
>> svn-export-2013.1/svn-export http://svn.gna.org/svn/nasmail/trunk
>> nasmail Exporting new repository. svn: E155000: Destination
>> directory exists; please remove the directory or use --force to
>> overwrite svn: E155000: 'nasmail' already exists error: Command
>> '['svn', 'export', '-r', 'HEAD',
>> 'http://svn.gna.org/svn/nasmail/trunk', 'nasmail']' returned
>> non-zero exit status 1
>> 
>> I believe there is something wrong in the way I use the
>> 'svn-export'. Otherwise it's a no problem for me to patch for
>> '--force'.
>> 
>> How can I update the already created 'work tree' with 'svn update'?
>> I think the correct answer is a good idea for 'Synopsis' docs
>> section.
>> 
>
>Hi Peter,
>
>In order for svn-export to work in incremental mode, you need to use
>the --revision-file argument like so:
>
>python3 svn-export-2013.1/svn-export -r rev.dat
>http://svn.gna.org/svn/nasmail/trunk nasmail
>
>Then at some point in the future, run the same command.  svn-export
>will read rev.dat, compare the version in there with the current HEAD
>revision.  If they are different, the script creates a diff and
>applies it to the local directory.
>
>Hope that helps,
>Greg

Hi,

The explanation is correct but the command example is not. It should be

    svn-export --revision-file rev.dat ...

The reason for this is that svn-export does not include any SVN data with the
exported files so it has no way to determine what the currently exported
revision is from the directory alone. You could manually run

  svn-export -r <local revision>:HEAD ..." 

but it would be tedious. The "--revision-file" option automates this by storing
the local export's revision number in a file. It is used to determine which
revision to diff against. Essentially it is the same as running

  svn-export -r $(cat rev.dat):...

I hope this clears things up.

Regards,
Xyne



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130124215452.3fba0d68>