如何从 depot 视图中删除任务流

How to remove a task stream from the depot view

我是 Perforce 2014.1 的新用户。

团队已决定为每个新功能使用一个任务流。现在我已经提交了我的更改并且它们已经合并到父级。我想删除任务流,这是我理解的预期用途。

使用p4 stream -d,任务流从P4V流视图中消失,p4 streams不再显示,这很好。

但是它仍然显示在 P4V depot 树窗格中。

我很担心,因为我们的工作很少 "features",而且我很快就会在我的 depot 视图中看到数百个僵尸任务流。有没有办法隐藏它们?

我不想抹杀它们,我可以接受修订图表和数据库中存在的文件。我已经找到 'Tree restricted to workspace view' 但实际上我正在寻找类似 'Tree restricted to not deleted/unloaded stream'.

的东西

如果任务还在界面中显着显示且无法隐藏,则严重限制了删除任务的意义!

您应该始终在完成任务流后将其删除或卸载。

您的 Perforce 管理员还应该 运行 批处理以定期删除或卸载不活动的任务流。

请注意,即使您删除了任务流,所有提交的文件仍保留在软件仓库中。 另请注意,您不能重复使用已删除的任务流的名称。

要删除任务流:

在“流”选项卡中右键单击流(在图形、树或列表视图中)

Select Delete Stream 'stream_name'.

卸载将不常用的元数据从版本控制引擎的数据库文件传输到卸载库中的一组平面文件。如果您卸载任务流,如果您改变主意并想再次使用它,您可以重新加载它。

卸载任务流:

在“流”选项卡中右键单击流(在图形、树或列表视图中)。

Select Unload stream 'stream_name'.

重新加载卸载的任务流:

在列表或树视图中显示流选项卡。 Select 筛选器窗格中的 Unloaded Unloaded... 图标可打开 Unloaded Streams 对话框,您可以在其中筛选和 select 已卸载的流以重新加载。 右键单击流并 select 重新加载流。

除非流是任务流,否则删除流只会删除流规范,不会删除已提交到流的文件。

提交到流的文件是您永久历史的一部分;你想保留它们!

我经常发现自己会回顾很多年前,有时甚至是几十年前所做的更改列表和更改差异,所以我会尽一切可能永远不会抹去旧的历史。

如果你真的想破坏对这个流所做的更改的永久历史,你可以使用 'p4 obliterate' 命令,但要注意这个命令不能撤消。

如果您正在考虑使用 obliterate 来销毁提交到此流的文件,您应该考虑先联系 Perforce 技术支持,因为 obliterate 命令很复杂并且有很多选项,您要确保使用正确的选择。并先走一个检查站,只是为了额外的保护。

如果您将流用于临时工作,并且经常发现自己希望取消该工作,请考虑使用任务流。

如果您不想要上述任何一种,您可以从树中隐藏已删除的流

To find a file in the depot or in your workspace:

 1. Go to Search>Find File.... 
 2. On the Find File tab, under Search in,enter the directory path you want to      search. 
 3. You can drag and drop
    the file path from the Depot or Workspace tree in the Tree pane.

 4. Enter any of the following search criteria: Under Name matches any
    of the following, select an operator (contains, is, starts with,
    ends with) and enter all or part of the file name. You can add
    multiple name match rows.

 5. Under Submission date or changelist, enter a date, changelist, or
    range of dates or changelists. 
 6. Unselect Include deleted depot files.

Click Find.

希望对你有用,祝你好运!!

根据 Perforce 官方网站,不可能从 depot 视图中隐藏与已删除流关联的文件,除非您也删除修改过的文件,我不想这样做。

参考: http://answers.perforce.com/articles/KB/6823

相关部分:

P4V does not display deleted streams in the Streams view (in the right pane), but a deleted stream still appears in the Depot Tree (in the left pane), because the stream files still exist in the depot.

To remove the stream from the Depot Tree, you have to remove the stream files and their history from the depot. How? Obliterate them.

这对于每周要搅动大量任务流的团队来说是不幸的。

我的收获是,如果你想使用流,你不应该使用 depot 树视图,而应该限制自己使用流图视图,但它在其他菜单中仍然很烦人,比如 Branch...Diff with...

如果您想向 Perforce 提出该问题的可见性,显然,那里有一些内容:(只需要一个电子邮件地址)

https://perforce.ideas.aha.io/ideas/P4V-I-109

您至少可以...缓解这种情况的一种方法是将任务流放在不同的软件仓库中。虽然这不能让您真正摆脱它们,但它至少将它们从您的主要工作区域中分装到一个单独的仓库中,以便仍然可以轻松查看主流。

从 2015.2 服务器开始,您现在还可以更改流 depot 的深度,这样您就可以将它们保存在同一个 depot 中,但将它们放在自己的文件夹中。 IE。你可以这样做:

//streams/mainStreams/mainline
//streams/mainStreams/rel1.0
//streams/taskStreams/featureA
//streams/taskStreams/featureB

同样,虽然我知道这实际上并不能解决问题,但它至少是一种通过创建许多任务流来缓解混乱的方法。