Hello, I have been using Unity with Plastic SCM for a team project for the last few months.
I have been trying to sync my Plastic SCM repository to an empty Github repository, following these steps:
I tried the “Sync With Git” option on the main branch from the Plastic SCM app, entered my Github username for “User name”, and entered a Github Personal Access Token (classic) for “Password”, since using a Github account password does not work and gives a “The credentials introduced for the repository are not valid” error.
The exporting step and the packaging step finish without error.
However, I keep getting stuck when Plastic SCM attempts to push: it gives an error saying “The remote server returned an error: (405) Method Not Allowed.”
I have tried setting the Github Personal Access Token scope to repo & workflow & write:packages, then tried setting the scope to everything (checked every checkbox available). It still gives the same error.
Can you attach the Plastic client logs at:
C:\Users\xxx\AppData\Local\plastic4\logs
If you prefer, you can open a support ticket. But it seems that the GitHub side is rejecting the data from Plastic. I guess it happens because you have some big files in the Plastic repo and you don’t have enabled git LFS so GitHub is rejecting the package.
If you do need to enable LFS, pushing data from Plastic to Git uses the “.gitattributes” file existing in the last changeset of “/main”. It uses that file to define what objects should be sent as LFS pointers + blob data.
We only support two types of path rules (extension and file names):
I don’t think not having LFS enabled is the problem, as I just tried and succeeded committing and pushing the entire workspace to an empty test github repository, using the .gitignore template file for Unity via Github Desktop. Do I need to set up a .gitignore file for Unity before attempting Sync With Git from the PlasticSCM app?
(Ignore the files and folders starting with “~~~”, those are the files that I temporarily renamed from a manual backup github repository.)
I remember attempting the same thing (pushing from PlasticSCM to a github repo) at the beginning of this project when the project was at an almost empty initial state and failing in a similar way.
I also remember that attempting to Sync With Git from PlasticSCM multiple times used up usage on Unity Cloud Devops whether or not it had succeeded, but I’m not sure. Does Sync With Git use up billable usage on Unity Cloud Devops?
Do you have some big files in the Plastic repo?
Yes, I meant you create the “.gitignore” in the “/main” branch of the Plastic repo and it will be taken into account when pushing the repo from Plastic to git.
If you temporary allow me access to the repo, I can also give it a try but this error is normally related to the git side rejecting the Plastic package.
If you try to syn a sample repo with just some text files, are you facing the same error?
if you are syncing from Plastic to git, it shouldn’t use up usage on Unity Cloud DevOps.
I tried adding the .gitignore template file for Unity to the /main branch, but it still gives the same error.
I also tried adding “.plastic/” to the gitignore file, with no luck.
Creating a sample repo with only a few text files, and another sample repo containing a Unity 2D project with a single simple scene with cubes and materials both succeeded to sync push to an empty github repo without error, eveh without a .gitignore file. In the test Unity project, I also tried checking in some art files (> 10mb) and it also succeeded to push without error.
I retried to sync to git the original repo after that, and it gave an “Error while copying content to a stream” error. Retrying once again gave the 405 error.
Can the total repo size to sync (rather than the individual file sizes) for the first time affect whether or not PlasticSCM Sync With Git throws an 405 error?
If I would allow temporary access to you, what steps would I have to take?
If you were talking about the DevOps Assign Seat method, currently the 3 assignable seats are full as of now, I don’t know if I could add more seats solely for this purpose since it costs immediate payment. Or should I temporarily remove a user during your fix?
If you do need a seat, how long would you need the seat in order to troubleshoot the problem?
Could I continue to work on the game and check in changes to the Plastic SCM repo while you troubleshoot the problem?
I think the best approach is for you to open a support ticket with us so you can add a seat for one of us in the UVCS org and we can try to run the same cm sync operation to check if we can reproduce it and debug it.
Assigning a seat to a Unity Support agent won’t count as a billable user.
You can directly reach us if you open the ticket via the Cloud dashboard or via this email: devops-vcs-support@unity3.com.
If you use a different form, the ticket should eventually escalate.