git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Difference between 'git rebase' and 'git rebase -m'
@ 2010-11-16 17:35 Joshua Jensen
  2010-11-16 18:27 ` Jonathan Nieder
  0 siblings, 1 reply; 5+ messages in thread
From: Joshua Jensen @ 2010-11-16 17:35 UTC (permalink / raw)
  To: git@vger.kernel.org

We ran into an interesting issue yesterday during a rebase.

User Bob had added a line at the same place in a (C++) .h file as User 
Joe, who had already pushed his one line change.  The natural 
expectation would be a conflict during User Bob's rebase operation, but, 
in fact, the conflicting patch applied without difficulty.

After an investigation, we discovered this particular file had a near 
duplicate of its C++ class definition immediately following the original 
but renamed into a thread-safe version; the rename of the class was the 
only change to its contents.  The default  'git rebase' operation looked 
some 150 lines into the file, discovered the patch didn't match due to 
User Joe's added line, continued scanning the file until it found 
another matching location some 300 lines later (the near duplicate 
thread-safe version of the class), and applied the patch there.

While coming up with a repro to post here, we cherry picked the 
individual changes and found the cherry pick properly conflicted.

We further discovered 'git rebase -m' (or 'git rebase -s recursive') 
also conflicted at the User Bob/Joe modification.

I can post a repro here, if needed.

I'm curious as to why 'git rebase -m' isn't the default and what the 
real difference is between 'git rebase' and 'git rebase -m'.  
Additionally, is there any documentation describing how the patch 
algorithm determines context?

Thanks!

Josh

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-11-17 14:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-16 17:35 Difference between 'git rebase' and 'git rebase -m' Joshua Jensen
2010-11-16 18:27 ` Jonathan Nieder
2010-11-17 11:43   ` Nguyen Thai Ngoc Duy
2010-11-17 13:36     ` Michael J Gruber
2010-11-17 14:38       ` Nguyen Thai Ngoc Duy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).