SimpsonGSD / P4EditVS

Simple, lightweight Visual Studio plugin to run various Perforce commands on files, such as checkout and revert. Includes optional auto-checkout feature.
https://marketplace.visualstudio.com/items?itemName=ScottSimpson.p4editvs
MIT License
32 stars 8 forks source link

Filepath Case Sensitivity #12

Closed Nightro closed 2 years ago

Nightro commented 3 years ago

I've noticed in my Unreal Engine project that randomly, Visual Studio for some reason loses the case accuracy of the file path. I can see this even by right clicking on a file and selecting "Copy Full Path". Unfortunately, it looks like P4 command line is case sensitive for file paths. That means that sometimes, P4EditVS works fine... but at some point this breaks and it gives the error "file(s) not on client." when I try to perform any p4 operations and will continue this trend until I re-open the solution.

Is there possibly a way you could fix this by grabbing the correct casing for a given filepath from the disk?

Here's a fake example (my project is NDA).

Right: D:\Something\v4.0\Project\Plugins\Private\StackCameraUtils.cpp

Wrong: d:\something\v4.0\project\Plugins\Private\StackCameraUtils.cpp

Thanks Ant

SimpsonGSD commented 3 years ago

Hi Ant In what version of Visual Studio does this happen?

Nightro commented 3 years ago

VS 2019, but I haven't gotten this for a few days now. It's possible I needed to reboot after installing, but I'm worried it's just sporadic.

On Tue., Aug. 17, 2021, 12:24 p.m. Scott Simpson, @.***> wrote:

Hi Ant In what version of Visual Studio does this happen?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SimpsonGSD/P4EditVS/issues/12#issuecomment-900443365, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABZZTHXDSWKHYRODPJJ4OEDT5KEM5ANCNFSM5CD7NHUQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

SimpsonGSD commented 3 years ago

I have seen Visual Studio 2019 do this but I don't run a case-sensitive P4 server so I haven't seen this issue. I'll add a fix.

SimpsonGSD commented 3 years ago

@Nightro I've released v2.6 to try and fix this issue. Let me know if it improves the situation. Thanks.

Nightro commented 3 years ago

Excellent, thank you!

On Fri., Aug. 20, 2021, 4:03 a.m. Scott Simpson, @.***> wrote:

@Nightro https://github.com/Nightro I've released v2.6 to try and fix this issue. Let me know if it improves the situation. Thanks.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/SimpsonGSD/P4EditVS/issues/12#issuecomment-902512448, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABZZTHRUOKVR5NB3I5R5Q5LT5YD5VANCNFSM5CD7NHUQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

Nightro commented 3 years ago

So far so good! I haven't run into the issue again since your fix. Thank you very much :)

SimpsonGSD commented 3 years ago

Great, thanks for reporting back. I'll close this for now. If you do still have issues then just let me know. Thanks.

Colourclash commented 2 years ago

Hi, I am also experiencing this case sensitivity issue. I am on P4EditVS v2.63. I am using Visual Studio 2019 v16.11.9

I am experiencing the exact same symptoms as the OP. When I open a source file VS will open it with part of the path converted to lower case, eg D:\Root\CryEngine\Tools\App.xaml will become d:\root\cryengine\Tools\App.xaml. When I try to check the file out it will fail with stderr: d:\root\cryengine\App.xaml - file(s) not on client.

I understand this seems to be a Visual Studio problem so not expecting a fix but I thought you might want to know. :)

SimpsonGSD commented 2 years ago

So as far as I know d:\root\cryengine\App.xaml should be the correct casing. If you do p4 edit d:\root\cryengine\App.xaml in command prompt does it also fail? And if so, does it work if you do p4 edit D:\Root\CryEngine\Tools\App.xaml ?

Are you definitely running a case sensitive Perforce sever?

Colourclash commented 2 years ago

I'm definitely running a case sensitive server. When I do p4 info it says Case Handling: sensitive

So as far as I know d:\root\cryengine\App.xaml should be the correct casing.

No, the correct casing is D:\Root\CryEngine\Tools\App.xaml. If I open a command prompt and do p4 edit -c default "D:\Root\CryEngine\Tools\App.xaml" it checks out the file fine. However p4 edit -c default "d:\root\cryEngine\Tools\App.xaml" fails with file(s) not on client. I have obfuscated the actual path because of confidentiality.

SimpsonGSD commented 2 years ago

Ok thanks. I do try to query the correct file path from Windows but this obviously still not correct. I will continue to look into this.

SimpsonGSD commented 2 years ago

Hi @Colourclash is there any chance you could try a build of 2.6.4 to see if it fixes your issue? You can download it here: https://dev.azure.com/simpsongsd/d05507bf-aff7-4d89-8ead-6c4562f2df18/_apis/build/builds/98/artifacts?artifactName=P4EditVS&api-version=7.0&%24format=zip

Colourclash commented 2 years ago

I downloaded v2.6.4 and it works now. I have tried a few files that VS has messed up the case of the path and they all CheckOut fine with P4EditVS.

Thank you so much. You are awesome. :) 🥇

SimpsonGSD commented 2 years ago

Excellent, glad to hear that. Thanks for testing.

I will continue some testing and push that version live soon.

SimpsonGSD commented 2 years ago

2.6.4 has been pushed live.