We have a team of people working on the same app, so each team member works in a separate container which is forked from our “production” container. When a team member makes changes on something (page, function, reusable component,…) and it’s ready to go into our production container, we copy/paste the thing from a team members container to our “production” container. Generally this works well — but sometimes very strange issues arise: what is copied is not always pasted.
Specifically: say we have container “A” and container “Prod”. A page exists in both containers, call it “Page 1”. Developer makes changes to Page 1 in container A… we then delete Page 1 in Prod container, and copy Page 1 from container A and paste it into the Prod container. But then opening UI Builder, the version of Page 1 in the Prod container does not have the latest changes! It’s as if the page is cached in the file system, and instead of creating the updated Page 1 in our Prod container, Backendless just restores the recently deleted Page 1 from a cache of some sort. This means we loose work… sonetimes a lot of work. It’s has happened a few times and is very frustrating (to say the least).
If we rename Page 1 to be something like “Page 1 New”, and then paste that into our Prod container, the newest changes are there. But it is somewhat tedious and nerve racking to have to change page names and file names, and to not be sure that we’re actually getting the actual updated file/page/function/component when pasting.
Is there some “best practice” we should follow that’s different from what we are doing? Why does copy/paste not always actually copy/paste the actual file(s)?
Are you sure that when you copy from other containers into your main container, there are no other tabs open with that container anywhere else? This is very important.
Another tab is open but it is on “backend”. Basically, we have a tab open for front end, and a tab for backend where we do the copy/paste operations in the file system. After performing those operations, we reload the front end tab in the browser. Are you saying perhaps we should never have more than one Backendless tab open in the browser?
What I mean is that you need to work with one tab when it comes to the page/container in the UI-builder.
OK, we’ll make sure to have only one tab open. Maybe always and forever, whenever we work with Backendless. Will keep a lookout for the issue and report if it happens again. Thank you
@Inna_Shkolnaya OK, something very strange is happening and we really need to get to the bottom of things… here’s the issue I see now:
- Only one tab open in browser. All our navigation happening on this one tab.
- We had a page on production container called “StudentsNEW”. It had changes/improvements when compared to another page called “Students”. Checked and confirmed that changes were definitely there in “StudentsNEW”.
- Deleted “Students”, then renamed “StudentsNEW” to “Students”.
- Forked the production container into a new container, let’s call it ‘Container A’.
- Checked “Students” page in container A and verified the new changes are in the page. Great.
Checked “Students” page in production container and it does NOT have the newest changes. It somehow reverted back to the pre-changes version of “Students”. Cleared cache, reloaded page, still: changes are not there.
How is this even possible? Feel like I’m taking crazy pills…
Did another operation: on production container, re-named “Students” (page doesn’t have our changes) to “StudentsBU”. In container A, re-named “Students” (page DOES have our changes) to “StudentsNEW”. Copied this and pasted into pages folder for production container. Verified that “StudentsNEW” in production container has the changes.
Then renamed “StudentsNEW” in production container to “Students”. Open the page in UI Builder to inspect things: changes are gone. Then renamed the page back to “StudentsNEW”, inspect in UI Builder: changes are back.
We need clarity about this, we can’t really work like this
I understand what you are saying and I will start a ticket to investigate the problem. For now, I can offer you the following option and hope it helps you.
You have a working container ‘Students’ which you rename to ‘StudentsBU’.
You have a development container “StudentsNew”.
You don’t change the name for this container, but create a new container with the name “Students” and the parameters “Create as Fork” and source “StudentsNew”.
This way you will only change the name for one container.
I hope this option can help you.
I also have a question. When you manipulate name changes, do you then open the page in preview? Or do you open a deployed application? If it’s deployed, do you deploy after changing container names?
Sorry, you didn’t really describe an option or a way to work. Our containers are not “Students”, “StudentsNEW”, etc — these are just names of pages in a container.
When we manipulate name changes, we don’t always open the page in preview, no. Our page names are important for the running of the app, we have lots of logic “if page = xyz”, so pages have to have the right names.
We rarely deploy because we are still in the building phase, most of the time we look at preview pages, not deployed pages.
Thanks for your efforts