Visual Studio build fails because .svn\wc.db is open

2,046 views
Skip to first unread message

Steve Yates

unread,
Feb 9, 2012, 7:15:18 PM2/9/12
to us...@tortoisesvn.tigris.org
For a variety of reasons the intent is for me to commit only compiled code to a repository. I admit I am a relative newbie to using a repository and TortoiseSVN. What I have done so far is:

- Create a directory in my repository under /branches (as I was directed)
- Checkout the empty branch to my populated build directory
- SVN Commit the directory to the repository (which uploaded all the files)

At this point if I try to build again, I get the message:

Error 5 Unable to delete file "C:\Users\.....\Test Server\\.svn\wc.db". The process cannot access the file 'C:\Users\.....\Test Server\\.svn\wc.db' because it is being used by another process.

So presumably that's because TortoiseSVN has wc.db open and thus Visual Studio can't delete it to repopulate the folder. How do I work around that? Is there a better way to accomplish this?

Thanks!

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920232

To unsubscribe from this discussion, e-mail: [users-un...@tortoisesvn.tigris.org].

Steve Yates

unread,
Feb 9, 2012, 7:52:28 PM2/9/12
to us...@tortoisesvn.tigris.org
> So presumably that's because TortoiseSVN has wc.db open and thus Visual
> Studio can't delete it to repopulate the folder. How do I work around that? Is
> there a better way to accomplish this?

I killed the TSVNCache.exe process and could rebuild, however, it seems to have lost the link to the repository since the wc.db file is (of course) missing. Ideas? Do I need to build, copy those files into a different folder, and commit from there?

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920239

Stefan Küng

unread,
Feb 10, 2012, 1:58:33 AM2/10/12
to us...@tortoisesvn.tigris.org
On 10.02.2012 01:15, Steve Yates wrote:
> For a variety of reasons the intent is for me to commit only compiled
> code to a repository. I admit I am a relative newbie to using a
> repository and TortoiseSVN. What I have done so far is:
>
> - Create a directory in my repository under /branches (as I was
> directed) - Checkout the empty branch to my populated build
> directory - SVN Commit the directory to the repository (which
> uploaded all the files)
>
> At this point if I try to build again, I get the message:
>
> Error 5 Unable to delete file "C:\Users\.....\Test
> Server\\.svn\wc.db". The process cannot access the file
> 'C:\Users\.....\Test Server\\.svn\wc.db' because it is being used by
> another process.
>
> So presumably that's because TortoiseSVN has wc.db open and thus
> Visual Studio can't delete it to repopulate the folder. How do I
> work around that? Is there a better way to accomplish this?

Why does your build even try to delete that file? It must not even touch
that file or any other file inside the hidden .svn folder!

Change your build accordingly, or SVN won't work at all.

Stefan

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

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920379

Markus Schaber

unread,
Feb 10, 2012, 2:20:04 AM2/10/12
to us...@tortoisesvn.tigris.org
Hi, Steve,

If you have problems with Visual Studio and Subversion, try AnkhSVN or VisualSVN. They integrate Subversion directly into visual studio.

Best regards

Markus Schaber
--
___________________________
We software Automation.

3S-Smart Software Solutions GmbH
Markus Schaber | Developer
Memminger Str. 151 | 87439 Kempten | Germany | Tel. +49-831-54031-0 | Fax +49-831-54031-50

Email: m.sc...@3s-software.com | Web: http://www.3s-software.com
CoDeSys internet forum: http://forum.3s-software.com
Download CoDeSys sample projects: http://www.3s-software.com/index.shtml?sample_projects

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade register: Kempten HRB 6186 | Tax ID No.: DE 167014915

-----Ursprüngliche Nachricht-----
Von: Steve Yates [mailto:st...@teamITS.com]
Gesendet: Freitag, 10. Februar 2012 01:15
An: us...@tortoisesvn.tigris.org
Betreff: Visual Studio build fails because .svn\wc.db is open

