Re: [fossil-users] Files named "AUX" on Windows
On Tue, Oct 04, 2016 at 01:40:59PM -0600, Andy Bradford wrote: > Thus said Richard Hipp on Tue, 04 Oct 2016 12:15:58 -0400: > > > Does anybody know of a reasonable work-around? > > What do other VCS do? Presumably CVS, SVN, Hg, Git, etc. have all > Wsupported indows for a long time. Do they just return a sensible error? > I just tried with git, seems not handled very well. git version: - Linux (debian 8): git version 1.9.1 - Windows: git version 2.7.4.windows.1 Here's what I got on windows when cloning a repository from my linux computer which contain a file named "aux.txt": - It just clone the repository without showing any errors. - The aux.txt file never get created. - Command like "git diff" or "git status" tell me that "aux.txt" is missing. - If I modify and commit aux.txt on the linux side. "git pull" on windows side tell me that aux.txt has change without reporting any errors but the file is still not created. -- Martin G. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Files named "AUX" on Windows
On Tue, Oct 4, 2016 at 8:54 PM, Scott Robisonwrote: > If we don't support it, Fossil potentially looks bad to someone for not > creating what appear to be ordinary file names. If we do support it, Fossil > potentially looks bad for creating files or directories that other processes > can't interact with normally. > > I wouldn't mind taking a stab at it if enough people think it is worthwhile, > but I'm not sure it is worthwhile. BTW, tar has the same problem when unpacking in windows archives created on other OSes. None of the tars that I happened to use in the years did anything special with these files: they cannot be created in the normal way, so tar signals an error and that's it. (Yes, aux.c happens to be a quite common file name :) ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
[fossil-users] Next Fossil release
I'm thinking we should cut a new Fossil release shortly after the SQLite 3.15.0 release (which should be out in less than two weeks). Key feature for Fossil 1.36 is the addition of unversioned content. -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Files named "AUX" on Windows
On 10/4/2016 12:40 PM, Andy Bradford wrote: Thus said Richard Hipp on Tue, 04 Oct 2016 12:15:58 -0400: Does anybody know of a reasonable work-around? What do other VCS do? Presumably CVS, SVN, Hg, Git, etc. have all Wsupported indows for a long time. Do they just return a sensible error? When we still used CVS around here, my recollection is that it simply failed spectacularly due to a lack of testing returns from system calls that "cannot fail". It wasn't the only problem we had with CVS. We switched to fossil for lots of reasons, but at the time all of the other choices seemed to be run by people with an attitude problem about Windows. This is one of those bugaboos that is mostly ignored by the tools, and that answer usually just works since eventually developers learn that they can't use those names. IMHO, using namespace tricks to create the files or folders with reserved names will only result in additional mysterious failures and pain for Windows users. No build systems or compilers will be using those tricks, and even deleting the files later becomes a problem for the user. The best action would be to make sure that the failure to write the file on a particular system gets a clear error message so the user knows who to blame, and doesn't blame fossil. A possible work-around would be to transform the name from a reserved name to a working (but unexpected) name. Fossil would need to have a setting to control that, and likely should provide configuration of what transformation is done. We already do something sort of like that for symbolic links, so there is that precedent. Just adding a tilde to the basename would be enough to allow the checkout. The project's build system or other automation would still be broken, of course. (A single setting could be added. If missing, fossil acts as it does now. If present, files that can't be opened are modified by appending the content of the setting to their basename. No idea what happens if you change that setting with a checkout open. It probably should be versionable. The mapping would need to apply to all of fossil's operations on that file or folder. This is beginning to sound like an iceberg-like feature. One setting implies 100s of lines of code.) Beyond that, the list of disallowed names is probably stable enough that a warning on checkin could be made. But I strongly suspect the usual response to that warning by a *nix user will be "#$*!@ Windows, I just want to check in and go home" and the bad names will lurk until the project gets ported. I vaguely recall hearing that there was a major open source project that had a folder named aux that was bit by this issue, and IIRC they ultimately resolved it by renaming the folder to something that worked on all platforms. I'm not recalling what project that was, though. -- Ross Berteig r...@cheshireeng.com Cheshire Engineering Corp. http://www.CheshireEng.com/ +1 626 303 1602 ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Files named "AUX" on Windows
Thus said Scott Robison on Tue, 04 Oct 2016 12:54:27 -0600: > We could modify the Windows code to use the \\.\ prefix trick and then > fossil could create / delete the files. If we did that, how much pain > would it cause to other tools and processes on the Windows system? Whether or not they can actually use the file after Fossil creates it on disk is a different question, but at least we don't prevent them from opening their repository. Should Fossil employ the UNC prefix trick when creating files? Andy -- TAI64 timestamp: 400057f407c3 ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Files named "AUX" on Windows
Thus said Richard Hipp on Tue, 04 Oct 2016 12:15:58 -0400: > Does anybody know of a reasonable work-around? What do other VCS do? Presumably CVS, SVN, Hg, Git, etc. have all Wsupported indows for a long time. Do they just return a sensible error? Andy -- TAI64 timestamp: 400057f405ef ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Files named "AUX" on Windows
On Tue, Oct 4, 2016 at 2:54 PM, Scott Robisonwrote: > > We could modify the Windows code to use the \\.\ prefix trick and then > fossil could create / delete the files. If we did that, how much pain would > it cause to other tools and processes on the Windows system? > > If we don't support it, Fossil potentially looks bad to someone for not > creating what appear to be ordinary file names. If we do support it, Fossil > potentially looks bad for creating files or directories that other > processes can't interact with normally. > This problem is not unique to Fossil. Several years ago, a (then) coworker of mine cussed at Windows when files he added to whichever VCS his department was using (Synergy, I think) could not be checked out on a windows PC. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Files named "AUX" on Windows
On Tue, Oct 4, 2016 at 10:22 AM, Pierpaolo Bernardiwrote: > On Tue, Oct 4, 2016 at 6:15 PM, Richard Hipp wrote: > > See https://www.fossil-scm.org/aux-test/doc/trunk/aux.md > > > > Apparently if a Fossil repository contains a file whose basename is > > "aux", then an attempt to open or check-out that repo fails with an > > error. Only the basename needs to be "aux". The full name can be > > things like "src/aux.c" or "doc/aux.txt". > > > > Does anybody know of a reasonable work-around? > > According to this page, it looks like it can be done: > > https://blog.onetechnical.com/2006/11/16/forbidden-file-and- > folder-names-on-windows/ > > But in practice these are forbidden names in windows, the only > reasonable path is to rename these files to something else. > We could modify the Windows code to use the \\.\ prefix trick and then fossil could create / delete the files. If we did that, how much pain would it cause to other tools and processes on the Windows system? If we don't support it, Fossil potentially looks bad to someone for not creating what appear to be ordinary file names. If we do support it, Fossil potentially looks bad for creating files or directories that other processes can't interact with normally. I wouldn't mind taking a stab at it if enough people think it is worthwhile, but I'm not sure it is worthwhile. -- Scott Robison ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Files named "AUX" on Windows
On 10/4/2016 9:22 AM, Pierpaolo Bernardi wrote: On Tue, Oct 4, 2016 at 6:15 PM, Richard Hippwrote: See https://www.fossil-scm.org/aux-test/doc/trunk/aux.md Apparently if a Fossil repository contains a file whose basename is "aux", then an attempt to open or check-out that repo fails with an error. Only the basename needs to be "aux". The full name can be things like "src/aux.c" or "doc/aux.txt". Does anybody know of a reasonable work-around? According to this page, it looks like it can be done: https://blog.onetechnical.com/2006/11/16/forbidden-file-and-folder-names-on-windows/ The "official" story currently can be found here: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx The bottom line remains the same, though. Due to a long chain of "reasonable at the time" backward compatibility decisions, there is a list of names that are recognized by the Windows API and cannot be file names. Some of those names were defined by DOS 1.0 and inherited from CP/M. So that is a *long* history. There are also ways to get around that. The blog post suggested a path prefixed by \\.\ would work. That might, but that prefix is documented for access to device drivers. There is also the \\?\ prefix, which can be used to get around the MAX_PATH length limit, and which sidesteps most parsing of the path name as a result. The best advice is to not use those reserved names for either files or folders in repositories that will be used on Windows. But in practice these are forbidden names in windows, the only reasonable path is to rename these files to something else. Although rare, it is possible for a suitably privileged user (likely through a badly thought out device driver) to create more such names. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users -- Ross Berteig r...@cheshireeng.com Cheshire Engineering Corp. http://www.CheshireEng.com/ +1 626 303 1602 ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Files named "AUX" on Windows
On Tue, Oct 4, 2016 at 6:15 PM, Richard Hippwrote: > See https://www.fossil-scm.org/aux-test/doc/trunk/aux.md > > Apparently if a Fossil repository contains a file whose basename is > "aux", then an attempt to open or check-out that repo fails with an > error. Only the basename needs to be "aux". The full name can be > things like "src/aux.c" or "doc/aux.txt". > > Does anybody know of a reasonable work-around? According to this page, it looks like it can be done: https://blog.onetechnical.com/2006/11/16/forbidden-file-and-folder-names-on-windows/ But in practice these are forbidden names in windows, the only reasonable path is to rename these files to something else. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Files named "AUX" on Windows
On Tue, Oct 04, 2016 at 12:15:58PM -0400, Richard Hipp wrote: > See https://www.fossil-scm.org/aux-test/doc/trunk/aux.md > > Apparently if a Fossil repository contains a file whose basename is > "aux", then an attempt to open or check-out that repo fails with an > error. Only the basename needs to be "aux". The full name can be > things like "src/aux.c" or "doc/aux.txt". aux is a device name, nul and a couple of other things should trigger the same behavior. I can't remember if there was ever a way to workaround it. One of the funny ways to kill a Win9x installation was to patch the io.sys and rename aux to windows... Joerg ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
[fossil-users] Files named "AUX" on Windows
See https://www.fossil-scm.org/aux-test/doc/trunk/aux.md Apparently if a Fossil repository contains a file whose basename is "aux", then an attempt to open or check-out that repo fails with an error. Only the basename needs to be "aux". The full name can be things like "src/aux.c" or "doc/aux.txt". Does anybody know of a reasonable work-around? -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users