我正在通过VS2010向perforce添加一个项目,但我不断收到项目中所有文件的错误'file' not under client's root
。我似乎无法弄清楚这一点。
这是我正在做的事情:
1)打开尚未生效的VS2010项目。
2)我选择将solotion添加到perforce(来自File> Source Control> Add Solution菜单)。
3)我选择了一个新工作区。它会调出工作区的属性。根文件夹默认为c:\ Users \ My.Name。我将其更改为我的项目所在的文件夹。我也改变了视图,因此它指向depot \ main \ new_project。
似乎已经添加了项目,但是当我签入文件时它只是不起作用!它为'file not under client's root'
。
我也直接去perforce并检查相应工作区的设置。在仪表板中显示错误:
P4V is having trouble translating the location "c:\Users\user.Name\Documents\Code\My_Project" to a valid workspace location. To filter using this location, drag the folder from the workspace tree to the workspace folder field or include the depot location in your workspace view.
有人可以给我任何指针,为什么这不起作用?
更新 我的工作区映射是这个
Client: omega
Owner: User.Name
Root: C:\Users\User.Name\Documents\Visual Studio 2010\Projects\Omega
LineEnd: local
View:
//depot/main/omega/... //omega/...
答案 0 :(得分:22)
如果在“待处理”标签打开时出现此错误,则可能是您的问题!您可能没有看到整个过滤器(即某些过滤器可能不在视野范围内)。将鼠标悬停在过滤器下方的窗口窗格边框上,直到光标发生变化,以便您可以展开过滤器窗口窗格。有一个过滤器可能会出现“与以下任何文件路径匹配的文件:”确保您没有选择不正确的文件路径。删除过滤器或选择“当前窗口或工作区树选择”。
答案 1 :(得分:4)
我认为您的客户有不同的路径,而您的代码处于不同的路径。从你P4V错误我看到路径是:
c:\Users\user.Name\Documents\Code\My_Project
但您的客户端根路径是:
C:\Users\User.Name\Documents\Visual Studio 2010\Projects\Omega
在上面的场景中,只有“C:\ Users \ User.Name \ Documents”的路径很常见,之后客户端root和项目根目录不同。如果要从My_Project文件夹中签入代码,请将客户端根目录更改为指向该目录。您可以通过
在命令行中执行此操作p4 client <client name>
或者在P4V的工作区视图中更改它。
另外,请确保在路径周围使用“”,因为它的文件夹名称带有空格。
希望这有帮助。
答案 2 :(得分:1)
您可以犯的一个'oops'错误是在Visual Studio 2012中选择了错误的工作区。就这样做了,花了几分钟时间挠头。
答案 3 :(得分:0)
我猜Perforce的路径中存在空间问题。试着在它周围加上引号。
来自http://www.perforce.com/perforce/doc.current/manuals/p4guide/03_using.html:
文件名,路径名和标识符中的空格使用引号括起来 包含空格的文件或目录。例如: “// depot / dev / main / docs / manuals / recommended configuration.doc”如果你 在其他Perforce对象的名称中指定空格,例如branch 名称,客户名称,标签名称等,空格是 Perforce服务器自动转换为下划线。
答案 4 :(得分:0)
我在项目构建期间显示了类似的错误消息。 有什么帮助是删除.suo文件并重新加载项目,如How does Visual Studio's source control integration work with Perforce?
中所述答案 5 :(得分:0)
检查客户端Root中指定的路径。如果这不是有效路径,则会遇到此错误
Root: /a/b/c/d
如果这不是有效的根,您最终会收到以下错误
Path '/a/b/c/d/...' is not under client's root '/a/b/c/d'
只需更正Root指向的路径,你应该没问题
答案 6 :(得分:0)
这个确切的问题与我的“PENDING VIEW”有关。它当时为默认工作区设置了搜索过滤器,每当我切换到不同的工作区时,它都会显示错误对话框。
这笔交易是我更改了工作区名称,过滤器不再有效。
我清除了过滤器(在待处理视图中),错误消失了。