Hi, I have been given the task of automating the build process for the place I work at. I got the build and unit-tests etc working, also I have a build and deployment to a test server automated (triggered using cruisecontrol.net). My next step is to clean up how we patch our code changes for testing. Currently the source used for build and deployment to test servers is on a network share, but it is becoming increasingly hard to track what files have changed and why, then a nightmare to remove changes (say temporarily if someone goes on holiday). After toying with a few ideas people seem to like the idea of a process that does the following using .patch files.
1. Unpatch any currently patched patches. 2. SVN update (so now we are at the point of whats currently in SVN). 3. Patch any patches (more useful to see why a code change fails from perspective of making the code change to current SVN code rather than trying to add new code to previous svn revision modified with patches ... if you get me. I did toy with idea of having a seperating testing repoistory which receives same commits as official repo + testing patchings therefore keeping the modifications section but that seemed a little over kill and people didn't like it). 4. Build. 5. Deploy. This way we can still have a read only share showing the state of the code after an svn update and patching. Unfortunately because you can't perform tasks before the source control block the svn update is handled by another nant task. This is removing the nicely formatted modifications section in our logs. While I don't think anyone here uses that section, it would be nice to still have it there if possible, so I am open for suggestions on how to do this. One idea I looked into was coding my own sourcecontrol block that inherits the SVN source control block and includes the patching process in it, however then I don't see how to output patching errors to the error output log so I still lose (but more so than losing the modifications section). The only other way I see of doing it is trying to match the xml output in the logs for the modification section that cruisecontrol.net uses ready for the web dashboards xsl parsing for the frontend (which I am hoping someone else has done maybe???). Any suggestions?? Thanks in advance.
