# HG changeset patch
# User Pierre-Yves David <pierre-yves.david@octobus.net>
# Date 1594055599 -7200
#      Mon Jul 06 19:13:19 2020 +0200
# Node ID 31393ec06cef7346015bafe8691095e0cc1b2862
# Parent  86f9b25d750b538e42ec7707e1d090c007413138
commitctx: document a fast path in _filecommit

This block cut off a lot of logic, documenting the why and how seems useful to
future reader.

This is part of a larger refactoring/cleanup of the commitctx code to clarify
and augment the logic gathering metadata useful for copy tracing. The current
code is a tad too long and entangled to make such update easy. We start with
easy and small cleanup.

Differential Revision: https://phab.mercurial-scm.org/D8700

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -2802,6 +2802,9 @@
             touched = 'added'
 
         if isinstance(fctx, context.filectx):
+            # This block fast path most comparisons which are usually done. It
+            # assumes that bare filectx is used and no merge happened, hence no
+            # need to create a new file revision in this case.
             node = fctx.filenode()
             if node in [fparent1, fparent2]:
                 self.ui.debug(b'reusing %s filelog entry\n' % fname)