PTCInc / thingworx-gitbackup-extension

[Unofficial/Not supported] ThingWorx GitBackup Extension for storing your ThingWorx application code in a Git repository
MIT License
25 stars 11 forks source link

Feature Request: Split commit/push #13

Closed TG-JC closed 1 year ago

TG-JC commented 3 years ago

Hello,

Having joined git-commit and git-push operations behind single Push button is an issue for us.

We are a team of 4. Each of us is working on its own Thingworx instance. Our Thingworx application is actually composed of one common layer and many sub apps on top of this layer. Each of us is reponsible for some of these sub apps.

We would like to be able to commit changes step by step on our own instances while not publishing them immediately to Bitbucket server. By doing joined commit/push, the repository is filled up with partial work for sub-apps. It is then a hard work to sanitize development on the integration server. By splitting Push into git-commit and git-push basic operations, we would allow each developper to go on working on its own instance while we are finalizing release on the integration server.

Working with branches is not an option, mainly because the interface does not allow creation of local branches nor does it allow to merge branches. By the way, it is already tough for teammates to juggle with XML exports/imports and Pull/Push. We have already lost work several times due to an export done after a Pull with not import inbetween... So I fear that involving branches will make the whole stuff even more complex.

Please also note that after a successful Pull (which creates a merge commit), clicking on Push creates an empty commit which pollutes the history. Splitting Push into git-commit and git-push would also fix this.

Would it be possible to update the interface to have one button for git-commit and one button for git-push operations ?

Best regards, Thibault

cbadici commented 3 years ago

Hi Thubault, Thanks for the feedback. As far as I have investigated, this feature doesn't only imply changing the user interface. Currently in the server-side extension, the commit and push are done in the same service, the "Push" service from the Git Backup Template. I will try to split them in two services to see if there are any issues with this and then I can update the UI. I cannot make any promises related to when this functionality will be available but I will let you know once I investigate more.

Regards, Costin

vrosu commented 1 year ago

The pain is well understood, and indeed the way of working with that is to use separate branches. It's correct that the GUI does not allow for creating or merge branches, but these functionalities are too complex to add in the GitBackup extension GUI, therefore I left them to the Git providers interfaces. Would it be too complicated to setup branches online? I mean is the frequency of creating branches too high to be able to do this?

TG-JC commented 1 year ago

FYI, we have decided to stop using Thingworx. The platform had too many limitations, and working as a Team was a nightmare (losing changes due to messing up with push/pull/import/export ; XML merging that is not practicable). GitBackup is a step towards better maintainability (many thanks to you). Unfortunately the import/export operations imposed by Thingworx platform breaks the model of git and leads to many errors that are not acceptable when developping a software solution.