【问题标题】:Perforce Changelist and shelve commandPerforce 变更列表和搁置命令
【发布时间】:2018-09-21 15:17:07
【问题描述】:

我对 Perforce 很陌生,刚刚开始使用它。 使用 $p4 sync 命令同步我的代码后,我开始编辑一些文件。

  • $p4 编辑文件1
  • $p4 编辑文件2
  • $p4 编辑文件3

这些文件被添加到我的默认更改列表中。为了与我的团队合作,我想创建一个变更列表。为了创建一个变更列表,我运行了 $p4 change 并从变更列表描述中删除了“file1”。现在当我运行 $p4 时打开。它给出了与此类似的输出。

  • //depot/... /file1 编辑默认更改(文本)
  • //depot/... /file2 编辑默认 111 (text+k)
  • //depot/... /file3 编辑默认 111 (text+k)

现在我有以下问题:

  • 我目前正在处理的更改列表是默认还是 111 ??
  • (test + k) 是什么意思?
  • 当我对 file2 和 file3 进行更改时,它会同步到更改列表 111,当我对 file1 进行更改时,它会同步到默认更改列表。我很困惑这是怎么回事?
  • 还有一件令我感到困惑的事情是,如果 $p4 搁置我的更改是否会消失,并且只有在我为创建的更改列表运行 unshelve 命令时才会重新应用?这类似于 git stash 和 git stash apply 吗?

如果有人能详细回答这些问题,那就太好了。任何有关 Perforce 的教程建议也会有很大帮助。

提前致谢。

【问题讨论】:

    标签: perforce


    【解决方案1】:

    我对 Perforce 教程的推荐是 Perforce 用户指南。这是关于更改列表的部分:

    https://www.perforce.com/perforce/r15.1/manuals/intro/chapter.working_in_perforce.html#working_in_perforce.working_with_files.changelists

    我目前正在处理的更改列表是默认还是 111 ??

    两者都有!这两个都是您工作区中的待定更改列表。

    (text+k)是什么意思?

    括号中的内容是“文件类型”。 +k 是一个“文件类型修饰符”,意思是当您提交时,该文件中的关键字(特殊词如 $Id$$Revision$$Author$ 将自动扩展为适当的值。

    当我对 file2 和 file3 进行更改时,它会同步到更改列表 111,当我对 file1 进行更改时,它会同步到默认更改列表。我很困惑这是怎么回事?

    尚未在任何地方“同步”任何内容 - 待处理的更改列表只是引用不同文件的容器。当您 shelvesubmit 时,那么与这些更改列表关联的文件将被发送到服务器,并且其他客户端可以访问。由于shelvesubmit 是更改列表级别的操作,因此只有这些更改列表中的文件受到影响——这就是具有不同待处理更改列表的意义所在。您的工作区中有所有待处理的文件,但您可以拆分哪些文件在何时发送到服务器(这有点像在 git 中推送不同的分支,但不是——您可以在 Perforce 中的每个操作上执行此操作即使您没有分支,因为每个文件都是单独版本化的,而不是将整个树版本化为一个原子 blob)。

    还有一件事我很困惑,如果 $p4 shelve 我的更改会消失,并且只有当我为创建的更改列表运行 unshelve 命令时才会重新应用?这类似于 git stash 和 git stash apply 吗?

    不,p4 shelve 仅将服务器上搁置的更改与您工作区中的本地文件同步——它本身不会更改您的工作区。 “隐藏”的等价物是 p4 shelve,然后是 p4 revert,以消除工作区更改。 shelve 本身更像是对分支执行 git push ——您保留本地副本,但现在它也在服务器上(但不是“主”历史记录的一部分)。 (虽然不完全一样——老实说,如果你是 Perforce 的新手,我会坚持在常规的旧分支中进行常规的旧“提交”,因为这是基本的工作流程。通过书架共享工作需要更多的手动操作工作,因为每个架子就像它自己的小迷你分支,没有版本控制。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 2017-09-24
      相关资源
      最近更新 更多