【问题标题】:p4 sync, how do you exclude files while using wildcards?p4 同步,如何在使用通配符时排除文件?
【发布时间】:2011-10-12 13:42:27
【问题描述】:

我正在尝试使用 p4 sync 将特定目录同步到使用通配符的给定更改列表编号,但我还想排除该目录下(在子目录中)的文件列表,我尝试使用 - (之前并且在使用带有通配符的路径后)但该文件永远不会被排除,这是我正在尝试的命令:

p4 sync //Repo/Foo/... -//Repo/Foo/Bar/Foobar.txt

文件排除似乎仅在您正在同步的文件/目录与您尝试排除的文件不匹配时才有效。

【问题讨论】:

    标签: perforce


    【解决方案1】:

    在您的客户端中,您会有多行:

    //Repo/Foo/... //my_client/Repo/Foo/...
    -//Repo/Foo/subdirectory/... //my_client/Repo/Foo/subdirectory/...
    

    这将允许您获取 Foo 目录和所有子目录中的所有内容除了“子目录”。

    【讨论】:

      【解决方案2】:

      如果您使用标签,您可以这样做。在您喜欢的编辑器中创建一个标签(p4v 或命令行 p4 标签并添加您的两行:

      //Repo/Foo/...
      -//Repo/Foo/Bar/Foobar.txt
      

      如果您想要最新的或更改列表编号,请在修订字段中输入"#head"(包括引号!)。为标签命名 - 例如“sync_butnot_foobar”

      您现在可以在命令行上同步:

      p4 sync @sync_butnot_foobar,@sync_butnot_foobar
      

      与修改客户端规范和同步头模型相比,这具有巨大的优势。如果您在客户端规范中排除了某个文件,则下次同步该文件时,该文件将被带到修订版 0,这可能不是您想要的。

      【讨论】:

      • 大声笑,请记住,如果您使用默认选项,这将像新的客户端规范一样运行...这意味着您将为不在标签中的所有文件同步到修订版 0
      • 这太酷了!除了“修订:”字段应该是"#head",而不是@head
      • @Saebin 如果您同步到@label,@label,则不会
      【解决方案3】:

      简而言之,您不能在同步时排除文件。这只能在客户规范内完成。 (嗯,可以通过保护表来完成,但我认为这确实是另一回事)。

      但如果您想同步特定文件夹且仅同步该文件夹中的文件,请使用 *

      p4 sync //Repo/Foo/*
      

      只会获取 Foo 文件夹中的文件。

      【讨论】:

      • 忽略我的最后一条消息,我很快就联系了:/
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-13
      • 1970-01-01
      相关资源
      最近更新 更多