DougR
Are you using a single working copy for those threads? From my understanding of SVN - definitely NOT perfect in this case - a single working copy was never meant to be used to check in multiple changes concurrently via different threads so such a use-case would be breaking core assumptions. A different thought: have all of the directories been previously added and checked in? If not then some threads could be checking in a state where the directory exists and, given parallelism, a different thread could be checking in a state where the directory did not exist. That would be a true conflict. So at a minimum all directories must be checked in beforehand. A parallel thought experiment based solely on files would also point to conflicts (file exists in checkin at time T0 and a different file is added (but the 1st file does not exist) in a checkin at T1: conflict). A huge amount of proper coordination of the threads must happen to make this truly an "additive only" affair. And, sadly, the working copy must declare that knowledge to the repository for each checkin. So there needs to be a checkin; working copy update; checkin; working copy update; ... cycle going on. In general, I've got to ask: why not just add all of the files and then check them all in at once?
DougR
Vishal: When you want to create something new based on an existing infrastructure you need to adhere to that infrastructure's architecture. And implementation limitations. Given Subversion is OpenSource, you can also jump in and help fix any implementation details that are getting in your way. The community would love it. Of course, in this case the SVNKit java implementation is the SVN client, not the SVN repository server which may be where the blocking issue occurs (or, more possibly, the transport). Given the information in the issue thread you found (note: some of those are SVN committers), it might be wise to move to using the "svnserve" protocol. I don't know SVNKit - does it talk that protocol or only the web_dav_svn protocol? On the other hand, at least issue #3119 referenced was fixed in SVN 1.6.4. If you can jump into the C code and help fix the underlying error, then I'd discuss things with the SVN Committers (at least see if they have any pointers). If you're a java solution only outfit then you could consider javaHL for calling directly into some of the C code so you can use the "svnserve" protocol. If you are completely boxed in to pure java then you may need to serialize/single thread the updates so that the update is always referencing the latest revision.
vsshah81
Hello Doug, Unfortunately we are boxed to pure JAVA + HTTP communication to SVN. We will talk to SVNKit support too. We may end up create one Job for ourselves which will serialize/single thread updates so that the update is always referencing the latest revision. Thank you for your detailed reply and guidance. Regards, Vishal