'svn-export' incrementing?

Greg Larkin glarkin at FreeBSD.org
Fri Jan 25 00:19:53 UTC 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 1/24/13 4:54 PM, Xyne wrote:
> 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 at screwed /tmp]$ ls
>>> -a nasmail .               decode          plugin_pack
>>> tests utilities ..              nasmail         plugins 
>>> translations [portato at 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
> 

Hi Xyne,

Thanks for catching that.  I had intended to write "--revision-file",
but PEBKAC took over!

Cheers,
Greg

- -- 
Greg Larkin

http://www.FreeBSD.org/           - The Power To Serve
http://www.sourcehosting.net/     - Ready. Set. Code.
http://twitter.com/cpucycle/      - Follow you, follow me
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (Darwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlEBz5oACgkQ0sRouByUApBHUACeP/a83cmkE2EUn2rRL1b1MfaR
8sYAn3ycyyi2wfT2fFEp2KYkMR4V8OCu
=SY/z
-----END PGP SIGNATURE-----


More information about the freebsd-questions mailing list