Thanks!

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920232

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920390

Ulrich Eckhardt

unread,
Feb 10, 2012, 3:30:16 AM2/10/12
to us...@tortoisesvn.tigris.org
Am 10.02.2012 01:15, schrieb Steve Yates:
> For a variety of reasons the intent is for me to commit only compiled
> code to a repository. I admit I am a relative newbie to using a
> repository and TortoiseSVN.

This is typically an advanced user's choice to commit binaries... you
might want to discuss the reasons behind that.


> What I have done so far is:
>
> - Create a directory in my repository under /branches (as I was
> directed)
> - Checkout the empty branch to my populated build
> directory
> - SVN Commit the directory to the repository (which
> uploaded all the files)

In between you also "svn add"ed some files, otherwise there wouldn't
have been anything to upload.


> At this point if I try to build again, I get the message:
>
> Error 5 Unable to delete file "C:\Users\.....\Test
> Server\\.svn\wc.db". The process cannot access the file
> 'C:\Users\.....\Test Server\\.svn\wc.db' because it is being used by
> another process.
>
> So presumably that's because TortoiseSVN has wc.db open and thus
> Visual Studio can't delete it to repopulate the folder. How do I
> work around that?

SVN 1.7 only create a single .svn dir in the root of a working copy
(older SVNs did so in every versioned subdir!). If you now check out the
parent folder instead of the one where your working copy currently
begins, there won't be a .svn dir in the place where it currently causes
problems.


> Is there a better way to accomplish this?

You might want to take a look at svn_load_dirs. This tool syncs a folder
inside a repository with the state of a folder on disk. This would also
take care of adding and deleting files automatically, which is
reasonable when the files were already generated automatically.


Good luck!

Uli

**************************************************************************************
Domino Laser GmbH, Fangdieckstraße 75a, 22547 Hamburg, Deutschland
Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932
**************************************************************************************
Visit our website at http://www.dominolaser.com
**************************************************************************************
Diese E-Mail einschließlich sämtlicher Anhänge ist nur für den Adressaten bestimmt und kann vertrauliche Informationen enthalten. Bitte benachrichtigen Sie den Absender umgehend, falls Sie nicht der beabsichtigte Empfänger sein sollten. Die E-Mail ist in diesem Fall zu löschen und darf weder gelesen, weitergeleitet, veröffentlicht oder anderweitig benutzt werden.
E-Mails können durch Dritte gelesen werden und Viren sowie nichtautorisierte Änderungen enthalten. Domino Laser GmbH ist für diese Folgen nicht verantwortlich.
**************************************************************************************

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920443

Steve Yates

unread,
Feb 10, 2012, 10:15:46 AM2/10/12
to us...@tortoisesvn.tigris.org
On Feb 10, 2012, at 12:58 AM, "Stefan Küng" <torto...@gmail.com> wrote:
>
> Why does your build even try to delete that file? It must not even touch
> that file or any other file inside the hidden .svn folder!
>
> Change your build accordingly, or SVN won't work at all.

By default Visual Studio empties the target directory on each build.

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920664

Jean-Marc van Leerdam

unread,
Feb 10, 2012, 10:23:25 AM2/10/12
to us...@tortoisesvn.tigris.org


Hi,

Op 10 feb. 2012 16:16 schreef "Steve Yates" <st...@teamits.com> het volgende:


>
> On Feb 10, 2012, at 12:58 AM, "Stefan Küng" <torto...@gmail.com> wrote:
> >
> > Why does your build even try to delete that file? It must not even touch
> > that file or any other file inside the hidden .svn folder!
> >
> > Change your build accordingly, or SVN won't work at all.
>
> By default Visual Studio empties the target directory on each build.
>

So, create a folder inside the working copy and make that the target build folder.

Regards,
Jean-Marc

Andy Levy

