开发者

How do you find out which solutions in your svn have a reference to a specific project

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