##// END OF EJS Templates
largefiles: check file in the repo store before checking remotely (issue5257)...
largefiles: check file in the repo store before checking remotely (issue5257) Problem was files to check were gathered in the repository where the verify was launched but verification was done on the remote store. It was observed when user committed in cloned repository and ran verify before pushing - committed files were marked as non existing. This commit fixes this by checking in the remote store only files that are not existing in the repository store where verify was launched. Solution is similiar to fd288d118074

File last commit:

r27176:54ace337 default
r29421:ecbbf4d5 default
Show More
test-rebuildstate.t
125 lines | 2.8 KiB | text/troff | Tads3Lexer
$ cat > adddrop.py <<EOF
> from mercurial import cmdutil
> cmdtable = {}
> command = cmdutil.command(cmdtable)
> @command('debugadddrop',
> [('', 'drop', False, 'drop file from dirstate', 'FILE'),
> ('', 'normal-lookup', False, 'add file to dirstate', 'FILE')],
> 'hg debugadddrop')
> def debugadddrop(ui, repo, *pats, **opts):
> '''Add or drop unnamed arguments to or from the dirstate'''
> drop = opts.get('drop')
> nl = opts.get('normal_lookup')
> if nl and drop:
> raise error.Abort('drop and normal-lookup are mutually exclusive')
> wlock = repo.wlock()
> try:
> for file in pats:
> if opts.get('normal_lookup'):
> repo.dirstate.normallookup(file)
> else:
> repo.dirstate.drop(file)
>
> repo.dirstate.write(repo.currenttransaction())
> finally:
> wlock.release()
> EOF
$ echo "[extensions]" >> $HGRCPATH
$ echo "debugadddrop=`pwd`/adddrop.py" >> $HGRCPATH
basic test for hg debugrebuildstate
$ hg init repo
$ cd repo
$ touch foo bar
$ hg ci -Am 'add foo bar'
adding bar
adding foo
$ touch baz
$ hg add baz
$ hg rm bar
$ hg debugrebuildstate
state dump after
$ hg debugstate --nodates | sort
n 644 -1 set bar
n 644 -1 set foo
$ hg debugadddrop --normal-lookup file1 file2
$ hg debugadddrop --drop bar
$ hg debugadddrop --drop
$ hg debugstate --nodates
n 0 -1 unset file1
n 0 -1 unset file2
n 644 -1 set foo
$ hg debugrebuildstate
status
$ hg st -A
! bar
? baz
C foo
Test debugdirstate --minimal where a file is not in parent manifest
but in the dirstate
$ touch foo bar qux
$ hg add qux
$ hg remove bar
$ hg status -A
A qux
R bar
? baz
C foo
$ hg debugadddrop --normal-lookup baz
$ hg debugdirstate --nodates
r 0 0 * bar (glob)
n 0 -1 * baz (glob)
n 644 0 * foo (glob)
a 0 -1 * qux (glob)
$ hg debugrebuilddirstate --minimal
$ hg debugdirstate --nodates
r 0 0 * bar (glob)
n 644 0 * foo (glob)
a 0 -1 * qux (glob)
$ hg status -A
A qux
R bar
? baz
C foo
Test debugdirstate --minimal where file is in the parent manifest but not the
dirstate
$ hg manifest
bar
foo
$ hg status -A
A qux
R bar
? baz
C foo
$ hg debugdirstate --nodates
r 0 0 * bar (glob)
n 644 0 * foo (glob)
a 0 -1 * qux (glob)
$ hg debugadddrop --drop foo
$ hg debugdirstate --nodates
r 0 0 * bar (glob)
a 0 -1 * qux (glob)
$ hg debugrebuilddirstate --minimal
$ hg debugdirstate --nodates
r 0 0 * bar (glob)
n 644 -1 * foo (glob)
a 0 -1 * qux (glob)
$ hg status -A
A qux
R bar
? baz
C foo