Understanding the Issue: Using _svn vs. .svn in VisualSVN Server

In today’s software development landscape, version control systems play a crucial role in maintaining the source code for projects. A commonly used tool for version control is Apache Subversion (SVN), and many developers utilize VisualSVN Server to manage their repositories. However, users occasionally encounter challenges that arise from how Visual Studio interacts with working copies.

One such problem is the difference between folders labeled _svn and .svn. Developers may find themselves in situations where their build servers struggle to check out modifications from source control accurately, even after changes are recognized. This post explores this configuration issue in detail and provides insights into whether switching back to using _svn is necessary for improved functioning.

The Primary Concern

It was noted that an issue on a build server was identified where the existing working builds were utilizing _svn, while a new complete checkout had shifted to .svn. The key question is whether it’s possible, and necessary, to revert back to using _svn for build server processes.

The background information reveals that the integration routines originally favored _svn, and there was an inquiry if the current use of .svn could cause unintended problems, especially with respect to MSBuild from Microsoft.

Key Insights into _svn vs. .svn

Historical Context

The distinction between _svn and .svn exists mainly with Visual Studio web projects. Here’s the breakdown:

  • Visual Studio Compatibility: Historically, there were issues related to _svn in earlier versions of Visual Studio, specifically before VS2005. However, later versions addressed many of these concerns, rendering _svn less critical to the user experience.
  • Working Copy Structure: The difference between these two is strictly a working-copy issue and has no impact on the repository’s integrity. Whether some users work with _svn while others use .svn, the repository remains unaffected.

No Immediate Need to Revert

  • Stick with .svn: Unless you have strong evidence to indicate that .svn is causing issues with the build process or integration routines, the recommendation is to use .svn. This is because the repository itself does not discriminate between the two, provided there are no accidental mix-ups when checking items in (which could happen if a user mistakenly checks in _svn or .svn folders).
  • Assessing the Integration Tools: The earlier setup with TortoiseSVN and the potential configuration on the build server may not be necessary for switching back to _svn. Thus, following a standard setting with .svn could suffice unless clear functionality problems arise.

Conclusion: Move Forward with Confidence

Ultimately, while the concern about whether to switch back to _svn exists, it’s imperative to evaluate whether the .svn structure is genuinely hindering your build process.

  • Continuing with .svn is advisable unless there’s compelling proof indicating functionality problems.
  • Monitor the effectiveness of your integration routines and decide if adjustments are needed on a case-by-case basis.

By understanding the core reasons behind the issue at hand and the implications of using _svn versus .svn, you can make an informed decision that best supports your development workflow.

With updated approaches and configurations, developers can navigate the complexities of version control more effectively, ensuring smoother project management and deployment processes.