yuja added a comment.

  In https://phab.mercurial-scm.org/D2057#46980, @Ivzhh wrote:
  
  > In https://phab.mercurial-scm.org/D2057#46726, @yuja wrote:
  >
  > > >> I think the only place where you would need to do os-specific code is 
when
  > > >>  doing serialization and serialization
  > > > 
  > > > Yes, that will be feasible in strictly typed language like Rust.
  > >
  > > To be clear, I meant serialization/deserialization between filesystem 
path and
  > >  internal dirstate/manifest path, not between dirstate storage and 
in-memory
  > >  dirstate object.
  >
  >
  > I guess your suggestion is like this: @yuja
  >
  > 1. if it is windows and the code page is MBCS, try to decode the paths read 
from manifest and dirstate into unicode equivalent
  > 2. use utf internally and with rust IO api
  > 3. when writing back to dirstate and manifest, encode utf to MBCS
  
  
  No. My suggestion is:
  
  1. keep manifest/dirstate paths as bytes (which are probably wrapped by some 
type, say HgPath)
  2. but we want to use Rust's standard library for I/O
  3. so, add utility function/trait to convert HgPath to Path/PathBuf, where 
MBCS-Wide conversion will occur.
  
  I think raw byte paths will be needed to build store paths (e.g. 
`.hg/store/data/~2eclang-format.i`).
  
  https://www.mercurial-scm.org/repo/hg/file/4.5.2/mercurial/store.py

REPOSITORY
  rHG Mercurial

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

To: Ivzhh, #hg-reviewers, kevincox
Cc: quark, yuja, glandium, krbullock, indygreg, durin42, kevincox, 
mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to