indygreg added a comment.

  I support experimenting with putting copy metadata in the changelog. And the 
patches before this one did a lot of work to allow copy metadata to be read 
from alternate sources, which is great, since it can allow flexibility in the 
future (think copy caches, copy modifications outside of a commit, etc).
  
  I haven't looked at all these patches in detail, but it seems to me there 
should be a repo requirement in the case(s) where (all) copy metadata is not in 
the filelogs. Without a repo requirement, an old client may attempt to open a 
repo and not be able to find the copy metadata. It is OK to duplicate copy 
metadata in the changelog and have newer clients use copy metadata from the 
changelog if it is available. But if all copy metadata isn't available in the 
filelogs, there needs to be a requirement to lock out old clients.
  
  That being said, we may want to be aggressive than this! If a new client is 
writing copy metadata to filelogs and the changelog, an old client may commit 
to the repo with the copy metadata just in the filelogs. I'm not sure about the 
code behavior, but presumably a new client configured to use changelog copy 
metadata would forego reading the filelog metadata since it is expecting to 
read it from the changelog. This could result in a new client missing copy 
metadata written by an old client. So we would need a repo requirement to lock 
out old clients from writing to the repo.
  
  Then there's the wire protocol aspect. How does the copy metadata writing 
setting get propagated to the client? If it fails to get propagated, it is a 
similar situation to the local repo situation. Again, there needs to be some 
kind of requirement/capability detection here and the server setting needs to 
find its way to the client or else bad things can happen.
  
  Anyway, this is exciting work! It is still an experimental feature, so the 
implementation doesn't have to be perfect. But we will need to cross the repo 
requirements/capabilities bridge at some point. Can't wait to see the benefits 
of this work!

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6183

To: martinvonz, #hg-reviewers
Cc: indygreg, yuja, pulkit, gracinet, marmoute, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to