Community
Participate
Working Groups
We have had a case where the RelEng tools are being used to tag for the build, but they seem to be silently failing to tag everything in the project. In both cases some of the project contents were tagged, but some sub-directories were not tagged. Marking as major since this causes build failures as not everything is checked out of CVS at build time.
fwiw, we've seen this happen in WTP ... maybe 3 times in the past 6 months. At first I thought it must be "user error" ... but, then it happened to me!
Do you eventually touch files outside the workspace so that they might be out of sync and then the releng tool silently ignores that and skips them?
Pascal?
I would start by adding log code to the following empty catch blocks: - MapProject.commitMapProject(String, IProgressMonitor) - MapContentDocument.updateTag(IProject, String)
>I would start by adding log code to the following empty catch blocks: >- MapProject.commitMapProject(String, IProgressMonitor) >- MapContentDocument.updateTag(IProject, String) I shouldn't just dump the tool output ;-) They are actually not relevant: one catches an InterruptedException and the other closes a stream. There are other empty catch clauses that should get logged but they are in the area of the copyright tool.
Too answer comment #2 from wtp ... I'm 99.9% sure the files were all in sync, but since happens rarely, it's kind of hard to know 100% . As an aside, I think all empty catch blocks should have log code. I once argued with a team mate, who maintained "no, there is no possible way that code could be reached" ... I countered with "ok, then let's put in "throw new Error("this code could never be reached");" That didn't exactly convince him, but he did prefer the log over taking any chance of throwing "Error" :)
Michael tracked this down to a problem in Pascal's workspace. The folders that were not tagged were missing the CVS "Entries" file in the CVS metadata folder. Thus CVS thinks there are no children and the subtree is never traversed. This likely happened due to a workspace crash or similar failure at the time CVS metadata was being written to disk. The question is how to fix this, or to surface the underlying condition so the user can correct it. When someone synchronizes a folder with no children, but for which there are children remotely, it should appear as an incoming change. In Pascal's workspace the synchronization showed no changes, so it appeared that everything was fine. The recommended fix is to make the synchronization logic handle this case better so that the broken metadata can be "fixed" by resynchronizing the project. This is a general CVS bug and nothing to do with the releng tool, so moving to CVS.
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.