comparison tests/test-largefiles-update.t @ 23276:4be754832829

largefiles: move "copyalltostore" invocation into "markcommitted" Before this patch, while "hg convert", largefiles avoids copying largefiles in the working directory into the store area by combination of setting "repo._isconverting" in "mercurialsink{before|after}" and checking it in "copytostoreabsolute". This avoiding is needed while "hg convert", because converting doesn't update largefiles in the working directory. But this implementation is not efficient, because: - invocation in "markcommitted" can easily ensure updating largefiles in the working directory "markcommitted" is invoked only when new revision is committed via "commit" of "localrepository" (= with files in the working directory). On the other hand, "commitctx" may be invoked directly for in-memory committing. - committing without updating the working directory (e.g. "import --bypass") also needs this kind of avoiding For efficiency of this kind of avoiding, this patch does: - move "copyalltostore" invocation into "markcommitted" - remove meaningless procedures below: - hooking "mercurialsink{before|after}" to (un)set "repo._isconverting" - checking "repo._isconverting" in "copytostoreabsolute" This patch invokes "copyalltostore" also in "_commitcontext", because "_commitcontext" expects that largefiles in the working directory are copied into store area after "commitctx". In this case, the working directory is used as a kind of temporary area to write largefiles out, even though converted revisions are committed via "commitctx" (without updating normal files).
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Sat, 08 Nov 2014 00:48:41 +0900
parents 0ec2e124fcc0
children b5e2128ce9e6
comparison
equal deleted inserted replaced
23275:fae708cb32d1 23276:4be754832829
609 M large2 609 M large2
610 610
611 #endif 611 #endif
612 612
613 $ cd .. 613 $ cd ..
614
615 Test that "hg convert" avoids copying largefiles from the working
616 directory into store, because "hg convert" doesn't update largefiles
617 in the working directory (removing files under ".cache/largefiles"
618 forces "hg convert" to copy corresponding largefiles)
619
620 $ cat >> $HGRCPATH <<EOF
621 > [extensions]
622 > convert =
623 > EOF
624
625 $ rm $TESTTMP/.cache/largefiles/6a4f36d4075fbe0f30ec1d26ca44e63c05903671
626 $ hg convert -q repo repo.converted