0

I am using VSS interop DLLs and .NET to create a new subproject and save number of xml files in each project.

Basically, the process connects to VSS on same domain. It has to create more than a 1000 subprojects under the main defined project, and for each it retrieves the xml file(s) from a database and writes it to a filestream at a temp location and adds it in VSS.

  • The subproject could already be there, so it also checks if the VSSItem already exists, and then checks all VSSItems to see if it has the filename I am trying to save.
    • If yes, then check out the file to a temp location, check in the new file, and delete the file from the check out temp location
    • else, adds a new file
  • And in the end delete the temp location where the filestream was saved.

It has to do the above process for like 1000+ items. This whole process is taking about 20 minutes. The process is async, so it's running in its own thread.

I am using WPF and WCF here, so I sometimes recieve a SendTimeout which we can prevent by increasing the timeout in the config file of WPF.

My question is: is VSS processing is so slow always, and how can we speed it up?

I tried to review the code and couldn't find a way to improve it much. Any help would be appreciated.

Jeroen
  • 60,696
  • 40
  • 206
  • 339
VK123
  • 1
  • Clearly can do some parallel processing. Like copy the next file wile checkout / checkin current. Solid state disk. – paparazzo Sep 15 '12 at 17:15
  • I tried that by saving the structure on temp and instead of deleting each file, delete the whole directory but that gave me few seconds. Also, first time the projects and files are just added and adding 200 projects and few files under each, is taking almost 4-5 minutes. I production we expect more than 2000 projects and files to be processed. I feel the bottle neck is VSS only here. – VK123 Sep 16 '12 at 12:03
  • 1
    You're seriously still using VSS? And _relying_ on it? For _new_ development? I'll try to remember to say a prayer for you. – John Saunders Nov 30 '12 at 04:58

1 Answers1

0

Honestly, I use VSS at work and have written an app in c# to do similar processes and I have come to the conclusion it is just VSS. My answer to your question: VSS is that slow as it's primary purpose is to control source code by checkin/checkout functions and there is most likely nothing you could change in your code (that I know of) to speed up time dramatically. What Blam mentioned may buy you some time but won't cut it in half.

swabs
  • 515
  • 1
  • 5
  • 19