Date: Tue, 12 Dec 2000 11:22:42 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is To: Tim Van Holder cc: djgpp-workers AT delorie DOT com Subject: RE: MS-DOS path support in CVS In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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 Precedence: bulk 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.