代码之家  ›  专栏  ›  技术社区  ›  Niklas

Perforce:避免在所有开发机器上使用相同的绝对本地路径?

  •  2
  • Niklas  · 技术社区  · 14 年前

    我是新来的Perforce(但对其他系统,主要是SVN,相当有经验)。

    • 使用与其他计算机上相同的“客户机”(-c选项)。这将有一个“根”,看起来它指定了工作副本在本地的绝对路径。似乎有点“wtf”对我来说。。。
    • 以交互方式为每台计算机创建一个“客户机”(与本地文件系统布局匹配)。交互性显然是自动脚本的一个交易破坏者。

    我能不能像SVN那样使用当前目录?

    4 回复  |  直到 14 年前
        1
  •  2
  •   raven    14 年前

    创建根目录为 无效的 把仓库映射给客户。下面是一个客户端规范示例:

    Client: client_name
    
    Update: 2010/10/20 14:18:23
    
    Access: 2010/10/20 14:20:53
    
    Owner:  raven
    
    Host:   ravens-pc
    
    Description:
        Created by raven.
    
    Root:   null
    
    Options:    noallwrite noclobber nocompress unlocked modtime rmdir
    
    SubmitOptions:  leaveunchanged
    
    LineEnd:    local
    
    View:
        //depot/... //client_name/...
    

    脚本应该做的第一件事是通过设置$P4CLIENT$环境变量切换到此客户端:

    p4 set p4client=client_name

    您的脚本现在将在该客户机的上下文中工作。 . 所以,如果同步//depot/foo/。。。在C:\ bar中,您的文件将出现在C:\ bar\foo中。

    p4 set p4client=

        2
  •  3
  •   Tim Clemons    14 年前

    我建议每次都用一个客户端模板创建一个新的客户端。首先,按照您希望在实际构建客户机中的视图手动创建一个客户机。不要指定所有者、客户端或根字段。然后,每次需要新客户时,请执行以下操作:

    p4 client -t my-client-template-name -o my-unique-client-name >clientspec.txt
    p4 client -i <clientspec.txt
    

    在哪里? my-client-template-name

    p4 client -d my-unique-client-name
    
        3
  •  1
  •   jhwist    14 年前

    通过使用 p4 client -i

    -i标志导致从 标准输入。未调用用户的编辑器

    因此在您的builtscript中,您将拥有一个客户机视图的模板,您可以动态地为当前构建机器修改该模板并将其传递给 p4客户端-i .

        4
  •  0
  •   Niklas    14 年前

    显然,您可以预先创建根目录为“null”的客户机工作区,这将导致perforce使用当前工作目录作为根目录。

    推荐文章