...and all is right with the world again...

In case others are interested, the trouble here is that if I had merged my
tp32 to master with my change from tp31, then I would have brought Marko's
changes from tp32 to master. I wouldn't want to do that because I wouldn't
have been sure that Marko wanted that to happen. For all I knew he could
have been trying to fix a problem on master with his merge from tp32 and my
merging could have broken the branch. Ideally, you should only push your
own changes, so if you ever merge tp32 to master (for example) and there
are commits present that are not ones you did, you probably need to stop
and figure out what's going on.

Here's how I noticed it:

$ git checkout master
Switched to branch 'master'
$ git merge tp32
Auto-merging CHANGELOG.asciidoc
Merge made by the 'recursive' strategy.
 CHANGELOG.asciidoc
                                                     |  2 ++
 docs/src/dev/provider/index.asciidoc
                                                     |  2 +-
 docs/src/upgrade/release-3.1.x-incubating.asciidoc
                                                     | 18 ++++++++++++++++++
 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
            | 16 +++-------------
 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
| 11 ++++++++++-
 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
                            | 21 +++++++++++++++++++++
 
gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Connection.java
                                               |  2 +-
 
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/SessionOpProcessor.java
                            |  5 +++++
 8 files changed, 61 insertions(+), 16 deletions(-)

WHOA - I knew that I didn't touch SubgraphStrategy or
IncidentToAdjacentStrategy, so that looked fishy. So I get rid of all that
with:

$ git reset --hard origin/master
HEAD is now at ea085f8 Merge branch 'tp32'

and reset my local master branch back to what it was prior to the merge
(i.e what is at origin/master). After I emailed the list and ping'd marko
who promptly did the merge to master I did:

$ git fetch origin
remote: Counting objects: 123, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 13 (delta 4), reused 0 (delta 0)
Unpacking objects: 100% (13/13), done.
>From https://git-wip-us.apache.org/repos/asf/tinkerpop
   ea085f8..eaad5a9  master     -> origin/master
$ git rebase origin/master
First, rewinding head to replay your work on top of it...
Fast-forwarded master to origin/master.
$ git merge tp32
Auto-merging CHANGELOG.asciidoc
Merge made by the 'recursive' strategy.
 CHANGELOG.asciidoc
                         |  1 +
 docs/src/dev/provider/index.asciidoc
                         |  2 +-
 docs/src/upgrade/release-3.1.x-incubating.asciidoc
                         | 18 ++++++++++++++++++
 
gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Connection.java
                   |  2 +-
 
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/SessionOpProcessor.java
|  5 +++++
 5 files changed, 26 insertions(+), 2 deletions(-)

So i applied marko's changes to master with git rebase, then merged my
local tp32 to master and now those two changes I wasn't responsible for are
gone. Then it's just a push doing master first and then tp32 (newest
release to oldest release order):

$ git push origin master
Counting objects: 213, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (32/32), done.
Writing objects: 100% (48/48), 3.44 KiB | 0 bytes/s, done.
Total 48 (delta 25), reused 0 (delta 0)
remote: tinkerpop git commit: Merge branch 'tp32'
remote: tinkerpop git commit: Merge branch 'tp31' into tp32
remote: tinkerpop git commit: TINKERPOP-1544 Return confirmation on session
close
gTo https://git-wip-us.apache.org/repos/asf/tinkerpop.git/
   eaad5a9..3f57dfe  master -> master
$ git push origin tp32
Total 0 (delta 0), reused 0 (delta 0)
remote: tinkerpop git commit: Merge branch 'tp31' into tp32
remote: tinkerpop git commit: TINKERPOP-1544 Return confirmation on session
close
To https://git-wip-us.apache.org/repos/asf/tinkerpop.git/
   b4d0ef9..9e284f7  tp32 -> tp32

All good!


On Thu, Nov 3, 2016 at 10:31 AM, Marko Rodriguez <okramma...@gmail.com>
wrote:

> I don’t understand git.
>
> I don’t understand rebasing.
>
> I don’t understand what love is.
>
> Marko.
>
> http://markorodriguez.com
>
>
>
> > On Nov 3, 2016, at 8:17 AM, Stephen Mallette <spmalle...@gmail.com>
> wrote:
> >
> > just a quick note - the git repo is in a weird state atm. I accidentally
> > pushed a change to tp31 thinking i would then instantly merge to
> > tp32/master, but I think marko has a change on tp32 that he hasn't merged
> > to master yet (so he basically did the same thing i did and pushed too
> > early).
> >
> > So right now, merging is sorta locked up behind marko's merge to master
> and
> > I need to step away for a few minutes leaving git kinda weird.
> >
> > Typically, the flow for a merge should involve getting the entire
> situation
> > clear in all branches first before pushing. So if your change is on tp31,
> > then merge it locally to tp32 and then merge tp32 to master locally -
> > resolve conflicts and test as needed. Then when all good, push in reverse
> > order to each of the branches. Using that same example, start with master
> > and then go to tp32 and then tp31. I think that should limit weirdness if
> > someone is pulling while you are pushing. The same logic would apply if
> you
> > produced multiple pull requests for the same change which may become the
> > norm at some point in the future.
> >
> > Anyway, until we sort out the merge backup, please refrain from merging
> > between branches. I'll be back online shortly.
>
>

Reply via email to