I have a project in my Development branch, and I want to put a copy of it in my Stage branch, so I can keep that copy stable for a release, while still working in my Development branch. There does not seem to be any official way to do this, so I have been trying to finagle it any way I can.
The first thing I tried was making a dummy project and pointing it at a copy of my files. I copied the partition files, submitted them to perforce, then made the dummy project. I could not point the project at my copy in the setup. I said the path already had stuff in it, so it could not continue. I pointed it at a temporary new location, and proceeded. After the project was made, I tried to change the perforce path for the project, under Edit settings for source control system. This looked promising, as the settings window states "Please keep in mind that articy:draft does NOT copy the project data, but only searches on a different Subversion/Perforce server or path! You and all team members will need to delete their local project folders afterwards and re-open the project." This sounds like exactly what I want. However, trying it out did not produce anything useful. After pointing it at my copy and deleting the local folder / redownloading it, the project was still the temporary blank one, not the copy. making a change and publishing it confirmed: the change was committed to the old perforce path, not the new one I pointed it at. I had my teammate grab it on their machine, and we saw different results: The project would throw an error when downloading. The partitions seemed to download fine, but the final step, Post-processing project data, failed with the message "Unable to load project data." I could not think of anything else to try in this path, so I moved on.
The next attempt just making a dummy project, then copying the partition files into it. A straight copy produced similar results to the above. When redownloading the project, it would fail at the post-processing step. I noticed the RootPartition is called out specially in the files, so on a hunch I tried again, but I kept the old RootPartition, not copying over the new one. This worked better: the project opened, and I could see all my data. However, I could not check out any partition because "There has been a repartitioning" and I needed to update the project. Updating did nothing, because I was already up to date.
While writing that last paragraph, I got an idea and tried exclusive mode. It checked out everything, as it does, and I could make changes. Exiting the mode auto-published the changes, which was successful. Opening the project in normal mode worked, and I could see the changes I had made. Also, I could not check partitions out. It seems I have got what I need, but I will still ask some questions:
1. Is there an official way to clone a project? My way seems roundabout and hacky.
2. Should pointing an existing project at the perforce path of another existing project work? Should it simply make the first project another way to access the second one? It did not, in my experience. It made the project unusable.
3. Is my workaround dangerous in any way? I am using the Root Partition of one project and slapping on all the other partitions of another project.