-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
error: could not symlink 'path1' to 'path2': Function not implemented #5517
Comments
I assume you What filesystems are |
That is correct.
|
I was less concerned about the underlying hardware, but how it was formatted (ReFS, FAT32, NTFS, ...), and in the case of
I had a sneaking suspicion it might be. |
E: NTFS |
Looking at 8241ae6#diff-34f226145d3399ac034db4d76355be47bd76a6b919058929124d82461205d11fL707-R722, it looks like the default for |
I'm glad there is a workaround. As a note (in case the git-scm team wasn't already aware of it): on this page: https://git-scm.com/docs/git-difftool it says:
so it would appear that documentation is out of sync with the executable? Or vice versa? |
@vwheeler63 this information is unfortunately a bit misleading. I am not a fan of the Also, is there any reason why you marked up your reply, not the output of
This note was introduced in 1f22934, when the statement was true. However, when I converted this command from a Perl script (!) to a built-in written in portable C in 03831ef, I changed that to respect the What In the long run, I am fairly convinced you will want to reformat your RAM disk using ReFS (or NTFS), to avoid similar problems. Having said that, the regression in 8241ae6 is real and needs to be addressed.
Now, this is curious. The |
Hi, Johannes! I'm honored to speak with you!
Ah! That explains that. Thank you.
Fair question: my only intent was to indent the paragraph so that it showed I was commenting about the line above it. The 4 backticks was unintentional (I intended 3, and in retrospect, could merely have indented the paragraph—and the fact that the 4 backticks appeared twice was probably a copy-paste casualty).
That makes sense and is good to know. It also makes sense to do the test once and keep the result as a repository-configuration value—as opposed to doing the test with every command, if only for sake of limiting how often that overhead is incurred. (It's also quite orienting to see that in the C code [since I am just getting familiar with the project]. Thank you for that.)
In fact I thought about it, but decided against it. Reason: I have the RAM disk there and configured the way it is (FAT32 + Direct-IO access as opposed to through a SCSI driver) for speed. (Reason: I do a large amount of small-file generation and deletion every day [including web-browser caches] there to reduce wear-and-tear on my SD drives.) If being able to use symlinks was my priority, I would certainly use NTFS. (Even the newest version of my RAM disk software doesn't yet know about ReFS.) Though I will humbly admit: I do not know if I would notice the difference using NTFS.... Since there is no wear-and-tear concerns with doing actual file copies on a RAMDisk (as there is with SD drives), for now I will set a global
I'm thankful for that.
I am indeed running in Developer Mode. On a hunch, I went to look at the repository where I was working the last time I used In ConclusionI am happy to set a global I just tried it and indeed, |
Are there good reasons I have not yet thought of to reconsider using NTFS on my RAM drive? (I was fascinated reading the commit message on 03831ef! Thank you for sharing that.) |
I encountered this problem as well. This could also be related to 84f0bdc. eta: in my case, I'm on Windows 11, and my repository and my TEMP directory are both on |
|
Ah... I saw the "2 weeks ago" in the commit I linked and assumed it was new. My bad. In that case, I don't see why I'm getting different behaviors between 2.48.1 and 2.49.0, considering symlinks seem to be supported just fine when using 2.48.1. |
I performed some more extensive tests, here are the differences between 2.48.1 and 2.49.0.
In short, it looks like no matter what, 2.49.0 is unable to create symlinks for difftool. I also find it interesting that both versions are unable to create symlinks for difftool when core.symlinks is false, as I would expect that to only affect the behaviour for symlinks in repositories.
(p.s. after reading through the prior discussions, I understand this isn't the same as the original problem reported by @vwheeler63, I just happened to get a similar error message on the same day 😅 ) |
Thank you for filling out a Git bug report!
Please answer the following questions to help us understand your issue.
What did you do before the bug happened? (Steps to reproduce your issue)
What did you expect to happen? (Expected behavior)
What happened instead? (Actual behavior)
What's different between what you expected and what actually happened?
Anything else you want to add:
Please review the rest of the bug report below.
You can delete any lines you don't wish to share.
[System Info]
git version:
git version 2.48.1.windows.1
cpu: x86_64
built from commit: 2bd190b
sizeof-long: 4
sizeof-size_t: 8
shell-path: D:/git-sdk-64-build-installers/usr/bin/sh
feature: fsmonitor--daemon
libcurl: 8.12.1
OpenSSL: OpenSSL 3.2.4 11 Feb 2025
zlib: 1.3.1
uname: Windows 10.0 19045
compiler info: gnuc: 14.2
libc info: no libc information available
$SHELL (typically, interactive shell): C:\Program Files\Git\usr\bin\bash.exe
[Enabled Hooks]
The text was updated successfully, but these errors were encountered: