Jump to content

BerkayDrsn

Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by BerkayDrsn

  1. Edit: Sorry for the aggressive tone beforehand but this had to be done. Oh my god. This exact same thing happened 3 years ago and now its happening again with PlasticX. I just installed Plastic to my Windows pc after 3-4 years of using MacOS. And the first thing I encounter is a complete crash on PlasticX GUI. Why? Because some developer in your office doesn't know different Cultures exists with different alphabets and their different weird rules. Remember this topic from 3 years ago? Yeah this was me on my old company account. You had this exact problem back then and I thought now they probably realized different cultures exists and would take proper action in future. BUT I GUESS NOT. Quick lesson on my native language's stupid accent rules. If you lower case letter I in Turkish it becomes ı NOT i. See the dot on top of it? Yeah it doesn't exists. Different cultures... And to my luck, same thing is happening again with PlasticX and IT IS COMPLETELY UNUSABLE with an immediate crash. If I click on any tab (Branch explorer, Changesets etc...) I get this error "Invalid size returned for Measure" and it crashes the app. No exception, nothing. It just closes. God what could it be? I attached the screenshot below. The first thing I noticed is that the icons are missing in the GUI. You see the "settings" icon in the top right corner, next to my user badge (BE)? You don't? That's because your goddamn code is trying to load ıconsopentions.svg WITH AN ı NOT i. Here is the log for that specific icon. 2022-06-22 00:05:47,657 ERROR SvgLoader - Error loading icon C:\Program Files\PlasticSCM5\theme\avalonia\icons\ıconoptions.svg This is because even though my OS is in English right now, my PC's region is still Turkey. If you lowercase Iconoptions in Turkish culture it becomes ıconoptions. If I change my region to US, VOILA your client works again. What a big surprise. I don't know why and who in your company keep lowercasing such input variables to load some resources, BUT THIS IS NOT HOW YOU SUPPOSED CODE YOUR GODDAMN SOFTWARE. I know your client is built on .NET. Here use this doc and fix your goddamn code. CultureInfo.InvariantCulture Property (System.Globalization) | Microsoft Docs If I see this same culture error again in future, I promise I will apply to a job in your company, fix this shit and then quit without looking back. Thank you.
  2. Actions like "switching workspace" or opening "Preferences" window through the button in the options menu on the top right (with 3 dash) and so on which opens a new window in result crashes the PlasticX client on fullscreen mode. There seems to be no issue when the client is not in fullscreen. Attached the crash log occurred when trying to open preferences window. This is happening in all PlasticX versions. No issue in legacy GUI. It's almost impossible to use PlasticX on fullscreen with MacOS right now. crash.log
  3. Hi, we have a scenario where we have an engine repository that is xlinked to multiple submodules which are each repository themself. We are using Unity and the both project structure and repository structure looks like this: (Engine Repository & Project) -Assets -Engine -Core (Engine Module #1 & Project) -Assets -Engine -Core => Partial Xlinked to Engine/Core@Engine -Module #1 (Engine Module #2 & Project) -Assets -Engine -Core => Partial Xlinked to Engine/Core@Engine -Module #2 This is the overall structure of the engine. Core Engine developers work in the first repository. Engine Module #1 developers work in the second repository and they need Core so it is xLinked. Engine Module #2 developers work in the third repository. They also need Core so it is xlinked. However Module #1 and Module #2 are independent so they don't xlink each other. Both Module #1 and Module #2 are actually big projects that lays the foundation of two independent game mechanics. However they are supposed to be used in the same game together. There can be more modules in the future. So imagine there is also Module #3 and Module #4 in the same structure. Now comes the game part. Suppose that we have 2 games. (Game #1 Repository & Project) -Assets -Engine -Core => Partial Xlinked to Engine/Core@Engine -Module #1 => Partial Xlinked to Engine/Module #1@EngineModule1 -Module #2 => Partial Xlinked to Engine/Module #2@EngineModule2 -Game #1 (Game #2 Repository & Project) -Assets -Engine -Core => Partial Xlinked to Engine/Core@Engine -Module #1 => Partial Xlinked to Engine/Module #1@EngineModule1 -Module #3 => Partial Xlinked to Engine/Module #3@EngineModule3 -Game #2 So the Game #1 uses Engine with Module #1 and Module #2 however Game #2 uses Engine with Module #1 and Module #3. This is the overall structure we need right now. As you see there are 5 teams right now. Engine Team Engine Module #1 Team Engine Module #2 Team Engine Module #3 Team Game #1 Team Game #2 Team Now comes the question: Suppose that you are an Engine Developer in Engine Team. Your workspace is the Core folder. You receive a task from an issue tracker. That issue came for Game #1. You create a branch from main@Engine, now that repository doesn't have any xlink to the said game or the modules that game is dependent. So you xlink to them in your branch. That downloads those linked repositories from the server. However when you complete the task, you have to remove those xlinks so they don't go to main while merging. Now whenever you begin a task, you have to xlink the required repos, download them and remove them. Problem: Keep doing this "add xlink to sample game - do the task in branch - remove xlink from branch - merge to main" cycle is cumbersome for each task to do. Especially when downloading the sample game may take a lot of time if the game is huge. Also each task's sample game may differ. So you have to keep track of games and modules to xlink. Which is not feasible. Expected Solution: Local (or ignored) xlinks. If there would be a way to create xlink's locally (which creates an xlink in the current plastic workspace but doesn't checkin to the repository) that would fix our problem. So an Engine developer could create separate workspaces with each games dependencies but wouldn't checkin their xlink to engine repo. However there seems to be no way for that. (?) We don't want to keep changing xlinks in the Engine repo. That problem also happens in the Module developers. When you work in a module repo, what if you want to change the sample game you are testing the module? You shouldn't create an xlink in the Module repo targeting a game repo. You would have to keep changing it between the tasks. That is also a problem. Any other approaches for the desired output?
×
×
  • Create New...