Hi.

I understand what you are asking for, and I think your motivation is
good.  But since your suggestion impacts all developers who are fixing
bugs, we need to have a dialog about it and find a solution that serves

The crux of the issue I see is that "git merge branch-A" when on
branch-B always merges *ALL* commits that are on branch-A and not yet on
branch-B, and our workflow is to merge 2.7 to master "from time to time"
in order to get all the bugfixes and minor enhancements in the
development version.

This workflow seems to function well for most parts of LinuxCNC, and I
would like to preserve it.  Other workflows, such as using cherry-pick
to make similar changes in 2.7 and master, put extra responsibility on
*all* developers who make changes to 2.7, and increase the risk that a
change that SHOULD have been made in 2.7 and master is made only in
master.

Instead, I'd rather search for some guidelines and strategies that will
rarely impact developers who are fixing bugs in linuxcnc that are not
related to gmoccapy.  However, I think it's inevitable that this will
impose some extra duties on developers pushing fixes to gmoccapy bugs in
2.7.

Basically, I propose the following workflow for fixing gmoccapy bugs
differently in 2.7 and master:
 * Make the appropriate change in 2.7, test and push
 * Switch to master branch
 * Merge 2.7 to master with but don't commit.  Typical commandline:
        git merge --no-commit origin/2.7
 * Discard gmoccapy changes, regardless of whether they are conflicts.
   Typical commandline:
        git checkout --ours -- \
                configs/sim/gmoccapy \
                docs/src/gui/gmoccapy* \
                docs/src/gui/images/gmoccapy* \
                share/gmoccapy \
                src/emc/usr_intf/gmoccapy \
                src/po/gmoccapy
   [note use of the shell line-continuation character "\" to avoid long
   lines in this e-mail]
 * test, commit, and push master branch
 * If applicable, make the gmoccapy appropriate change/bugfix for master
   branch and push that

For developers not working on gmoccapy, the only change in the workflow
is that, in case a merge conflict is seen and it names a gmoccapy file,
to contact Norbert (or any fellow gmoccapy developers he cares to
designate) instead of trying to resolve any merge conflicts themselves.

There are probably other ways to accomplish this goal; the workflow for
fixing gmoccapy bugs in 2.7 that I outline above is just the first
method I thought of.  Let's continue this dialogue and find the solution
that seems to have the least complexity.

Jeff
PS renaming files won't help, because in at least some cases git is
smart enough to automatically find the renamed file and apply the change
to it (this can be disabled by 'git merge -Xno-renames' but I wouldn't
want to require this, since it means we also couldn't do "good renames"
but could only use renaming as a way to break automatic merging)

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to