Gavin Lambert wrote:
> Since this is the first time I've had a look at Tortoise's command line
> options, something has struck me as very strange (and extremely
> dangerous, if I understand it correctly).
> This paragraph in particular:
> "Since TortoiseSVN uses temporary files to pass multiple arguments
> between the shell extension and the main program, you must add the
> /notempfile parameter! If you don't, the command won't work and the file
> you pass with the /path parameter will be deleted!"
> This is especially concerning given that this particular parameter (and
> what it does) doesn't appear to be documented anywhere else in the
Just add the parameter for all commands and you're save. Only if you
forget the param you can screw up.
> Why is this? Surely Tortoise shouldn't default to trashing files?
1. TSVN was never designed to be automated, this was added much later.
2. Passing a list of selected files in a temp file is necessary to avoid
too long command lines (which is limited to 4096 chars on win2k). And
since it's bad to leave temp files lying around, TSVN removes those temp
files after use. That's why the file specified in the param is removed:
TSVN assumes it's a temp file containing the list of files. And no, we
can't just define that the calling program should remove the temp file,
because in TSVN's case, the calling program is the shell extension,
which isn't 'running' and can't wait for TortoiseProc to finish (or the
whole explorer would be blocked until TortoiseProc is finished).
> The only possible explanation I can come up with for this behaviour is
> that in the absence of a /command then TortoiseProc will use the /path
> as the name of the temporary file to mess with. If this is the case,
> and given that this usage is not actually documented, then some other
> parameter (eg. /temppath or /tempfile) should be used for that job,
> leaving /path only for the (documented) command interface. Then it
> shouldn't matter if you specify /notempfile or not.
It doesn't matter if you specify it all the time. Just add it to *all*
commands you call.
> (Mind you, if Tortoise can operate without a temp file in the first
> place, why is it ever creating one? And why would you ever need to
> specify its name?)
Please read the docs again. The temp file isn't created by TortoiseProc
but by the calling application.
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Fri Sep 22 18:53:09 2006