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

pulkit (Pulkit Goyal) phabricator at mercurial-scm.org
Mon Apr 8 12:45:53 EDT 2019


pulkit added a comment.


  In https://phab.mercurial-scm.org/D6183#90498, @martinvonz wrote:
  
  > In https://phab.mercurial-scm.org/D6183#90486, @pulkit wrote:
  >
  > > In https://phab.mercurial-scm.org/D6183#90481, @martinvonz wrote:
  > >
  > > > In https://phab.mercurial-scm.org/D6183#90327, @martinvonz wrote:
  > > >
  > > > > In https://phab.mercurial-scm.org/D6183#90300, @marmoute wrote:
  > > > >
  > > > > > I am quite enthousiastic for a non-filelog based copy tracing using commit level information. However, I am very unenthousiastic at the idea of storing more copy data in the changeset itself. The "files" field in the changelog is already quite problematic (about 95% for changelog.d  file, taking possibily hundred of megabytes).
  > > > >
  > > > >
  > > > > It seems like it should save a similar amount of data from the filelog, so what's your concern? That things that need to scan the changelog will need to read more data from disk? Most commits don't have copy information, so I'm not too worried about this. Feel free to experiment on a large repo and insert copy information in changesets there and see how much larger changelog.d becomes. (I was planning to do that later for performance testing.)
  > > >
  > > >
  > > > It took a few days to convert (an old version of) the mozilla-unified repo. I converted it once with copies in changeset and once with copies in filelogs (to remove any influence from different delta base selection in new versions of hg). Here's the result:
  > > >
  > > >             size           |   in filelog | in changeset | increase |
  > > >   .hg/store/00changelog.d  |    127067298 |    128173208 |    0.87% |
  > > >   .hg/                     |   2866813806 |   2804688010 |   -2.17% |
  > > >
  > >
  > >
  > > I am following this discussion closely because copytracing is very painful for us too. The above numbers looks nice. How can I try this myself on some internal repo?
  >
  >
  > You'll need to patch in this series and also https://phab.mercurial-scm.org/D6219. Then run `hg convert --config experimental.copies.write-to=changeset-only`. However, note that the performance is most likely going to be a lot *worse* for now, so there's not much reason to try it IMO (except to verify that my numbers above are valid, or to see that it won't be much worse in your repo). It took over 30 hours to convert the mozilla-unified repo for me.
  
  
  Thanks, I will check the change in size of .hg/ and changelog size.

REPOSITORY
  rHG Mercurial

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

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


More information about the Mercurial-devel mailing list