[PATCH 2 of 3 STABLE] rename: properly report removed and added file as modified (issue4458)

Pierre-Yves David pierre-yves.david at ens-lyon.org
Wed Nov 26 18:44:35 CST 2014



On 11/26/2014 04:26 PM, Martin von Zweigbergk wrote:
>     diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
>     --- a/mercurial/scmutil.py
>     +++ b/mercurial/scmutil.py
>     @@ -802,12 +802,16 @@ def dirstatecopy(ui, repo, wctx, src, ds
>               if repo.dirstate[origsrc] == 'a' and origsrc == src:
>                   if not ui.quiet:
>                       ui.warn(_("%s has not been committed yet, so no copy "
>                                 "data will be stored for %s.\n")
>                               % (repo.pathto(origsrc, cwd),
>     repo.pathto(dst, cwd)))
>     -            if repo.dirstate[dst] in '?r' and not dryrun:
>     -                wctx.add([dst])
>     +            if not dryrun:
>     +                if repo.dirstate[dst] == '?':
>     +                    wctx.add([dst])
>     +                elif repo.dirstate[dst] == 'r':
>     +                    repo.dirstate.normallookup(__dst)
>     +
>
>
> Would bypassing wctx.add() and going straight to
> repo.dirstate.normallookup() when the file had been previously removed
> be equivalent? It seems like that bypasses the warning about adding big
> files and odd file types. Is the thinking that that would have been
> already checked when the source was added? It would also bypass the
> repo.wlock(). I don't know if that has any effect. What's the reason for
> not calling wctx.add() in both cases?

You are right, this is useless and wrong rubbish. Uncommiting it and 
sending a V2.

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list