views:

34

answers:

1

My team and I are working on several projects that collectively depend on some common libraries. These common libraries are currently checked out together with the projects, using svn:externals.

The question is, should the projects' trunks track the HEAD of each library, or be linked to specific revisions?

The issue libraries are very actively developed by others in the company, and occasionally checkins are made that break the projects depending on a library. This shows up as a red blob on our CI, even if we haven't changed anything ourselves. Some people argue that, "that's why we have a CI server; so that we know when we're falling behind," where others argue, "we want to see how all the changes integrate, on the bleeding edge."

Can anyone comment on the best practice? I have my opinion, which I will reserve for now.

+4  A: 

If the external dependencies are stable enough to create a release, then yes, you should have a specific revision instead of pointing to the trunk of each library. On the other hand, if all of your development is "bleeding edge" as you mention, then there will be cases when things will become out of sync or simply not compile and that is just a fact of life.

Otávio Décio
It makes my inner refactoring gremlin cry, but I think you're right. :)
Andres Jaan Tack