Pretty common question we get asked by customers. Imagine you’ve built a panel, downloaded it and then decided to change some code locally. After a while, you need to build another new CRUD on top – how do you merge changes?
It’s tricky. We have two ways to help you, but even then you will have to do some manual work.
1. Download only changed files
After every CRUD change, the system prepares a separate archive with only the files that have been changed in the last CRUD update. Then you “safely” know what files to overwrite – you just download that archive and put the files in places.
Also you would see if your locally changed files exists in that archive, in that case you open both versions and merge changes manually.
2. Use Github/Bitbucket integration
Our Agency plan customers have a “magic button” called Push to git.
What it does is pushes a new branch to your Github/Bitbucket with the latest version of your panel code. System doesn’t know what changes you made in your repository or locally, it just pushes the latest version. From there you need to merge the changes manually, but it’s much much easier with git merge tools than just doing manually.
It’s similar how Laravel Shift works when upgrading your Laravel version – it puts a new branch with suggested code after upgrade, with a lot of comments, and then you decide on what actually gets merged.
Yes, it’s still manual
Even having those two ways to help you in merging, is still not that comfortable, you still need to do manual work comparing changes and picking the right ones.
We didn’t come up with a better way so far, cause our system doesn’t know what local changes you made and we can’t accept your code for merging online cause then our generator would break with your custom code. But if you have any ideas how we can make it better, please email me personally email@example.com – more than happy to discuss.
Also, QuickAdminPanel was initially built for rapid first version of the admin panel, not for the case that someone would build on top of it. So what we do internally, when using QuickAdminPanel for client projects, we generate as much as possible with the generator (yes, it requires a lot of thinking upfront with DB schema and pen/paper), and then after download we don’t touch generator at all – all other changes are done locally in PHPStorm.
It not only allows to avoid such code conflicts, but also forces to think upfront, which is really beneficial for the project overall.