Show More
@@ -49,6 +49,9 b' when pulling is thus to use --update, wh' | |||
|
49 | 49 | copy to the latest pulled revision (and thereby downloading any new |
|
50 | 50 | largefiles). |
|
51 | 51 | |
|
52 | If you want to pull largefiles you don't need for update yet, then | |
|
53 | you can use the `lfpull` command. | |
|
54 | ||
|
52 | 55 | If you just want to ensure that you will have the largefiles needed to |
|
53 | 56 | merge or rebase with new heads that you are pulling, then you can pull |
|
54 | 57 | with `--cache-largefiles` flag to pre-emptively download any largefiles |
@@ -530,6 +530,41 b' def _updatelfile(repo, lfdirstate, lfile' | |||
|
530 | 530 | lfdirstate.drop(lfile) |
|
531 | 531 | return ret |
|
532 | 532 | |
|
533 | def lfpull(ui, repo, source="default", **opts): | |
|
534 | """pull largefiles for the specified revisions from the specified source | |
|
535 | ||
|
536 | Pull largefiles that are referenced from local changesets but missing | |
|
537 | locally, pulling from a remote repository to the local cache. | |
|
538 | ||
|
539 | If SOURCE is omitted, the 'default' path will be used. | |
|
540 | See :hg:`help urls` for more information. | |
|
541 | ||
|
542 | .. container:: verbose | |
|
543 | ||
|
544 | Some examples: | |
|
545 | ||
|
546 | - pull largefiles for all branch heads:: | |
|
547 | ||
|
548 | hg lfpull -r "head() and not closed()" | |
|
549 | ||
|
550 | - pull largefiles on the default branch:: | |
|
551 | ||
|
552 | hg lfpull -r "branch(default)" | |
|
553 | """ | |
|
554 | repo.lfpullsource = source | |
|
555 | ||
|
556 | revs = opts.get('rev', []) | |
|
557 | if not revs: | |
|
558 | raise util.Abort(_('no revisions specified')) | |
|
559 | revs = scmutil.revrange(repo, revs) | |
|
560 | ||
|
561 | numcached = 0 | |
|
562 | for rev in revs: | |
|
563 | ui.note(_('pulling largefiles for revision %s\n') % rev) | |
|
564 | (cached, missing) = cachelfiles(ui, repo, rev) | |
|
565 | numcached += len(cached) | |
|
566 | ui.status(_("%d largefiles cached\n") % numcached) | |
|
567 | ||
|
533 | 568 | # -- hg commands declarations ------------------------------------------------ |
|
534 | 569 | |
|
535 | 570 | cmdtable = { |
@@ -542,6 +577,11 b' cmdtable = {' | |||
|
542 | 577 | _('convert from a largefiles repo to a normal repo')), |
|
543 | 578 | ], |
|
544 | 579 | _('hg lfconvert SOURCE DEST [FILE ...]')), |
|
580 | 'lfpull': (lfpull, | |
|
581 | [('r', 'rev', [], _('pull largefiles for these revisions')) | |
|
582 | ] + commands.remoteopts, | |
|
583 | _('-r REV... [-e CMD] [--remotecmd CMD] [SOURCE]') | |
|
584 | ), | |
|
545 | 585 | } |
|
546 | 586 | |
|
547 | 587 | commands.inferrepo += " lfconvert" |
@@ -912,6 +912,23 b" downloaded from 'default' instead of 'de" | |||
|
912 | 912 | added 6 changesets with 16 changes to 8 files |
|
913 | 913 | (run 'hg update' to get a working copy) |
|
914 | 914 | 6 additional largefiles cached |
|
915 | ||
|
916 | lfpull | |
|
917 | ||
|
918 | $ hg lfpull -r : --config largefiles.usercache=usercache-lfpull | |
|
919 | 2 largefiles cached | |
|
920 | $ hg lfpull -v -r 4+2 --config largefiles.usercache=usercache-lfpull | |
|
921 | pulling largefiles for revision 4 | |
|
922 | found eb7338044dc27f9bc59b8dd5a246b065ead7a9c4 in store | |
|
923 | found eb7338044dc27f9bc59b8dd5a246b065ead7a9c4 in store | |
|
924 | pulling largefiles for revision 2 | |
|
925 | found eb7338044dc27f9bc59b8dd5a246b065ead7a9c4 in store | |
|
926 | 0 largefiles cached | |
|
927 | ||
|
928 | $ ls usercache-lfpull/* | sort | |
|
929 | usercache-lfpull/1deebade43c8c498a3c8daddac0244dc55d1331d | |
|
930 | usercache-lfpull/4669e532d5b2c093a78eca010077e708a071bb64 | |
|
931 | ||
|
915 | 932 | $ cd .. |
|
916 | 933 | |
|
917 | 934 | Rebasing between two repositories does not revert largefiles to old |
General Comments 0
You need to be logged in to leave comments.
Login now