unread,
Feb 10, 2012, 10:24:20 AM2/10/12
to us...@tortoisesvn.tigris.org
On Fri, Feb 10, 2012 at 10:15, Steve Yates <st...@teamits.com> wrote:
> On Feb 10, 2012, at 12:58 AM, "Stefan Küng" <torto...@gmail.com> wrote:
>>
>> Why does your build even try to delete that file? It must not even touch
>> that file or any other file inside the hidden .svn folder!
>>
>> Change your build accordingly, or SVN won't work at all.
>
> By default Visual Studio empties the target directory on each build.

This is one of many reasons that the standard practice is to do the
exact opposite of what you're doing - tell SVN to ignore the bin & obj
directories completely, and only version the source code &
configuration files needed to build the project.

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920667

Steve Yates

unread,
Feb 10, 2012, 10:25:18 AM2/10/12
to us...@tortoisesvn.tigris.org
On Feb 10, 2012, at 2:30 AM, "Ulrich Eckhardt" <ulrich....@dominolaser.com> wrote:

> Am 10.02.2012 01:15, schrieb Steve Yates:
>> For a variety of reasons the intent is for me to commit only compiled
>> code to a repository. I admit I am a relative newbie to using a
>> repository and TortoiseSVN.
>
> This is typically an advanced user's choice to commit binaries... you
> might want to discuss the reasons behind that.

Our client is operating some web sites for their client, who hosts the web servers. The third party wants the repository to push code to the live sites but our client doesn't want to give them the source. Odd, I know.


>> What I have done so far is:
>>
>> - Create a directory in my repository under /branches (as I was
>> directed)
>> - Checkout the empty branch to my populated build
>> directory
>> - SVN Commit the directory to the repository (which
>> uploaded all the files)
>
> In between you also "svn add"ed some files, otherwise there wouldn't
> have been anything to upload.

The Commit will start with an Add if the repository folder is empty.

>
> SVN 1.7 only create a single .svn dir in the root of a working copy
> (older SVNs did so in every versioned subdir!). If you now check out the
> parent folder instead of the one where your working copy currently
> begins, there won't be a .svn dir in the place where it currently causes
> problems.
>
>
>> Is there a better way to accomplish this?
>
> You might want to take a look at svn_load_dirs. This tool syncs a folder
> inside a repository with the state of a folder on disk. This would also
> take care of adding and deleting files automatically, which is
> reasonable when the files were already generated automatically.
>

Ok thanks I will look into that. I didnt know i could start at a higher level. Can I just do one folder then? (VS with the web deployment add on puts all builds under the same parent directory.

Really I just need a basic one way sync. :)

I played some last night with copying to a second folder and syncing that which seems to work ok too.

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920668

Steve Yates

unread,
Feb 10, 2012, 10:27:50 AM2/10/12
to us...@tortoisesvn.tigris.org
On Feb 10, 2012, at 9:25 AM, "Andy Levy" <andy...@gmail.com> wrote:

>
> This is one of many reasons that the standard practice is to do the
> exact opposite of what you're doing - tell SVN to ignore the bin & obj
> directories completely, and only version the source code &
> configuration files needed to build the project.
>

I realize I'm not using SVN as intended, just trying to keep the client happy... :)

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920670

Andy Levy

unread,
Feb 10, 2012, 10:31:51 AM2/10/12
to us...@tortoisesvn.tigris.org
On Fri, Feb 10, 2012 at 10:25, Steve Yates <st...@teamits.com> wrote:
> On Feb 10, 2012, at 2:30 AM, "Ulrich Eckhardt" <ulrich....@dominolaser.com> wrote:
>
>> Am 10.02.2012 01:15, schrieb Steve Yates:
>>> For a variety of reasons the intent is for me to commit only compiled
>>> code to a repository.  I admit I am a relative newbie to using a
>>> repository and TortoiseSVN.
>>
>> This is typically an advanced user's choice to commit binaries... you
>> might want to discuss the reasons behind that.
>
> Our client is operating some web sites for their client, who hosts the web servers. The third party wants the repository to push code to the live sites but our client doesn't want to give them the source. Odd, I know.

