-
Notifications
You must be signed in to change notification settings - Fork 17
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
Command sync -r fails for file with filetype <unicode> on perforce #41
Comments
Hi Eric, thanks for your report and investigation into this problem. The Microsoft P4VFS still does not have proper support for unicode enabled perforce servers. The ignored use of P4CHARSET variable is one example of what is missing. Your solution to have the P4VFS.Service get the P4CHARSET value from the impersonated environment (either the calling process or session user) is slightly functional:
The real problem in P4VFS is that I'd be really curious to know how popular this feature would be. Regards |
Hi Jess, Thank you so much for the detailed explanation! Regarding the popularity of this feature, I'll speak of my experience. It would be fantastic if there is plan for P4VFS to support unicode Perforce server. I'm sure a broad audience would appreciate that :) Best, |
I figured out a workaround to make p4vfs 1.28.2.0 work with unicode enabled perforce server without filename and file content encoding problem.
|
Hi, thanks for the awesome work on p4vfs!
I would like to report an issue I had when testing out p4vfs. I found out an solution, but wanted to check if there is a better fix, or if I missed something for my setup.
Background
Perforce server is in Unicode mode, Client P4CHARSET is set to utf8.
Issue
If a file unicode_test.txt is of unicode filetype on perforce, then following command would fail.
p4vfs.exe sync -r -f //depot//unicode_test.txt
And gives the error: - Translation of file content failed near line ...
The same command in p4 would succeed:
p4 sync -f //depot//unicode_test.txt
The same p4vfs command in local mode would also succeed:
p4vfs.exe sync -r -f -t //depot//unicode_test.txt
Just in case I attached the file for my test there: UnicodeTest.txt
Investigation
By outputing
m_P4->m_ClientApi->GetCharset().Text()
inFDepotClient::Connect(const DepotConfig& config)
, I found the issue.In p4vfs.exe, the FDepotClient is properly picking up P4CHARSET settings and is set to utf8. However in P4VFS.Service.exe, it does not pick up P4CHARSET, and charset is set to auto. I'm not sure why, but this is the reason we have translation problem using sync command in service mode, but not in local mode.
Fix
Added the following in
FDepotClient::Connect(const DepotConfig& config)
Much appreciated if you can share any insight on this problem. Thank you.
The text was updated successfully, but these errors were encountered: