I have a repository structure that looks like so:
+ tags
+ trunk
+ source
+ dotnet
+ flex
+ branches
+ milestone1
+ dotnet
+ flex
+ milestone2
+ dotnet
+ flex
Typically, the .NET developers only checkout the 'dotnet' folders for the branch they are working in. Flex developers likewise check out the flex folder.
When we reach a point where we are merging a branch into the trunk ( or vice-versa ) we ensure that the full 'source' and 'milestoneX' folders are on the machine that will be performing the merge. This is to avoid partial merges, with which we have had problems.
However, could we encounter issues by performing commits to a branch that is not checked out at the root of the branch point? Perhaps w/ subtree merge info?