-
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
git bisect is not junction-aware #2172
Comments
Junctions and Reparse points are a source of much frustration and confusion relative to nix/POSIX symlinks. It's not my area of expertise. However do search through the issues of the last year or so for discussions about how the |
given that 2172 is this issue, and 607 is about symlink targets getting deleted during 437 feels like it's half-related: it's about mingw/msys treating junctions as mount points, instead of as symlinks, and so git will do what it does for mount points already - which is kind of a false analogy since junctions are much closer to symlinks than they are to mount points, and even now that win10 supports true symlinks, the command for them (mklink) creates "links" that are either true symlinks or junctions, depending on the user's permissions which makes it pretty clear that Windows considers junctions a form of link, not a mounted volume. (if you run So with that said: the issue here is making sure Note that this is specifically for the |
Careful with comments like this one: it can easily suggest that you're not half as familiar with the matter as you think you are.
This is simply incorrect. Symbolic links are resolved in user space, mount points are resolved in kernel space. Junction points are resolved in kernel space. So there.
I understand that you are frustrated, and as such want to vent. But this overly simplistic reasoning is not really helpful. It actually wants me to run away from this ticket. And I would be your best bet to see your issue resolved. |
I will happily apologise for getting things wrong, and coming off as venting - all I've been able to find in the past that's understandable to a regular user of windows has suggested that junctions are window's way to offer users symlinks, and so I've operated under that assumption (the fact that now that windows will offer real symlinks, it will still build junctions if you're running as admin, does not help make their use any clearer). As a windows user, I have no real experience with kernel space vs. user space, so I'm more than happy to learn and acknowledge I'm wrong - so in terms of this issue: it feels like |
Okay, let's get back to the reported issue.
This fails for me with
I have to use a forward slash for And when I do that, in a CMD with Git v2.22.0-rc3, and then call When I replace the So maybe some patch that we integrated since v2.19.0 fixed your issue. Could you re-test with https://github.com/git-for-windows/git/releases/tag/v2.22.0-rc3.windows.1? |
Hm, even with 2.22.0-rc3, git bisect doesn't like it:
I
|
Just as a sanity check, I also ran bisect in the "true" location, and that works fine:
|
I ran my tests on Microsoft Windows [Version 10.0.18362.113]. That's the difference I could imagine explains our opposite experiences. I tried again, and creating a symlink via |
Ah. I'm currently on Microsoft Windows [Version 10.0.17134.590]. I've not heard anything crazy about the May update this time round, so I can try to upgrade to that after (PST) work hours and see if I can confirm things working post-update. |
Hm, well that literally wiped my user profile and every single serial I ever activated any software with, so I had to roll back to this morning's backup.... guess I won't be testing this on the latest windows 10 update until I can actually stand to lose an entire day on "figuring out how to safely apply that update" =( |
@Pomax from your GitHub profile, it looks like you're more of a node.js person than a C one. If you have some C fu in you, I will happily guide you through debugging this issue in your setup. |
Oh, one idea just occurred to me. Maybe the problem has to do with your |
The only C I've used is C++, and that was mostly a follow-along for a tutorial that explained how to write a simple VST plugin. That said, I'm up for following instructions and seeing where that gets us. I'll give the local symlink a try, too. |
with a symlink set up for a So it might also somehow be related to the fact that the entire user profile is symlinked? =/ |
No idea... all I know for sure is that I cannot reproduce this issue on my side. |
Let's close this until we have a reliable way to reproduce this. |
fair enough |
Setup
defaults?
to the issue you're seeing?
The main git direction is a junction, made with:
So all any project cloned into
C:\Users\Mike\Documents\git
will show up as expected, with the actual data residing on theJ:
drive, instead.Details
all of them
Minimal, Complete, and Verifiable example
this will help us understand the issue.
I expected git to start a bisect.
Git cites:
Which is weird, because the dir the command is issued in is the toplevel working tree (it houses the
.git
dir). However, this explains why git is getting confused:And that's plain wrong: that junction should be invisible, just as a symlink is in POSIX environments.
The text was updated successfully, but these errors were encountered: