性能:如何标记删除仓库中但不在工作区中的文件



我们有一个从互联网下载的代码库(GitHub存储库(。更新过程如下:

  1. p4检出现有版本
  2. 从互联网下载新版本并从旧版本上提取
  3. p4还原未更改的文件
  4. p4提交更改

这种方法的问题是,下载的repo中不存在的文件(从GitHub repo中删除(仍然存在于文件系统中,并被视为未更改。恢复未更改的文件将恢复它们并保留在仓库/工作区中。这对于Java文件来说是一个特别的问题,因为我们通过指定根文件夹进行编译。剩余的文件在新的源中未被引用,但您看不到它。

p4 clean具有-d选项

已删除的文件:在仓库中查找工作区中不存在的文件,并将其添加到工作区。

但我正在寻找相反的

在工作区中查找仓库中不存在的文件,然后从仓库中删除

如果从文件系统中删除整个文件夹结构,则工作区将不同步
如何查找/标记新文件夹结构中不存在的删除文件?

这是我为这个用例推荐的典型工作流程:

  1. 从一个空的工作区开始
  2. 将树的当前版本提取到工作区中
  3. p4 flush到要用作基础的修订版(如果您在Perforce侧没有对此分支进行任何更改,则可以使用默认的#head(
  4. p4 reconcile打开所有文件以执行相应操作
  5. p4 submit

详细说明步骤3:"基础"应该是两个树上次同步的任何修订版。如果这是一个单向操作,那么它总是最新的修订版(直接来自github(。如果您在两侧都进行更改,则应该在Perforce一侧为github导入设置一个单独的分支,并且将其用于导入;然后从那里单向合并到您的开发主线中,这样您就可以通过所有正确的历史跟踪来解决差异。

相关内容

最新更新