This revision now requires changes to proceed.
marmoute added a comment.
marmoute requested changes to this revision.


  In D8030#119816 <https://phab.mercurial-scm.org/D8030#119816>, @marmoute 
wrote:
  
  >>> Something like `hg uncopy --after` which makes the changes in wdir which 
can be committed afterwards sounds best, but I am not sure if that's possible.
  >>
  >> Yeah, not really possible (Augie had the same comment on one of these 
patches).
  >
  > Can we update the dirstate to represent such copy related information ? 
(both for adding or removing a copy).
  
  Something that really bother me with this kind of command rewriting history 
is that it can result in an absurd amount of rewrite.
  
  The usual way to change something in mercurial is:
  
  1. get on a clean revision
  2. make changes 1
  3. make changes 2
  4. make changes …
  5. make changes 42
  6. record the changes (commit, amend, etc…)
  
  If command like `hg copy` start rewriting history, each smallest atomic 
operation result rewriting one (or multiple) changesets. This is a slippery 
slope I would rather not walk on.
  
  I think we should explore being able to record this in dirstate and use 
regular amend to record the change.

INLINE COMMENTS

> cmdutil.py:1707
> +        if len(ctx.parents()) > 1:
> +            raise error.Abort(_(b'cannot unmark copy in merge commit'))
> +        # avoid cycle context -> subrepo -> cmdutil

Why can we do it for merge commit ?

> cmdutil.py:1708
> +            raise error.Abort(_(b'cannot unmark copy in merge commit'))
> +        # avoid cycle context -> subrepo -> cmdutil
> +        from . import context

I prefer this kind of shortcut to be exceptional. Maybe this need to move out 
of cmdutil ?

> cmdutil.py:1711
> +
> +        rewriteutil.precheck(repo, [ctx.rev()], b'uncopy')
> +        new_ctx = context.overlayworkingctx(repo)

bonus point for using precheck ☺

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D8030/new/

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

To: martinvonz, #hg-reviewers, durin42, marmoute
Cc: marmoute, pulkit, durin42, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to