Git workflow for mobile development
Now there are two major issues that we are facing with this workflow. One is that suppose we merged some feature into development and later figured out that there are lot of bugs in it. Now it can’t be pushed further, whole development cycle is stuck because that code is already merged with development. This is the reason we started forking feature branches from master rather than development as at least individual feature branches will have fully working code. One way is that each feature can be separately distributed to team members to test and only then will be merged to development but it's very cumbersome
Another problem is since base code with every feature branch is from master branch and it has to be merged with development, there are lot of conflicts. Earlier when we used to fork from development, we used to regularly merge development branch with feature branches so there were no conflicts but can’t do that anymore. So now to fix conflicts, we create another temporary branch from feature branch with which we merge dev code, fix conflicts and put that as pull request which is again little cumbersome.
Is there a better workflow for mobile development that people have adopted or even some practices that can be followed to solve these problems?
10 comments
[ 2.9 ms ] story [ 36.4 ms ] threadhttp://blog.endpoint.com/2014/05/git-workflows-that-work.htm...
> One is that suppose we merged some feature into development and later figured out that there are lot of bugs in it. Now it can’t be pushed further, whole development cycle is stuck because that code is already merged with development
Why is buggy code being merged in? Why isn't it reviewed,covered with tests and tested manually?
Also, you can checkout commit before merge, create a new branch and continue development without any issues.
Whenever I want to create a new feature or fix a bug, I create a new branch. I am responsible to rebase and keep the branch up-to-date until it is reviewed and merged. When the branch is merged into master, using @KrausFX's fastlane tools we automatically build, test, submit a build to testflight and create a pre-release with the build number on GitHub. The appropriate people then review the App and submit a release for review by Apple whenever they're ready. Once the App is approved and released we create the corresponding official release on GitHub.
Works well and keeps us productive.
As I may have overlooked something, could you pinpoint where in this workflow you would have issues?
http://scottchacon.com/2011/08/31/github-flow.html
I am not denying that automated tests are not necessary but I believe that continuously deploying code and then fixing bugs that occur in the code is atleast faster way to code.
Github flow certainly doesn't work very well with mobile development main reason being you cant deply code to production continuously but I was wondering if there is some middle way
Front-end testing is hard, but you need to figure that out. Ruby Motion can come in quite handy for that.
https://github.com/git/git/blob/master/Documentation/howto/r...
Otherwise you can do `git revert SHA -m 1` and fix conflicts / commit.