Sorry about the long post, but I really would like some help/feedback.
I am trying to use TFS, netTiers and codesmith, but really am having alot of difficulty. I am wondering if anyone out there has already tackled this and if so, how?
Using these three applications together is generally not a problem, until you start wanting to branch and merge.
Developers Environment:
- Visual Studio 2008 Team Suite
- SQL Server Express
We have a dedicated "codesmith" machine. The repository is as follows:
Project1
- branches
-branch1
- Configuration
- Codesmith file (.csp)
- Other Project Files
- Project1.sln
- trunk
- Configuration
- Codesmith file (.csp)
- Other Project Files
- Project1.sln
Here you can see that there is a .csp file in the source control. The idea behind this is that developer A is working on branch1, which requires new DB tables and several DB changes. He can make the changes on his local DB (which is in source control too). Check those changes into his branch. The codesmith monkey then logs onto the codesmith box and load up his branch. Make nessecary changes to the codesmith config (.csp) and run codesmith against his branch. Normal merging between the trunk and the branches can happen as usual. When branch1 is finished, it can be merged back into the trunk. This merge will include any new tables in the (.csp) etc.
This all should work very well. In practice, it does not.
Alot of the problems come from the random order in which codesmith seems to want to do things. The following files are problems (not a complete list):
- Project.Data - DataRepository.cs
- Project.Data.Bases - NetTiersProviderBase.cs
- Project.Data.SqlClient - Procedures.xml
- All VS Project Files (.csproj)
All these files generate large lists of essentially tables, but they are generated *seemingly* randomly every time. I have managed to fix most of these, but changing the nettiers templates and sorting the tables before these lists are generated. This then gives a consistent order for the merge tool to use.
The next problem is that the codesmith configuration file changes alot for each save too. This causes so many problems that i simply no longer use codesmith to edit it. I open it in notepad and add tables as necessary.
EVen with my various fixes, I am still having alot of problems.
Has anyone acheived what I am trying to do? It seems to me that this is fairly fundamental to programming in teams.
Any ideas?
thanks,