Bug 249950 - Folder missing Entries file should show up as a change when synchronizing
Summary: Folder missing Entries file should show up as a change when synchronizing
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: CVS (show other bugs)
Version: 3.5   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: platform-cvs-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-10-07 09:15 EDT by DJ Houghton CLA
Modified: 2019-09-06 16:04 EDT (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description DJ Houghton CLA 2008-10-07 09:15:02 EDT
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.
Comment 1 David Williams CLA 2008-10-07 09:33:52 EDT
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! 
Comment 2 Dani Megert CLA 2008-10-08 03:56:11 EDT
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?
Comment 3 DJ Houghton CLA 2008-10-08 09:09:09 EDT
Pascal?
Comment 4 Dani Megert CLA 2008-10-09 11:29:15 EDT
I would start by adding log code to the following empty catch blocks:
- MapProject.commitMapProject(String, IProgressMonitor)
- MapContentDocument.updateTag(IProject, String)
Comment 5 Dani Megert CLA 2008-10-09 12:13:23 EDT
>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.
Comment 6 David Williams CLA 2008-10-09 12:20:55 EDT
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"  :) 

Comment 7 John Arthorne CLA 2008-10-21 10:30:36 EDT
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.
Comment 8 Eclipse Webmaster CLA 2019-09-06 16:04:15 EDT
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.