You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by SteveKing <st...@gmx.ch> on 2005/06/24 17:08:44 UTC

Bug in svn merge url1 url2 wc

Hi,

For some time now, we got repeated reports about merges failing with 
TSVN. Those could usually get resolved by deactivating virus scanners or 
closing other apps. Bad thing was, we never really found out *why* the 
merge was failing with the error
svn: can't open 'tmp': Access is denied.

But yesterday, someone (Andrej Ota) found out that this happens because 
Subversion tries to create the 'tmp' folder where the user doesn't have 
write access to.

Further investigation showed that Subversion uses the cwd instead of the 
temp directory to create its temporary folders and files. This might not 
be a big problem for the CL client, but it is for TSVN. You see, TSVN is 
started from the explorer, and the explorer doesn't really have a cwd 
because any program can change it - especially the windows media player 
changes it to C:\WINDOWS\MEDIA (where a non-Admin user doesn't have 
write access). So when the explorer starts TSVN, TSVN then automatically 
gets the same cwd as the explorer.

Just so you see that's not a TSVN bug I created a script with the CL 
client to show you the bug:

- create a directory 'D:\testreadonly', then remove write access for the 
currently logged in user, only leave read access

# cd D:\testreadonly
# mkdir D:\test
# svn co 
https://svn.collab.net/repos/tortoisesvn/tags/version_1.0/doc/sources/en 
d:\test\en
# svn merge 
https://svn.collab.net/repos/tortoisesvn/tags/version_1.0/doc/sources/en 
https://svn.collab.net/repos/tortoisesvn/trunk/doc/sources/en d:\test\en

svn: can't open 'tmp': Access is denied.

I've now implemented a workaround in TSVN so the cwd always points to a 
folder where the current user has write access, but Subversion really 
should use the temp directory for merges too.
(FYI: both the TMP and the TEMP env variable are set on my system to a 
folder in my user dir where I have full write access).

All this with svn 1.2.0.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.tigris.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Bug in svn merge url1 url2 wc

Posted by Julian Foad <ju...@btopenworld.com>.
Ping!  (I'm just looking through mail and seeing no response to this.)

SteveKing wrote:
> Hi,
> 
> For some time now, we got repeated reports about merges failing with 
> TSVN. Those could usually get resolved by deactivating virus scanners or 
> closing other apps. Bad thing was, we never really found out *why* the 
> merge was failing with the error
> svn: can't open 'tmp': Access is denied.
> 
> But yesterday, someone (Andrej Ota) found out that this happens because 
> Subversion tries to create the 'tmp' folder where the user doesn't have 
> write access to.
> 
> Further investigation showed that Subversion uses the cwd instead of the 
> temp directory to create its temporary folders and files. This might not 
> be a big problem for the CL client, but it is for TSVN. You see, TSVN is 
> started from the explorer, and the explorer doesn't really have a cwd 
> because any program can change it - especially the windows media player 
> changes it to C:\WINDOWS\MEDIA (where a non-Admin user doesn't have 
> write access). So when the explorer starts TSVN, TSVN then automatically 
> gets the same cwd as the explorer.
> 
> Just so you see that's not a TSVN bug I created a script with the CL 
> client to show you the bug:
> 
> - create a directory 'D:\testreadonly', then remove write access for the 
> currently logged in user, only leave read access
> 
> # cd D:\testreadonly
> # mkdir D:\test
> # svn co 
> https://svn.collab.net/repos/tortoisesvn/tags/version_1.0/doc/sources/en 
> d:\test\en
> # svn merge 
> https://svn.collab.net/repos/tortoisesvn/tags/version_1.0/doc/sources/en 
> https://svn.collab.net/repos/tortoisesvn/trunk/doc/sources/en d:\test\en
> 
> svn: can't open 'tmp': Access is denied.
> 
> I've now implemented a workaround in TSVN so the cwd always points to a 
> folder where the current user has write access, but Subversion really 
> should use the temp directory for merges too.
> (FYI: both the TMP and the TEMP env variable are set on my system to a 
> folder in my user dir where I have full write access).
> 
> All this with svn 1.2.0.
> 
> Stefan


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org