Version control Perforce没有';我不知道我有更改要提交

Version control Perforce没有';我不知道我有更改要提交,version-control,perforce,Version Control,Perforce,我是新来的。我更喜欢Git和一些Subversion 不管怎样,事情就是这样: 我在p4v中为自己创建了一个分支,位于我机器上的位置a 我在位置B创建了一个Java项目 将其复制到我计算机上的位置A中 我为Java项目创建并提交了一个变更列表 我意识到我需要做另一个更改,所以我回到Eclipse并编辑了这个项目。但是,我忘了Eclipse中的项目指向位置B中的项目 因此,我将项目从位置B复制到位置A,分支所在的位置 但是现在我不能为编辑创建变更列表,因为Perforce认为没有要提交的变更 我做

我是新来的。我更喜欢Git和一些Subversion

不管怎样,事情就是这样:

  • 我在p4v中为自己创建了一个分支,位于我机器上的位置a
  • 我在位置B创建了一个Java项目 将其复制到我计算机上的位置A中
  • 我为Java项目创建并提交了一个变更列表
  • 我意识到我需要做另一个更改,所以我回到Eclipse并编辑了这个项目。但是,我忘了Eclipse中的项目指向位置B中的项目
  • 因此,我将项目从位置B复制到位置A,分支所在的位置
  • 但是现在我不能为编辑创建变更列表,因为Perforce认为没有要提交的变更


    我做错了什么,如何修复它,以及有哪些最佳做法可以避免将来出现这种疯狂?

    在编辑文件之前,您需要对文件进行
    p4编辑。通常,文件被标记为只读,以强烈阻止您在不首先将文件标记为“编辑”的情况下修改这些文件

    最好的做法是不要反对只读权限。

    存在一个问题。如果您安装了它,那么您将能够在Eclipse中的位置A使用该项目

    如果您对任何文件或设置进行编辑,Performance将自动签出该文件并将其置于默认更改列表中

    然后,您可以从那里将其签回,或者使用P4V管理变更列表

    正如所指出的那样,Perforce有效地“拥有”了这些文件,在没有“请求许可”的情况下,您不应该首先通过显式的
    p4 edit
    命令或IDE插件进行任何编辑


    如果未先签出文件就进行了更改,只需调用
    p4 edit
    。这不会覆盖本地文件,只是将该文件标记为Perforce可写。Perforce应该然后识别出有一个编辑挂起,让您签入。

    所以,奇怪的是,我能够在第5步用副本覆盖文件。这是怎么回事?这对Perforce意味着什么?即使我将这些文件标记为编辑,我在这一点上也没有要做的更改。那么,我是否签出这些文件进行编辑,对每个文件进行更改(如删除一行),提交更改,然后签出以撤消更改,以便提交文件的正确版本?因为——在我最初的问题中,我可能不太清楚,我很抱歉——在这一点上,Perforce认为我的工作区中的文件是这些文件的最新版本,但这与仓库中的文件不匹配。这是一件奇怪的事情。从这一点来说,如果你对修改过的文件进行
    p4编辑
    ,那就足够了。“Perforce认为您工作区中的内容是最新版本”是什么意思
    p4 change
    应始终列出使用
    p4 edit
    打开进行编辑的所有文件,无论它们是否包含任何实际修改。(您可以提交更改集而不做任何修改。)如果您对文件执行
    p4 diff
    ,它是否显示没有更改?在使用perforce之前,了解如何使用perforce是非常值得的。这是一个复杂而强大的软件,如果你不理解它的概念,它会让你发疯。其中最主要的是,它要求您在编辑文件时通知服务器。