view tests/test-convert-bzr-ghosts.t @ 26206:ab1c6e4efda4

add: pass full=False to dirstate walk Previously cmdutil.add would call wctx.walk(), which under the hood calls dirstate.walk with full=True. This means it returns all of the clean files (which we don't need when computing the add set), as well as the unclean files. This results in 1) a lot more work being done and 2) this code path circumventing the hgwatchman extension, resulting in worse performance in hgwatchman environments ('hg add .' went from 9s to 1.8s).
author Durham Goode <durham@fb.com>
date Wed, 09 Sep 2015 09:07:27 -0700
parents 89872688893f
children 75be14993fda
line wrap: on
line source

#require bzr

  $ . "$TESTDIR/bzr-definitions"
  $ cat > ghostcreator.py <<EOF
  > import sys
  > from bzrlib import workingtree
  > wt = workingtree.WorkingTree.open('.')
  > 
  > message, ghostrev = sys.argv[1:]
  > wt.set_parent_ids(wt.get_parent_ids() + [ghostrev])
  > wt.commit(message)
  > EOF

ghost revisions

  $ mkdir test-ghost-revisions
  $ cd test-ghost-revisions
  $ bzr init -q source
  $ cd source
  $ echo content > somefile
  $ bzr add -q somefile
  $ bzr commit -q -m 'Initial layout setup'
  $ echo morecontent >> somefile
  $ python ../../ghostcreator.py 'Commit with ghost revision' ghostrev
  $ cd ..
  $ hg convert source source-hg
  initializing destination source-hg repository
  scanning source...
  sorting...
  converting...
  1 Initial layout setup
  0 Commit with ghost revision
  $ glog -R source-hg
  o  1@source "Commit with ghost revision" files: somefile
  |
  o  0@source "Initial layout setup" files: somefile
  

  $ cd ..