2

So, I use Perforce as a SW repository, and I'm required to create a "release" stream from my "mainline" stream. The requirement for the "release" stream is that its content should be enough to compile and run the SW.

However, there are files that are imported into this "mainline" stream from other projects (which are also managed in Perforce), and these change a lot over time. The "release" stream needs a snapshot of those files as they are.

I tried going to the stream view and creating a "new stream" from the "mainline" stream, but once the imported files got imported on the external projects, doing a get latest on the "release" stream downloads the imported files on their current version, not on the version when the release was created.

Some files are large and binary, so I'd like to avoid doing a manual copy and saving everything in duplicate.

Does anyone know how to freeze the version of imported files in a "release" stream on Perforce?

Mefitico
  • 816
  • 1
  • 12
  • 41

1 Answers1

3

You will need to copy all of the imports into the release stream (at the time you create it) rather than inheriting them from the parent. Alas! Make sure to specify @CHANGE on the import paths to lock them at the current changelist level, if that's needed.

Samwise
  • 68,105
  • 3
  • 30
  • 44
  • I considered doing the copy to the mainline stream, then creating the release. But this would need to be reverted on the mainline because me and other work on this mainline. Also, I'm unaware of this "@CHANGE" command, and I couldn't find additional documentation about it, do you have any link that describes it? – Mefitico Oct 04 '18 at 17:52
  • 1
    Don't touch the mainline stream, just copy the Paths to the release stream. The @CHANGE isn't a command, it's a revision specifier. https://www.perforce.com/blog/vcs/new-141-frozen-stream-imports – Samwise Oct 04 '18 at 17:57