You may want to look at an intermediate step between the repository &
the live site, like a CI server. CI server retrieves the source from
the repository, builds, then deploys the built items to the site.

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920671

Bob Archer

unread,
Feb 10, 2012, 12:43:20 PM2/10/12
to us...@tortoisesvn.tigris.org
> For a variety of reasons the intent is for me to commit only compiled code to a
> repository. I admit I am a relative newbie to using a repository and
> TortoiseSVN. What I have done so far is:
>
> - Create a directory in my repository under /branches (as I was directed)
> - Checkout the empty branch to my populated build directory
> - SVN Commit the directory to the repository (which uploaded all the files)
>
> At this point if I try to build again, I get the message:
>
> Error 5 Unable to delete file "C:\Users\.....\Test Server\\.svn\wc.db".
> The process cannot access the file 'C:\Users\.....\Test Server\\.svn\wc.db'
> because it is being used by another process.
>
> So presumably that's because TortoiseSVN has wc.db open and thus Visual
> Studio can't delete it to repopulate the folder. How do I work around that? Is
> there a better way to accomplish this?
>

Move to 1.7... the .svn folder is only in the root working copy folder in that case so you won't have an issue.

BOb

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920694

Daniel Becroft

unread,
Feb 10, 2012, 4:45:20 PM2/10/12
to us...@tortoisesvn.tigris.org
On Sat, Feb 11, 2012 at 3:43 AM, Bob Archer <Bob.A...@amsi.com> wrote:
> For a variety of reasons the intent is for me to commit only compiled code to a
> repository.  I admit I am a relative newbie to using a repository and
> TortoiseSVN.  What I have done so far is:
>
> - Create a directory in my repository under /branches (as I was directed)
> - Checkout the empty branch to my populated build directory
> - SVN Commit the directory to the repository (which uploaded all the files)
>
>       At this point if I try to build again, I get the message:
>
> Error 5       Unable to delete file "C:\Users\.....\Test Server\\.svn\wc.db".
> The process cannot access the file 'C:\Users\.....\Test Server\\.svn\wc.db'
> because it is being used by another process.
>
> So presumably that's because TortoiseSVN has wc.db open and thus Visual
> Studio can't delete it to repopulate the folder.  How do I work around that?  Is
> there a better way to accomplish this?
>

Move to 1.7... the .svn folder is only in the root working copy folder in that case so you won't have an issue.

BOb

If the original poster is getting an error regarding wc.db, then they are already on 1.7.

Cheers,
Daniel B. 

Andy Levy

unread,
Feb 10, 2012, 5:00:35 PM2/10/12
to us...@tortoisesvn.tigris.org

And apparently their source is not versioned, but the compiled artifacts are.

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2920739

Bob Archer

unread,
Feb 14, 2012, 9:59:14 AM2/14/12
to us...@tortoisesvn.tigris.org

DOH!

So, I would say create a folder that is a working copy and add a build event to Visual Studio that copies the binaries to the WC after a successful build.

BOb

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2922364

Steve Yates

unread,
Feb 14, 2012, 10:27:39 AM2/14/12
to us...@tortoisesvn.tigris.org
Bob Archer wrote on Tue, Feb 14 2012 at 8:59 am:
> So, I would say create a folder that is a working copy and add a build event to
> Visual Studio that copies the binaries to the WC after a successful build.

That's essentially what I ended up doing, though I have it as a separate .cmd file at the moment. "Robocopy src dest /mir /DCOPY:T /XD .svn" will mirror all changes yet exclude (leave alone) the .svn directory in the target.

--
Thanks all,

Steve Yates
ITS, Inc.

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2922380

Reply all
Reply to author
Forward
0 new messages