mercurial/copies.py
changeset 42520 898b36f74f75
parent 42519 907cef396635
child 42548 4ebbd7c4a3c5
--- a/mercurial/copies.py	Thu Jun 20 10:58:14 2019 -0700
+++ b/mercurial/copies.py	Wed Jun 26 05:20:02 2019 -0700
@@ -268,6 +268,10 @@
     # 'work' contains 3-tuples of a (revision number, parent number, copies).
     # The parent number is only used for knowing which parent the copies dict
     # came from.
+    # NOTE: To reduce costly copying the 'copies' dicts, we reuse the same
+    # instance for *one* of the child nodes (the last one). Once an instance
+    # has been put on the queue, it is thus no longer safe to modify it.
+    # Conversely, it *is* safe to modify an instance popped off the queue.
     work = [(r, 1, {}) for r in roots]
     heapq.heapify(work)
     alwaysmatch = match.always()