Skip to content
Snippets Groups Projects
  • Pierre-Yves David's avatar
    bf11ff22a9af
    dirstate-v2: freeze the on-disk format · bf11ff22a9af
    Pierre-Yves David authored
    It seems the format as reached a good balance. With a core of new capabilities
    that motivated it initially and enough new feature and room for future
    improvement to be a clear progress we can set a milestone for.
    
    Having the format frozen will help the feature to get real life testing, outside
    of the test suite.
    
    The feature itself stay experimental but the config gains a new name to avoid
    people enable non-frozen version by default.
    
    If too many bugs are reported during the RC we might move the format back to
    experimental and drop its support in future version (in favor of a new one)
    
    Differential Revision: https://phab.mercurial-scm.org/D11709
    bf11ff22a9af
    History
    dirstate-v2: freeze the on-disk format
    Pierre-Yves David authored
    It seems the format as reached a good balance. With a core of new capabilities
    that motivated it initially and enough new feature and room for future
    improvement to be a clear progress we can set a milestone for.
    
    Having the format frozen will help the feature to get real life testing, outside
    of the test suite.
    
    The feature itself stay experimental but the config gains a new name to avoid
    people enable non-frozen version by default.
    
    If too many bugs are reported during the RC we might move the format back to
    experimental and drop its support in future version (in favor of a new one)
    
    Differential Revision: https://phab.mercurial-scm.org/D11709
test-permissions.t 1.48 KiB
#require unix-permissions no-root reporevlogstore

#testcases dirstate-v1 dirstate-v2

#if dirstate-v2
  $ cat >> $HGRCPATH << EOF
  > [format]
  > exp-rc-dirstate-v2=1
  > [storage]
  > dirstate-v2.slow-path=allow
  > EOF
#endif

  $ hg init t
  $ cd t

  $ echo foo > a
  $ hg add a

  $ hg commit -m "1"

  $ hg verify
  checking changesets
  checking manifests
  crosschecking files in changesets and manifests
  checking files
  checked 1 changesets with 1 changes to 1 files

  $ chmod -r .hg/store/data/a.i

  $ hg verify
  checking changesets
  checking manifests
  crosschecking files in changesets and manifests
  checking files
  abort: Permission denied: '$TESTTMP/t/.hg/store/data/a.i'
  [255]

  $ chmod +r .hg/store/data/a.i

  $ hg verify
  checking changesets
  checking manifests
  crosschecking files in changesets and manifests
  checking files
  checked 1 changesets with 1 changes to 1 files

  $ chmod -w .hg/store/data/a.i

  $ echo barber > a
  $ hg commit -m "2"
  trouble committing a!
  abort: Permission denied: '$TESTTMP/t/.hg/store/data/a.i'
  [255]

  $ chmod -w .

  $ hg diff --nodates
  diff -r 2a18120dc1c9 a
  --- a/a
  +++ b/a
  @@ -1,1 +1,1 @@
  -foo
  +barber

  $ chmod +w .

  $ chmod +w .hg/store/data/a.i
  $ mkdir dir
  $ touch dir/a