D24: rebase: remove revprecursor and revpruned states (BC)

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Sat Aug 26 03:32:49 EDT 2017


martinvonz added a comment.


  This broke some of our internal tests. We do something like this:
  
  Start with a patch on top of upstream @:
  o A
  
  |
  |
  
  @
  
  Commit A gets sent for review and landed. The user then does "hg pull":
  
  o A'
  
  |
  | @ A obsolete |
  | /            |
  |
  
  o
  
  What our tests (and most of our users) actually do is "hg pull --rebase". Before this patch, that would result in:
  
  @ A'
  
  |
  |
  
  o
  
  After this patch, the update doesn't happen, so the user stays in the state in the graph above. I suppose the same would happen if there were commits on top of A. Expecting the update to happen seems reasonable to me, but I also see your point.
  
  Here's another argument for the old behavior. Let's say there was no pull involved and we instead had this:
  
  o D
  
  |
  |
  
  o B'
  
  |
  | o C |
  |     |
  | x B |
  |     |
  | o A |
  | /   |
  |
  
  o
  
  Then "hg rebase -d D -b C". If that command was run from A or C, one would end up on A' or C'. If it was run from B, it seems reasonable that one would end up on A', as one would before this patch, I believe.
  
  So what do you think? Should we back out this patch?

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D24

To: quark, durin42, #hg-reviewers
Cc: martinvonz, durin42, mercurial-devel


More information about the Mercurial-devel mailing list