On Wed, Dec 07, 2016 at 01:12:25AM +0000, Ramsay Jones wrote: > > > On 07/12/16 00:10, Brandon Williams wrote: > > On 12/06, Junio C Hamano wrote: > >> POSIX cares about treating "//" at the very beginning of the path > >> specially. Is that supposed to be handled here, or by a lot higher > >> level up in the callchain? > > > > What exactly does "//" mean in this context? (I'm just naive in this > > area) > > This refers to a UNC path (ie Universal Naming Convention) which > is used to refer to servers, printers and other 'network resources'. > Although this started (many moons ago) in unix, it isn't used too > much outside of windows networks! (where it is usually denoted by > \\servername\path). > > You can see the relics of unix UNC paths if you look at the wording > for basename() in the POSIX standard. Note the special treatment of > the path which 'is exactly "//"', see http://pubs.opengroup.org/onlinepubs/009695399/functions/basename.html > > ATB, > Ramsay Jones Please allow one more comment about UNC: They are used under Windows, and typically wotk together with Git. One breakage between 2.10 and 2.11 has been observed, saying that pushing to \\SERVER\SHARE\DIRECTORY does not work any more. It has been reported under "git 2.11.0 error when pushing to remote located on a windows share" both here and here: https://github.com/git-for-windows/git/issues/979#issuecomment-264816175 I don't have a Windows box at the moment, and I don't know if the breakage was introduced by changes in real_patyh(). But in any case it seems that e.g. //SEFVER/SHARE/DIR1/DIR2/.. must be converted into //SEFVER/SHARE/DIR1 and \\SEFVER\SHARE\DIR1\DIR2\.. must be converted into \\SEFVER\SHARE\DIR1