如何在P4V客户端中设置P4CHARSET?

时间:2013-02-08 21:59:59

标签: unicode perforce p4v

当我尝试在P4V中运行工具以获取我最新的更改列表时,它会出现以下错误:

  

Unicode客户端需要启用unicode的服务器。

该工具的配置如下:

Last Sync Tool

但是,如果我直接从命令行运行相同的命令,它可以正常工作。我运行这个命令:

  

p4更改-m1 @ mhughson_ce6

我已经仔细检查了我的注册表,并且我有一个“P4CHARSET”条目。

根据我的理解,P4V存储自己的值,并且不使用注册表。我猜,它有点P4CHARSET设置为P4V中的东西,但我无法弄清楚如何实际更改它。当我查看P4V中的连接信息时,没有关于P4CHARSET的信息。


更新12.02.2013:

我已经运行了一些p4命令来打印我的环境变量,只是为了100%确定没有设置P4CHARSET。结果如下。

p4 set -s
P4CLIENT=mhughson_ce6 (set)
P4EDITOR=C:\Program Files (x86)\Notepad++\notepad++.exe (set)
P4PASSWD=[removed]
P4PORT=[removed]
P4USER=mhughson (set)

-

p4 set
P4CLIENT=mhughson_ce6 (set)
P4EDITOR=C:\Program Files (x86)\Notepad++\notepad++.exe (set)
P4PASSWD=[removed]
P4PORT=[removed]
P4USER=mhughson (set)

-

set
ALLUSERSPROFILE=C:\ProgramData
AMDAPPSDKROOT=C:\Program Files (x86)\AMD APP\
APPDATA=C:\Users\[removed]\AppData\Roaming
CLASSPATH=.;C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=[removed]
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\[removed]
LOCALAPPDATA=C:\Users\[removed]\AppData\Local
LOGONSERVER=\\[removed]
NUMBER_OF_PROCESSORS=8
OS=Windows_NT
Path=C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bi
n\x86;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Fil
es (x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Post-
Review;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System
32\WindowsPowerShell\v1.0\;C:\Program Files\Perforce;c:\Program Files (x86)\Micr
osoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools
\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86
)\QuickTime\QTSystem\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Stati
c;C:\Program Files (x86)\Xoreax\IncrediBuild;C:\Program Files (x86)\Perforce;C:\
Program Files (x86)\Windows Live\Shared
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=3a09
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
QTJAVA=C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\[removed]\AppData\Local\Temp
TMP=C:\Users\[removed]\AppData\Local\Temp
USERDOMAIN=[removed]
USERNAME=[removed]
USERPROFILE=C:\Users\[removed]
VS100COMNTOOLS=c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools
\
windir=C:\Windows
windows_tracing_flags=3
windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log

-

p4 info
User name: mhughson
Client name: mhughson_ce6
Client host: [removed]
Client root: D:/ce6
Current directory: c:\Users\[removed]
Client address: [removed]
Server address: [removed]
Server root: /metadata_journal
Server date: 2013/02/12 18:30:48 +0100 CET
Server uptime: 798:35:46
Server version: P4D/FREEBSD70X86_64/2011.1/370818 (2011/10/19)
Proxy address: [removed]
Proxy version: P4P/NTX64/2012.2/551823 (2012/11/09)
Server license: [removed]
Server license-ip: [removed]
Case Handling: sensitive

4 个答案:

答案 0 :(得分:1)

我在一台机器上遇到了同样的问题,但在另一台机器上却没有,但是使用命令行而不是P4V。我没有设置P4CHARSET。我尝试了这个线程中列出的所有内容以及更多,但对我来说有用的是在我的注册表中搜索P4CHARSET,并且有一个我删除的密钥。现在它可以工作

答案 1 :(得分:0)

可悲的是,我无法为自己解决这个问题;不是通过设置/取消设置P4CHARSET的任意组合。

解决方案?遗憾的是,要从命令行使用p4。我可以可靠地设置/取消设置PC环境变量,并通过该机制调用我的第三方工具。

答案 2 :(得分:0)

我遇到了同样的问题并设法解决了问题,方法是从WorkspaceSettings.xml移除charset,该.p4qt位于Charset下的用户目录中,例如在我的系统上,我与.p4qt/0004Clients/WorkspaceSettings.xml: <String varName="Charset">utf8-bom</String> .p4qt/0007Clients/WorkspaceSettings.xml: <String varName="Charset">utf8-bom</String> .p4qt/0009Clients/WorkspaceSettings.xml: <String varName="Charset">utf8-bom</String> 定义了多个连接 - 这导致了问题:

WorkspaceSettings.xml

Charset中,删除 <PropertyList varName="Connection" IsManaged="TRUE"> <String varName="Charset">utf8-bom</String> </PropertyList> 设置,保存并重启P4V:

(function () {
    'use strict';
    var app = angular.module('actorsDetails', [
        // Angular modules
        'ngResource',

        // 3rd Party Modules
        'ui.bootstrap',
        'ui.router'

    ]);

    app.config(['$stateProvider', '$urlRouterProvider', configRoutes]);

    function configRoutes($stateProvider, $urlRouterProvider) {
        $stateProvider
            .state('main', {
                url: '/main',
                templateUrl: 'app/home/home.html',
                controller: 'HomeCtrl',
                controllerAs: 'vm'
            })
            .state('form', {
                url: '/form',
                templateUrl: 'app/form/form.html',
                controller: 'FormCtrl',
                controllerAs: 'vm',
                resolve: {
                    initialData: ['actorApi', function (actorApi) {
                        return actorApi.getActorsResource();

                    }]
                }

            })
            .state('resource', {
                url: '/resource',
                templateUrl: 'app/resource/resource.html',
                controller: 'ResourceCtrl',
                controllerAs: 'vm',
                resolve: {
                    initialData: ['actorApi', function (actorApi) {
                        return actorApi.getActorsResource();

                    }]
                }
            });
        $urlRouterProvider.otherwise('/main');
    }
    app.run(['$state', function ($state) {
        // Include $route to kick start the router.
    }]);
})();

不幸的是,我无法在 P4V中找到修改的方法,但删除它意味着P4V不再认为服务器是unicode意识。

答案 3 :(得分:0)

编辑.p4qt / WorkspaceSettings.xml对我有用。 它默认设置为'winansi',当我尝试连接IDEA的插件时会导致错误。