There are many visual studio solutions on our company svn, with different teams working on different areas. Some of our projects are 开发者_开发知识库re-useable library projects.
The problem comes when someone makes a breaking change in a library project that is part of a specific solution..... How does that person know what other solutions will possibly be affected?
Is there some tool out there that can recursively go through the file system, opening up VS projects and build a dependency graph so I can see at a glance what solutions will be affected?
<brainstorm>
alternatively you could use svn's precommit hook to run unittests
of the committed items and deny the commit when a test fails
</brainstorm>
We use continuous integration to detect whether someone has made a breaking change so do not need to find out the dependency graph (well sort-of, see below).
What this does is building all solutions with all their projects inside each time there was a commit to SVN. Of course we need to know the sequence of the solutions (6 solutions, so that is bearable). Inside of each solution the projects (up to 65) are set up with their dependencies so they build in the correct order. We use a build grid of three agents to keep the response time low.
As a consequence we know within one hour or less whether a change broke the build.
In your situation other factors might be at work so the solution that works fine for us may be unsuitable for you.
install cygwin and run
find . -name "*.sln" -exec grep -q "*ProjectName.csproj*" '{}' \; -print
from the root folder of your repository.
You will get a print out of all the sln files that include the project. I thought I could do this from windows vista, but the "advanced search" functionality in windows explorer sucks the big one. You cannot specify both a file pattern and a content pattern.
精彩评论