D8031: copy: rewrite walkpat() to depend less on dirstate
Closed by commit rHG2bd3b95fdce0: copy: rewrite walkpat() to depend less on dirstate (authored by martinvonz). This revision was automatically updated to reflect the committed changes. This revision was not accepted when it landed; it landed in state "Needs Review". REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D8031?vs=20171=20196 CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D8031/new/ REVISION DETAIL https://phab.mercurial-scm.org/D8031 AFFECTED FILES mercurial/cmdutil.py CHANGE DETAILS diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1419,32 +1419,35 @@ after = opts.get(b"after") dryrun = opts.get(b"dry_run") wctx = repo[None] +pctx = wctx.p1() uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) def walkpat(pat): srcs = [] -if after: -badstates = b'?' -else: -badstates = b'?r' m = scmutil.match(wctx, [pat], opts, globbed=True) for abs in wctx.walk(m): -state = repo.dirstate[abs] rel = uipathfn(abs) exact = m.exact(abs) -if state in badstates: -if exact and state == b'?': -ui.warn(_(b'%s: not copying - file is not managed\n') % rel) -if exact and state == b'r': -ui.warn( -_( -b'%s: not copying - file has been marked for' -b' remove\n' +if abs not in wctx: +if abs in pctx: +if not after: +if exact: +ui.warn( +_( +b'%s: not copying - file has been marked ' +b'for remove\n' +) +% rel +) +continue +else: +if exact: +ui.warn( +_(b'%s: not copying - file is not managed\n') % rel ) -% rel -) -continue +continue + # abs: hgsep # rel: ossep srcs.append((abs, rel, exact)) To: martinvonz, #hg-reviewers, marmoute Cc: marmoute, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D8031: copy: rewrite walkpat() to depend less on dirstate
martinvonz updated this revision to Diff 20171. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D8031?vs=20150=20171 BRANCH default CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D8031/new/ REVISION DETAIL https://phab.mercurial-scm.org/D8031 AFFECTED FILES mercurial/cmdutil.py CHANGE DETAILS diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1419,32 +1419,35 @@ after = opts.get(b"after") dryrun = opts.get(b"dry_run") wctx = repo[None] +pctx = wctx.p1() uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) def walkpat(pat): srcs = [] -if after: -badstates = b'?' -else: -badstates = b'?r' m = scmutil.match(wctx, [pat], opts, globbed=True) for abs in wctx.walk(m): -state = repo.dirstate[abs] rel = uipathfn(abs) exact = m.exact(abs) -if state in badstates: -if exact and state == b'?': -ui.warn(_(b'%s: not copying - file is not managed\n') % rel) -if exact and state == b'r': -ui.warn( -_( -b'%s: not copying - file has been marked for' -b' remove\n' +if abs not in wctx: +if abs in pctx: +if not after: +if exact: +ui.warn( +_( +b'%s: not copying - file has been marked ' +b'for remove\n' +) +% rel +) +continue +else: +if exact: +ui.warn( +_(b'%s: not copying - file is not managed\n') % rel ) -% rel -) -continue +continue + # abs: hgsep # rel: ossep srcs.append((abs, rel, exact)) To: martinvonz, #hg-reviewers, marmoute Cc: marmoute, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D8031: copy: rewrite walkpat() to depend less on dirstate
martinvonz updated this revision to Diff 20150. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D8031?vs=20083=20150 BRANCH default CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D8031/new/ REVISION DETAIL https://phab.mercurial-scm.org/D8031 AFFECTED FILES mercurial/cmdutil.py CHANGE DETAILS diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1422,6 +1422,7 @@ after = opts.get(b"after") dryrun = opts.get(b"dry_run") wctx = repo[None] +pctx = wctx.p1() uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) @@ -1481,27 +1482,29 @@ def walkpat(pat): srcs = [] -if after: -badstates = b'?' -else: -badstates = b'?r' m = scmutil.match(wctx, [pat], opts, globbed=True) for abs in wctx.walk(m): -state = repo.dirstate[abs] rel = uipathfn(abs) exact = m.exact(abs) -if state in badstates: -if exact and state == b'?': -ui.warn(_(b'%s: not copying - file is not managed\n') % rel) -if exact and state == b'r': -ui.warn( -_( -b'%s: not copying - file has been marked for' -b' remove\n' +if abs not in wctx: +if abs in pctx: +if not after: +if exact: +ui.warn( +_( +b'%s: not copying - file has been marked ' +b'for remove\n' +) +% rel +) +continue +else: +if exact: +ui.warn( +_(b'%s: not copying - file is not managed\n') % rel ) -% rel -) -continue +continue + # abs: hgsep # rel: ossep srcs.append((abs, rel, exact)) To: martinvonz, #hg-reviewers, marmoute Cc: marmoute, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D8031: copy: rewrite walkpat() to depend less on dirstate
martinvonz updated this revision to Diff 20083. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D8031?vs=20070=20083 BRANCH default CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D8031/new/ REVISION DETAIL https://phab.mercurial-scm.org/D8031 AFFECTED FILES mercurial/cmdutil.py CHANGE DETAILS diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1415,6 +1415,7 @@ after = opts.get(b"after") dryrun = opts.get(b"dry_run") wctx = repo[None] +pctx = wctx.p1() uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) @@ -1474,27 +1475,29 @@ def walkpat(pat): srcs = [] -if after: -badstates = b'?' -else: -badstates = b'?r' m = scmutil.match(wctx, [pat], opts, globbed=True) for abs in wctx.walk(m): -state = repo.dirstate[abs] rel = uipathfn(abs) exact = m.exact(abs) -if state in badstates: -if exact and state == b'?': -ui.warn(_(b'%s: not copying - file is not managed\n') % rel) -if exact and state == b'r': -ui.warn( -_( -b'%s: not copying - file has been marked for' -b' remove\n' +if abs not in wctx: +if abs in pctx: +if not after: +if exact: +ui.warn( +_( +b'%s: not copying - file has been marked ' +b'for remove\n' +) +% rel +) +continue +else: +if exact: +ui.warn( +_(b'%s: not copying - file is not managed\n') % rel ) -% rel -) -continue +continue + # abs: hgsep # rel: ossep srcs.append((abs, rel, exact)) To: martinvonz, #hg-reviewers, marmoute Cc: marmoute, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D8031: copy: rewrite walkpat() to depend less on dirstate
martinvonz updated this revision to Diff 20070. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D8031?vs=19694=20070 BRANCH default CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D8031/new/ REVISION DETAIL https://phab.mercurial-scm.org/D8031 AFFECTED FILES mercurial/cmdutil.py CHANGE DETAILS diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1415,6 +1415,7 @@ after = opts.get(b"after") dryrun = opts.get(b"dry_run") wctx = repo[None] +pctx = wctx.p1() uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) @@ -1474,27 +1475,29 @@ def walkpat(pat): srcs = [] -if after: -badstates = b'?' -else: -badstates = b'?r' m = scmutil.match(wctx, [pat], opts, globbed=True) for abs in wctx.walk(m): -state = repo.dirstate[abs] rel = uipathfn(abs) exact = m.exact(abs) -if state in badstates: -if exact and state == b'?': -ui.warn(_(b'%s: not copying - file is not managed\n') % rel) -if exact and state == b'r': -ui.warn( -_( -b'%s: not copying - file has been marked for' -b' remove\n' +if abs not in wctx: +if abs in pctx: +if not after: +if exact: +ui.warn( +_( +b'%s: not copying - file has been marked ' +b'for remove\n' +) +% rel +) +continue +else: +if exact: +ui.warn( +_(b'%s: not copying - file is not managed\n') % rel ) -% rel -) -continue +continue + # abs: hgsep # rel: ossep srcs.append((abs, rel, exact)) To: martinvonz, #hg-reviewers, marmoute Cc: marmoute, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D8031: copy: rewrite walkpat() to depend less on dirstate
marmoute added a comment. marmoute accepted this revision. This looks like a small cleanup we could take independently. REPOSITORY rHG Mercurial CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D8031/new/ REVISION DETAIL https://phab.mercurial-scm.org/D8031 To: martinvonz, #hg-reviewers, marmoute Cc: marmoute, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D8031: copy: rewrite walkpat() to depend less on dirstate
martinvonz updated this revision to Diff 19694. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D8031?vs=19664=19694 BRANCH default CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D8031/new/ REVISION DETAIL https://phab.mercurial-scm.org/D8031 AFFECTED FILES mercurial/cmdutil.py CHANGE DETAILS diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1419,32 +1419,35 @@ after = opts.get(b"after") dryrun = opts.get(b"dry_run") wctx = repo[None] +pctx = wctx.p1() uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) def walkpat(pat): srcs = [] -if after: -badstates = b'?' -else: -badstates = b'?r' m = scmutil.match(wctx, [pat], opts, globbed=True) for abs in wctx.walk(m): -state = repo.dirstate[abs] rel = uipathfn(abs) exact = m.exact(abs) -if state in badstates: -if exact and state == b'?': -ui.warn(_(b'%s: not copying - file is not managed\n') % rel) -if exact and state == b'r': -ui.warn( -_( -b'%s: not copying - file has been marked for' -b' remove\n' +if abs not in wctx: +if abs in pctx: +if not after: +if exact: +ui.warn( +_( +b'%s: not copying - file has been marked ' +b'for remove\n' +) +% rel +) +continue +else: +if exact: +ui.warn( +_(b'%s: not copying - file is not managed\n') % rel ) -% rel -) -continue +continue + # abs: hgsep # rel: ossep srcs.append((abs, rel, exact)) To: martinvonz, #hg-reviewers Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D8031: copy: rewrite walkpat() to depend less on dirstate
martinvonz created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY I want to add a `hg cp/mv -r ` option to mark files as copied/moved in an existing commit (amending that commit). The code needs to not depend on the dirstate for that. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D8031 AFFECTED FILES mercurial/cmdutil.py CHANGE DETAILS diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1419,32 +1419,35 @@ after = opts.get(b"after") dryrun = opts.get(b"dry_run") wctx = repo[None] +pctx = wctx.p1() uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) def walkpat(pat): srcs = [] -if after: -badstates = b'?' -else: -badstates = b'?r' m = scmutil.match(wctx, [pat], opts, globbed=True) for abs in wctx.walk(m): -state = repo.dirstate[abs] rel = uipathfn(abs) exact = m.exact(abs) -if state in badstates: -if exact and state == b'?': -ui.warn(_(b'%s: not copying - file is not managed\n') % rel) -if exact and state == b'r': -ui.warn( -_( -b'%s: not copying - file has been marked for' -b' remove\n' +if abs not in wctx: +if abs in pctx: +if not after: +if exact: +ui.warn( +_( +b'%s: not copying - file has been marked ' +b'for remove\n' +) +% rel +) +continue +else: +if exact: +ui.warn( +_(b'%s: not copying - file is not managed\n') % rel ) -% rel -) -continue +continue + # abs: hgsep # rel: ossep srcs.append((abs, rel, exact)) To: martinvonz, #hg-reviewers Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel