Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 113651

Summary: Unable to see Ascii/Binary changes
Product: [Eclipse Project] Platform Reporter: Chris Nappin <c.nappin>
Component: CVSAssignee: Michael Valenta <Michael.Valenta>
Status: RESOLVED WORKSFORME QA Contact:
Severity: major    
Priority: P3 Keywords: helpwanted
Version: 3.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Chris Nappin CLA 2005-10-25 07:03:50 EDT
If a file in CVS is changed from Binary to ASCII, and that change committed, how
can other Eclipse users in our team pick up that change?

Is there any equivalent to a "cvs update -A" in Eclipse?
Comment 1 Michael Valenta CLA 2005-10-25 08:53:33 EDT
Yes, you can perform a Replace with>Another branch or version and choose HEAD. 
This results in a "cvs update -A". I don't think it will help you though, 
since the server will just send back the keyword mode that was sent up from 
the client, regardless of what it was set to on the server. That is why we 
have the message appear during the Change ASCII/Binary Properties action that 
states that all users of the project must check out the content from scratch.

Of course, if I am wrong on this, I would be happy to be corrected but the 
last time I looked, CVS just didn't handle keyword changes well.
Comment 2 Chris Nappin CLA 2005-10-26 07:17:53 EDT
Michael, I'm no CVS guru but I'm not sure your assesment is correct. I've never
had any problems with changing Ascii/Binary until moving to using Eclipse. 

We're using CVS 1.11.18, BTW, though I don't think any CVS functionality has
changed in this area in many years. 

The command line CVS tools can cope with this scenario quite happily, so if at
all possible I think this functionality should be added to Eclipse. 

Allow me to detail further. I have a CVS module open in Eclipse, and a separate
checkout of that module using the Cygwin command line tools to simulate another
user. I create a new binary file, add it and commit it. From the command line, I
then checkout that file (by running "cvs update"). A "cvs status" of that file
is as follows:

$ cvs status test2.sh
===================================================================
File: test2.sh          Status: Up-to-date

   Working revision:    1.1
   Repository revision: 1.1     /opt/cvsroot/test/test2.sh,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      -kb

So the command line has checked it out as binary.

I then alter the file in Eclipse from Binary to Ascii, and commit that change.
Running "cvs status" now recognises that the file has changed:

$ cvs status test2.sh
===================================================================
File: test2.sh          Status: Needs Patch

   Working revision:    1.1
   Repository revision: 1.2     /opt/cvsroot/test/test2.sh,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      -kb

I then run "cvs update -A" on the command line, nothing else, and I get the more
recent version of the file:

$ cvs update -A test2.sh
U test2.sh

$ cvs status test2.sh
===================================================================
File: test2.sh          Status: Up-to-date

   Working revision:    1.2
   Repository revision: 1.2     /opt/cvsroot/test/test2.sh,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)   

Notice the Binary flag has been reset to ASCII.
Comment 3 Michael Valenta CLA 2005-10-26 08:52:48 EDT
Fair enough. We'll investigate this for 3.2 if we can fit it in.
Comment 4 Michael Valenta CLA 2006-08-17 10:38:24 EDT
We do not plan on addressing this issue in 3.3.
Comment 5 Chris Nappin CLA 2006-08-17 10:51:22 EDT
It's very disappointing to see that such major CVS bugs (e.g. this one and 41331) are given such low priority. I appreciate you only have fixed resources, and I'm afraid I don't have the time to supply patches myself, but it appears the CVS component itself has a low priority?
Comment 6 Michael Valenta CLA 2006-08-17 11:03:02 EDT
A major bug is something that affects your day to day development. Apart from testing, I don't think I have used the Change ASCII/Binary property dialog more than once or twice in the last few years. Realistically, we will use our resource more effectively if we address bugs that can make user more prodictive on a day to day basis.
Comment 7 Chris Nappin CLA 2006-08-17 11:15:54 EDT
Unfortunately I'm a CVS administrator for a large development team so I come accross this issue quite regularly. The fact it affects the entire project team and has no realistic work around I think justifies the "major" description.
Comment 8 Richard Hands CLA 2006-08-17 11:22:53 EDT
I also work with a large development team, both in the UK and offshore in india, and a lot of the developers have their eclipse settings incorrect at some point or another, which leads to a lot of incorrect filetype checkins.  This causes considerable pain to the whole team every time it happens.
Comment 9 Michael Valenta CLA 2006-08-17 11:26:54 EDT
Fair enough. I'll add it back to 3.3 and I'll have a look to see if the fix can be made easily. If it turns out to be a small amount of work, we can do it. However, if it requires a significant effort, I doubt we will be able to address it.
Comment 10 Michael Valenta CLA 2006-08-17 11:39:17 EDT
OK, here's what I have found. We cannot change the default update to have -A since the update is meant to work when either HEAD or a tag is loaded. However, you can get an "update -A" by either performing a Replace With Another Branch or Version and choose HEAD or, if the user does not want to loose changes, they can perform a Switch to Another branch or version and explicitly choose HEAD. Both of these perform an "update -A". I would recommend the later since it does not affect local changes.