Issue when tracking project with git


photo

Recommended Posts

Hi all,

 

we are currently facing issues tracking our project with git. We are currently trying to share a project between three PCs and three different UNIGINE license versions. PC A has a Standard Community Version, PC B has a Community Pro one and PC three has an Engineering version. All are using version 2.13.0.1.

I setup all the necessary project files via the engineering version and also initialize the git via the mentioned rules in documentation. Because of different licens options, we also skipped the *.project files to reduce issues during developement. After commiting and sharing the version with the other ones we discovered, that syncronizing between Engineering and Standard Community version went fine. Even after some modifications on PC A's project and committing, the project went fine in the engineering one after git update.

But we can't integrate PC B with Community Pro license into our workflow. The syncronization from .git went fine but when you open the editor, it initializes all assets again resulting in different .cache and .runtime files. After the world is loaded, all guid-references in .mesh-files and texture files in materials (albedo, normal, shader...) are missing (shown as red). What is even more strange is, that the editor will generate new guids but keeping the old one. When looking into the diff-log, those new guid-files will be added to the git and the guids.db files added those new .cache texture/meshes/node files. All the .fbx files in the guids.db have a new guids created, while those from the git were removed. The editor on this computer (of course) link to the new generated guids, while can't find the actual assets.

So what may cause this issue? Are guid generation between license-versions different or uses the same algorithm? How am I supposed to get the third PC integrated? Even just copy/pasting the data folder in a newly generated project (with/without .cache files) doesn't resolve this problem.

 

Best

Christian

 

Edited by christian.wolf2
Link to post

Hello Christian,

It's quite unusual setup, so we need some additional info for correct reproduction. Please specify what exact part of the project is under VCS? Only data & source folders? Which files is not commited, what's in .gitignore? 
Also, are you just putting data near the bin/ folder, or you are launching project using "-data_path" command line argument?

Meanwhile please check that your VCS set up according to this article(https://developer.unigine.com/en/docs/2.13/editor2/assets_workflow/version_control), it should be suitable for your set up with additional ignoring of .project file. Since the only files differing within editions is located inside bin/ folder.

Also, such issue might be caused by some conflicted links inside guids.db, please try to delete guids.db on third PC, and launch Editor.
 

Link to post

Hi @vvvaseckiy

we finally got the issue fixed but was a bit of an unusual way.

First for more information: By git, only the data, source and utils folders are tracked, the other ones will be ignored, even the .project file. Therefor, the following content is from our .gitignore located in the root project folder:

  • /bin
    /lib
    /include
    default.user
    /data/.thumbnails
    <ProjectName>.project

The project files will be launched normally via the editor, for PC A and PC 3 there aren't any issues. When we included the .project file, the SDK wouldn't read the project properly and detects incompatible engine version (because inside this file there is an snippet for used engine version e.g.).

How we could finally solve the problem is by copy and paste the complete project setup (even with bin- and include-folder) to the other PC. We then first create a new project with the same name description on PC B and rename this one in Windows folder so the SDK can't detect it. Next, we paste the project from PC A to the same location as the first project was created and SDK detects as tracked project but now with incompatible SDK-version. Finally we replaced all the content (bin/include/lib/.git-folders and the .project files) from the project we created with PC B. So finally only the data and source folder remains unchanged. The SDK now detects the project properly, while the Editor won't re-import the assets again.

What was even more strange is, that when we create the project at PC B, delete the data- and source-folder from it and replace them by the existing project files (so only data and source files from the tracked project), the editor doesn't recognize those changes.

 

So the problem is solved but was a little bit confusing in the final steps. In case you need some additional steps to reproduce or access from our side via git, please don't hesitate to contact me.

 

Thx

Christian

Link to post

Sorry for double-post but unfortunately the compilation now doesn't work anymore because of different guid-generations when open the files on other PCs. So curious if there is some differences between generating guids when using different licenses?

Link to post
40 minutes ago, christian.wolf2 said:

So curious if there is some differences between generating guids when using different licenses?

No there is no difference in guids generation algorithms between licenses and editions. And when assets stay the same, they shouldn't be reimported and therefore guids should stay the same. The only condition that could cause reimporting of the whole project is missmatch of .meta assets version, but even in this situation, any guid based links should stay correct. There's only a few possible situations in which guids can be changed leading to breaking links. First one - corruption of .meta files. And another one is missmatching of .meta files and guids.db(but that case could be solved by deletion of guids.db) In any other way guids should be stable between editions, licenses, and even platforms.

Link to post