# HG changeset patch # User Mark Reinhold # Date 1196398082 28800 # Node ID 97152eaa30faa12bcc6830ed07847ea7f97abb34 # Parent de0d2b10ed66257b0ce606ed04d9de1c74c58fcd fpull -p option for partial forests diff -r de0d2b10ed66 -r 97152eaa30fa forest.py --- a/forest.py Tue Nov 13 16:06:48 2007 -0500 +++ b/forest.py Thu Nov 29 20:48:02 2007 -0800 @@ -996,17 +996,20 @@ try: tree.getrepo(ui) except RepoError: - # Need to clone - quiet = ui.quiet - try: - ui.quiet = True # Hack to shut up qclone's ui.status() - qclone(ui=ui, - source=srcpath, sroot=source, - dest=destpath, rpath=rpath, - opts=opts) - except util.Abort, err: - ui.warn(_("skipped: %s\n") % err) - ui.quiet = quiet + if opts['partial']: + ui.status(_("repository not previously cloned, skipping\n")) + else: + # Need to clone + quiet = ui.quiet + try: + ui.quiet = True # Hack to shut up qclone's ui.status() + qclone(ui=ui, + source=srcpath, sroot=source, + dest=destpath, rpath=rpath, + opts=opts) + except util.Abort, err: + ui.warn(_("skipped: %s\n") % err) + ui.quiet = quiet return try: commands.pull(ui, tree.getrepo(ui), srcpath, **opts) @@ -1295,7 +1298,9 @@ _('hg foutgoing [OPTION]... [DEST]')), "^fpull" : (pull, - [walkhgopts, snapfileopts] + cmd_options(ui, 'pull', remove=('f',)), + [('p', 'partial', False, + _("do not clone source repositories not previously cloned")), + walkhgopts, snapfileopts] + cmd_options(ui, 'pull', remove=('f',)), _('hg fpull [OPTION]... [SOURCE]')), "^fpush" : (push, diff -r de0d2b10ed66 -r 97152eaa30fa test-forest --- a/test-forest Tue Nov 13 16:06:48 2007 -0500 +++ b/test-forest Thu Nov 29 20:48:02 2007 -0800 @@ -201,3 +201,15 @@ ln -s . circular/a/b ln -s .. circular/a/c hg fstatus -R circular + +echo "# fpull --partial" +hg init partial +hg init partial/a +echo "a" >partial/a/f +hg init partial/b +echo "b" >partial/b/f +hg commit --cwd partial/a -A -m init -d "0 0" +hg commit --cwd partial/b -A -m init -d "0 0" +hg fclone partial partial-clone | sed "s@\(/private\)*$HGTMP@HGTMP@g" +rm -rf partial-clone/b +hg --cwd partial-clone fpull --partial | sed "s@\(/private\)*$HGTMP@HGTMP@g" diff -r de0d2b10ed66 -r 97152eaa30fa test-forest.out --- a/test-forest.out Tue Nov 13 16:06:48 2007 -0500 +++ b/test-forest.out Thu Nov 29 20:48:02 2007 -0800 @@ -886,3 +886,27 @@ [a/a] +# fpull --partial +adding f +adding f +[.] +0 files updated, 0 files merged, 0 files removed, 0 files unresolved + +[a] +1 files updated, 0 files merged, 0 files removed, 0 files unresolved + +[b] +1 files updated, 0 files merged, 0 files removed, 0 files unresolved + +[.] +pulling from HGTMP/test-forest/partial +no changes found + +[a] +pulling from HGTMP/test-forest/partial/a +searching for changes +no changes found + +[b] +repository not previously cloned, skipping +