delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2000/12/12/04:24:22

Date: Tue, 12 Dec 2000 11:22:42 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: Tim Van Holder <tim DOT van DOT holder AT pandora DOT be>
cc: djgpp-workers AT delorie DOT com
Subject: RE: MS-DOS path support in CVS
In-Reply-To: <NBBBIOJKJBNCHJBEKHLOIEEHCCAA.tim.van.holder@pandora.be>
Message-ID: <Pine.SUN.3.91.1001212112152.24447H-100000@is>
MIME-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On Mon, 11 Dec 2000, Tim Van Holder wrote:

> In the case of 'other versions' though, that would mainly be either
> the Win32 or the Linux version. The Win32 version could be seen as
> inconsequential; once we have proper networking under Win32, the
> DJGPP version could replace it (for us DJGPP users anyway). As for the
> Linux port, it would be easy enough to set up symlinks to simulate
> /de-style paths (/dev/C -> /mnt/dosdrive).
> I agree that this isn't perfect, but storing the dos path would also
> break other CVSes (Linux won't support it, and I believe the NT
> version requires it to be ':local:D:\ospath'). In any case, sharing
> a sandbox between CVS versions will usually lead to trouble anyway
> due to text file conventions, so inter-CVS compatibility should not
> be a major factor for the DJGPP version; if it can be preserved: fine,
> if not, that's not too bad (IMO, anyway).

I only mentioned other ports because, when I suggested to replace a
colon with a semi-colon, you said that compatibility with other CVS
ports will take a blow.

I don't see how text file format is a problem: I expect CVS either to
use text-mode reads or remove CR before LF after reading the files.

If compatibility with other ports _is_ important, converting the
result of _fixpath to use backslashes is a trivial loop, so it would
be easy to add.

DJ, do you know if the Cygwin port of CVS will work with drive letters
and backslashes in CVS/Root files (assuming those files were created
by some other CVS port)?

> > Is it possible to plumb these two holes by calling _fixpath on the
> > /dev-style filename just before you print a message or write the path
> > to a file?  Perhaps CVS uses a small number of special functions to do
> > those chores; if so, you could change only those few functions.
> That would be a solution, but _fixpath does too much. Some people
> tend to use SUBSTed drives with DJGPP and/or CVS, and fixpath would
> resolve those as well

??? _fixpath does not resolve SUBST and JOIN.  Perhaps you were
thinking about _truepath, which I didn't suggest for this very
reason (and also because _truepath can return a UNC).

> And to always turn /dev/e/foo into E:\foo (whether manually, or through
> _fixpath) would be equally confusing to people who actually specified a
> /dev-style path.

I think experience suggests otherwise.  For example, Fileutils always
convert file names to forward slashes and report them with forward
slashes, but I never heard any complaints about that.  It looks like
people who use DJGPP are accustomed to forward slashes enough to not
be annoyed by that.

However, /dev/e/foo is IMHO too unusual to be easily understood.

> So either I try to add proper DOS path support everywhere, with a
> potential for subtle breakages, but with paths shown the way they were
> given, or I use this workaround, which would keep most of CVS intact,
> but has the abovementioned drawbacks.

If you find the drive support too painful to add, I'm willing to 
volunteer to add it and send you patches.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019