public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Andrey Repin <anrdaemon@yandex.ru>
To: L A Walsh <cygwin@tlinx.org>, cygwin@cygwin.com
Subject: Re: Different symlink resolution in native console vs. terminal
Date: Fri, 19 Mar 2021 16:29:23 +0300	[thread overview]
Message-ID: <691553387.20210319162923@yandex.ru> (raw)
In-Reply-To: <6050B3DF.2090805@tlinx.org>

Greetings, L A Walsh!

> On 2021/03/10 14:51, Andrey Repin wrote:
>> Running `pwd -P` or `readlink -e .` in a specific directory from native
>> terminal provide unresolved answers.
>>
>> The directory $HOME/Documents/EVE is a symlink pointing to $HOME\Documents\Games\EVE.
>>
>> When running either command inside the directory from native terminal, the
>> result is literally /home/Documents/EVE, but when running the same command
>> from mintty inside same directory, the results may vary.
>>
>> $HOME/Documents/EVE or $HOME/Documents/Games/EVE (which is expected answer).
>> It also seems, there are results difference between `bash -l` `and bash -i`
>> and `pwd -P` and `readlink -e .`.
>> Generally, "pwd" is more correct.
>>   
> 1) When you look at the processes(native v mintty), are both the
> same #bits?

Interesting question. Originally I tested in 32-bit console, but it seems this
is not relevant.

$ START "" "%SystemRoot%\sysnative\cmd.exe"
$ CD /D "%USERPROFILE%\Documents\EVE"
$ readlink -e .
/home/anrdaemon/Documents/EVE

There's even MORE interesting sequence:

[anrdaemon@DAEMON2 C:\Users\anrdaemon\Documents\EVE]
$ bash -i
anrdaemon@daemon2:cygwin:~/Documents/EVE
$ readlink -e .
/home/anrdaemon/Documents/EVE
anrdaemon@daemon2:cygwin:~/Documents/EVE
$ cd "$( pwd )"
anrdaemon@daemon2:cygwin:~/Documents/EVE
$ readlink -e .
/home/anrdaemon/Documents/Games/EVE

> 2) Can you reproduce this with any other dir?

In fact. I picked a directory outside Cygwin mount table for this test:

[anrdaemon@DAEMON2 C:\]
$ MKLINK /J "C:\Games\KP2" "C:\Games\_old\KP2"
Junction created for C:\Games\KP2 <<===>> C:\Games\_old\KP2

[anrdaemon@DAEMON2 C:\Games]
$ CD /D "C:\Games\KP2"

[anrdaemon@DAEMON2 C:\Games\KP2]
$ pwd -P
/c/Games/KP2

[anrdaemon@DAEMON2 C:\Games\KP2]
$ readlink -e .
/c/Games/KP2

[anrdaemon@DAEMON2 C:\Games\KP2]
$ bash -i
anrdaemon@daemon2:cygwin:/c/Games/KP2
$ pwd -P
/c/Games/_old/KP2
anrdaemon@daemon2:cygwin:/c/Games/KP2
$ readlink -e .
/c/Games/KP2
anrdaemon@daemon2:cygwin:/c/Games/KP2
$ cd "$( pwd )"
anrdaemon@daemon2:cygwin:/c/Games/KP2
$ pwd -P
/c/Games/_old/KP2
anrdaemon@daemon2:cygwin:/c/Games/KP2
$ readlink -e .
/c/Games/_old/KP2

However, the C:\Games is a volume mount point. May be that is a problem?

Another test, this time no external factors, all directories in path are real:

[anrdaemon@DAEMON2 C:\]
$ MKLINK /J "C:\dev\php" "C:\dev\temp\install\php"

[anrdaemon@DAEMON2 C:\]
$ CD /D "C:\dev\php"

[anrdaemon@DAEMON2 C:\dev\php]
$ pwd -P
/c/dev/php

[anrdaemon@DAEMON2 C:\dev\php]
$ readlink -e .
/c/dev/php

> Both Documents and Games have multiple copies due to the public
> docs+games  are in the docs+games library (along with user versions).

As shown in the tests, this is not really a problem.

> Maybe the winterm is picking up a different file?

Eh? Terminal is just a display.

> I think one or both of those dirs have a GUID associated with them, maybe
> one is using a different GUID than the other?

???

> I also have Win7x64 but have never seen them misbehaving...

> How was your link made?

EVE is a symlink, but junctions behaving just the same and do not require
elevation to create.


-- 
With best regards,
Andrey Repin
Friday, March 19, 2021 15:49:11

Sorry for my terrible english...


      reply	other threads:[~2021-03-19 13:35 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-10 22:51 Andrey Repin
2021-03-16 13:34 ` L A Walsh
2021-03-19 13:29   ` Andrey Repin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=691553387.20210319162923@yandex.ru \
    --to=anrdaemon@yandex.ru \
    --cc=cygwin@cygwin.com \
    --cc=cygwin@tlinx.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).