D6183: copies: add config option for writing copy metadata to file and/or changset

yuja (Yuya Nishihara) phabricator at mercurial-scm.org
Sun Apr 14 19:02:24 EDT 2019


yuja added a comment.


  >   > >   >  extras field. Almost all extras data are texts, and IIRC we regret that
  >   > >   >  transplant sources are stored in binary form.
  >   > >   
  >   > >   Why not? I picked \0 and \n because they won't appear in filenames, so it's convenient in that way.
  >   >
  >   > I don't remember, but we do store even boolean value as text, not in binary
  >   >  `\0`/`\1` form. `transplant_source` is the solo exception.
  >   
  >   
  >   Perhaps it's just so `{extras}` doesn't print ANSI escape codes and such? (I assume that can still happen if put escape characters in your filenames, for example.)
  
  Ok. That might be the reason, and I'm fine with the `\0` separator.
  
  >   > https://www.mercurial-scm.org/wiki/ChangesetExtra
  >   > 
  >   > And if we pick \0/\n separators, _string_escape() wouldn't be needed
  >   >  at the encodecopies() layer.
  >   
  >   Oh, now I see what you're saying! That's embarrassing. So maybe we should `_string_escape()` the whole thing? I'll do that.
  
  Not really. I meant `_string_escape()` could be removed entirely if we store
  copies in binary (valid_filename + invalid_filename_separator) form. The extra
  dict will be encoded later.

REPOSITORY
  rHG Mercurial

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

To: martinvonz, #hg-reviewers
Cc: yuja, pulkit, gracinet, marmoute, mercurial-devel


More information about the Mercurial-devel mailing list