Tcl Source Code

View Ticket
Login
Ticket UUID: 451333
Title: CVS storage of win/tcl.hpj.in @ -kb
Type: RFE Version: None
Submitter: davygrvy Created on: 2001-08-15 21:50:59
Subsystem: 53. Configure and Build Tools Assigned To: hobbs
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2001-11-20 17:16:08
Resolution: Fixed Closed By: hobbs
    Closed on: 2001-11-20 10:16:08
Description:
Please take off the binary attribute for that file.

If it is an attempt to always make sure it's in CRLF 
no matter what the CVS client checkout translation, it 
isn't a real solution.

CVS behaves the way it does...  Stop fighting it!

If I checked-out the sources with cygwin's CVS and 
(oOpps) didn't use CRLF for the translation mode, and 
expect to build it with the microsoft compiler, the 
checkout was in error, not how the files are stored.

(tcl/win)$ cvs admin -kkv tcl.hpj.in

If I expect to build Tcl with a certain set of tools, 
I (being the developer) had better be aware of my 
checkout translation with CVS.
User Comments: hobbs added on 2001-11-20 17:16:08:
Logged In: YES 
user_id=72656

fixed in 8.4a4cvs.

davygrvy added on 2001-11-13 10:00:29:
Logged In: YES 
user_id=7549

Jeff, You'll need to finish this off.  The repair gets done to the unix makefile as that's where the makedist target is.

davygrvy added on 2001-11-07 13:24:33:
Logged In: YES 
user_id=7549

See http://sourceforge.net/tracker/?func=detail&aid=219409&group_id=10894&atid=110894

for the patch to fix this issue.

davygrvy added on 2001-09-14 12:44:57:
Logged In: YES 
user_id=7549

I'll play around with a server-side solution in another SF 
project I have, and come back with some better ideas for 
securing the RCS files from corruption, too.

hobbs added on 2001-08-28 00:04:11:
Logged In: YES 
user_id=72656

Good idea Dave.  Please identify those files and make the 
necessary additions to */[Mm]akefile*

davygrvy added on 2001-08-25 06:37:04:
Logged In: YES 
user_id=7549

Yup.  I made a commit for getting those files nice and 
<eol> neutral in CVS, but I think we'll need a new makefile 
target.  Something like:

eolfix :
    $(TCLSH) $(TOOLSDIR)/eolFix.tcl <the files to fix>

andreas_kupries added on 2001-08-25 01:29:02:
Logged In: YES 
user_id=75003

Didn't that happen recently ... ?

dkf added on 2001-08-21 17:34:12:
Logged In: YES 
user_id=79902

IMO, this is a *very* good idea for a new feature for the
Tcl makefile, as it solves the problem in a way that makes
us no longer dependent on the vagaries of CVS.

davygrvy added on 2001-08-21 11:21:43:
Logged In: YES 
user_id=7549

Just adding a note to be utterly complete and documented...

One can never guarentee the translation mode of CVS upon 
checkout.  Mac for CR, Win for CRLF, and unix for LF.  The 
intent was to match text file format to the platform format 
of text files.  The main reason for this feature in CVS was 
to allow easy editing.

Building is a slighty different issue.  Conceptually, I see 
nothing wrong with checking out a DOS batchfile on unix in 
LF mode, editing it, then committing changes.  Batch files 
in LF mode won't run!  But the concern is editing.  Old 
fashioned VI won't cause a calamity.  CVS translation lines 
up perfectly when the CVS translation matches the editor 
mode.  No second guessing required.

But building is a different story.  As before, CVS 
translation could be any of 3 choices.  The problem 
of "what translation are we in?" arises when 
building/running/using and especially when grinding builds 
for all platforms from a single checkout/export on a mapped 
drive as is commonly done in large shops for dialies (or 
nightlies).

Because of the "no guarenteed translation", I would suggest 
a make target for fixing the special files that require a 
specific mode as part of the build process.

davygrvy added on 2001-08-16 17:01:02:
Logged In: YES 
user_id=7549

Committed changes to core...

Let's not abuse how CVS works.  Let's embrace it, stop 
fighting it, and use it the way it was intended.

If people will need to do a little prefixing of a few files 
because they did an LF checkout and want to use the MS 
compiler, this might be a good clue to them that they 
should align their CVS translation for the platform they 
are building on.

Or run tools/cvtEOL.tcl on a few files.

davygrvy added on 2001-08-16 16:18:28:
Logged In: YES 
user_id=7549

>Surely if there is a file that needs a particular
>translation, it should be marked as binary?

No, it needs to be checked-out with the correct translation 
mode.

Same goes for making a source dist.  It's a common "bug" 
that one needs to fix mkd.bat and rmd.bat from tclXX.tar.gz 
before using makefile.vc because the sources were packed 
from an LF checkout.  command.com barfs trying to run those 
batch files.  The same condition applies here.

One can checkout the sources with LF translation, but the 
tools barf building on windows.  This isn't CVS's fault.  
It was the developer's fault for using the wrong 
translation mode.  Doing a single checkout to build for all 
platforms on an NFS share is a nice idea, but it didn't 
work well at Scriptics.

dkf added on 2001-08-16 15:41:19:
Logged In: YES 
user_id=79902

Surely if there is a file that needs a particular
translation, it should be marked as binary? Particularly as
tcl.hpj.in contains no keywords to substitute anyway.

davygrvy added on 2001-08-16 08:53:04:

File Added - 9584: diff.txt

Logged In: YES 
user_id=7549

same goes for tools/tcl.wse.in, too.

If we're to fully accept the behavior of CVS, we'll need to 
fix tools/genStubs.tcl, as well.  See attached patch.

davygrvy added on 2001-08-16 07:37:23:
Logged In: YES 
user_id=7549

see 427644, also, for a spinning wheel cicular debate I had 
with myself :)

Attachments: