From patchwork Mon Oct 17 11:59:10 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [STABLE] keyword: use fctx.filenode() instead of internal var (issue5364) From: Christian Ebert X-Patchwork-Id: 17152 Message-Id: <20161017115910.GA11021@krille.blacktrash.org> To: mercurial-devel@mercurial-scm.org Date: Mon, 17 Oct 2016 13:59:10 +0200 * Yuya Nishihara on Friday, September 09, 2016 at 21:50:31 +0900 > On Thu, 08 Sep 2016 17:12:34 +0100, Christian Ebert wrote: >> # HG changeset patch >> # User Christian Ebert >> # Date 1473350741 -3600 >> # Thu Sep 08 17:05:41 2016 +0100 >> # Branch stable >> # Node ID d4f2b7b5b2e382dcc34409ddcb89b9280262c2d0 >> # Parent e7766022a61a66a7c4218526b647f96bd442a4ce >> keyword: use fctx.filenode() instead of internal var (issue5364) >> >> I caved in to the proposal to use internal _filenode variable: >> https://www.mercurial-scm.org/pipermail/mercurial-devel/2010-October/025237.html > > Ah, I got the point why internal _filenode was preferred. I think Nicolas > was right. Since kwfilectx_cmp() heavily depends on the internal of the filectx, > using _filenode would catch more bugs. As mentioned in the bug tracker, the current version uses _filenode since 4a65c9c6cd3f, and I actually cannot repro the issue with it. >> --- a/hgext/keyword.py >> +++ b/hgext/keyword.py >> @@ -739,7 +739,7 @@ def reposetup(ui, repo): >> def kwfilectx_cmp(orig, self, fctx): > > Maybe we'll have to handle _customcmp instead? > > https://selenic.com/repo/hg/log?rev=bd19561b98d9%3A%3A7b038ec6c5fd To be honest, I can't wrap my head around that. But do you simply mean something like: diff --git a/hgext/keyword.py b/hgext/keyword.py --- a/hgext/keyword.py +++ b/hgext/keyword.py @@ -737,6 +737,8 @@ def reposetup(ui, repo): return ret def kwfilectx_cmp(orig, self, fctx): + if fctx._customcmp: + return fctx.comp(self) # keyword affects data size, comparing wdir and filelog size does # not make sense if (fctx.filenode() is None and