D5410: merge: allow to merge non-conflicting changes outside narrowspec

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Thu Feb 21 20:36:19 EST 2019


martinvonz added a comment.


  In https://phab.mercurial-scm.org/D5410#87526, @pulkit wrote:
  
  > In https://phab.mercurial-scm.org/D5410#85244, @martinvonz wrote:
  >
  > > In https://phab.mercurial-scm.org/D5410#85232, @pulkit wrote:
  > >
  > > > In https://phab.mercurial-scm.org/D5410#80207, @martinvonz wrote:
  > > >
  > > > > I'm pretty sure this doesn't actually perform the merge, it just drops the changes outside the narrowspec. On commit, we need to record that outside/ has the new nodeid that we got from the side we merged in. To do that, we need to remember what that nodeid is, from the time of `hg merge` to the time of `hg commit`. That probably means storing the nodeid in the dirstate (like git does), or maybe in the merge state.
  > > >
  > > >
  > > > IIUC, dirstate does not contains files outside narrowspec. Maybe we need to do this in merge state?
  > >
  > >
  > > I think neither of them currently contains files outside narrows, so we'd need to extend whichever we decide. It's probably easier to extend the merge state. I'm not sure which I think is cleaner to extend. There's precedent for populating the commit based on the dirstate (index) in git.
  >
  >
  > Or not touch any of them and introduce a new file?
  
  
  Sure, that's another option. It might be the easiest one since it won't involve making the format compatible (although I think that's pretty easy for the merge state).

REPOSITORY
  rHG Mercurial

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

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


More information about the Mercurial-devel mailing list