[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Info-cvs Digest, Vol 3, Issue 42

From: Matthew Herrmann
Subject: RE: Info-cvs Digest, Vol 3, Issue 42
Date: Tue, 25 Feb 2003 10:32:33 +1100

are you saying that they must be checked out to unix format, even on windows
machines? then how does Visual Basic compile the source code, since it
expects it in CRLF format?

-kb is used to tell cvs not to presume to know what an end-of-line character
should look like. you cannot have this and also do (line-based) merges,
since it doesn't know what the end of a line is!

your best bet, short of checking out in windows format, is to actively
subvert your build process. First, re-save your visual basic scripts as
mergeable text with the -kk (default) setting. You will then get mergeable
(but unix terminated) text when you check out. Create a script which
converts checked out vb files to have windows line endings, before you
compile or edit them. Then, before you check them in again, you'll need to
make another script which converts them back to unix format. Sounds
complicated? It is.

This is because this is intentionally avoiding a useful feature of CVS which
is to convert line endings automatically for you to your target platform. I
would have a chat to the people writing the build scripts since this seems a
bit like the tail wagging the dog. Alternatively, if you're developing in
VB, just set up your environment to check in/check out in Windows format,
and other unix developers can happily check in/check out in Unix format, and
noone will be the wiser to the platform anyone used to do their work.

Anyway, this batch file converts from unix to windows format if you decide
to go the hard way:
@echo off
sed "s/\(.*\)/\1/" %1 > %TEMP%\~2389234.tmp
cp %TEMP%\~2389234.tmp %1


Matthew Herrmann
Far Edge Technology

-----Original Message-----
Date: Mon, 24 Feb 2003 17:36:52 -0500
From: Douglas Finkle <address@hidden>
To: "info-cvs (E-mail)" <address@hidden>
Subject: Problems with cvswrappers MERGE directive
Message-ID: <address@hidden>
Content-Type: text/plain;
MIME-Version: 1.0
Precedence: list
Message: 11

I need to be able to provide the CVS server with a directive
that forces a merge using the cvswrappers functionality,
overriding CVS's default COPY behavior for files marked as '-kb'.

Without adding complications of explaining our build process
suffice it to say there is a requirement that all sources,
regardless of the platform on which they build/run, are
checked out on UNIX. This of course causes all files to have
UNIX line endings-- unless the files are -kbe'ed, in which
case line endings are untouched.

The lack of a CR/LF line ending format cause file read errors
by IDE's such as MS VB-- unless line endings are preserved by
way of marking the files as binary, i.e. '-kb'. But then there
is no merge-- only copy.

What I really need, since many of the IDE files are truly
ascii text, is to using the MERGE directive to *force* the
merge of the selected files.

Here is an example of what I have in cvswrappers:

# Visual Basic Formats
*.[Cc][Ll][Ss] -k 'b' -m 'MERGE'

But, the MERGE directive is being ignored, and a COPY is
instead occurring. I really need this flexibility... hopefully
I am just doing something wrong, or maybe a later version
of the server will do.

Presently using CVS 1.11.1p1 on Solaris 2.8.  Thanks!!!

reply via email to

[Prev in Thread] Current Thread [Next in Thread]