0

Disclaimer: I let the question open, but my slow branching issue was due to the server being overloaded. So this is not the usual Perforce behavior. I now take about 30 seconds to branch 10K files.

I am a new Perforce 2014 user. I have created a stream depot, and put the legacy application (about 10,000 cpp files) in a development branch. That was relatively quick for an initial import, about 1 hour to upload everything.

Now I want to create a 'lightweight' task stream to work on a new feature. I use the default menu > new stream > type task ... I select "Branch file from parent on stream creation"

To my surprise, it takes ages (about 1 hour) to create a new task because it is branching individually every file. I would expect the process to be almost instant coming from other SCM tools. (git, svn,...)

Now my question is :

  • is this the expected behavior ?
  • Alternatively, is there a way to create more quickly a Task, and only branch the file I intend to modify ?
4

2 回答 2

2

创建一个包含 10k 个文件的新任务流应该是一个非常快速的操作(大约一两秒?),因为没有实际的文件内容正在传输,假设您从一个同步的工作区开始。如果您正在为新流创建一个全新的工作区,那么创建新工作区的一部分将是同步文件;我希望这需要与提交一样长的时间,因为它传输的数据量相同。

确保在创建新流时您没有创建新工作区。在可视化客户端中有一个“创建工作区”的选项;确保取消选中该框,否则它将创建一个新工作区,然后同步它,这需要一个小时。

从命令行,从 //stream/parent 的工作区开始,您将执行以下操作来创建新的任务流:

p4 stream -t task -P //stream/parent //stream/mynewtask01
p4 populate -r -S //stream/mynewtask01
p4 client -s -S //stream/mynewtask01
p4 sync

“stream”和“client”命令实际上并不对任何文件进行操作,所以无论如何它们都会非常快。“填充”将分支所有 10k 文件,但它在后端执行它而不实际移动任何内容,所以它也会非常快(如果你达到数百万或数十亿,它可能需要可观的数量时间取决于服务器硬件,但 10k 不算什么)。如果您已经同步到 //stream/parent,“同步”将非常快,因为所有文件都已经存在;同样,它只是在服务器端移动指针,而不是传输文件内容。

于 2015-09-21T22:24:24.737 回答
0

我找到了一种解决方法,可以加快速度,实际上更接近我打算做的事情:

任务流默认使用以下“流视图”创建

share ...

我已将其替换为

import ...
share /directory/I/actually/want/to/modify/...

所以我跳过了大部分文件的分支,它工作正常。

于 2015-09-22T08:32:43.713 回答