X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/4ec677417c8bfb4d30b2cd7482c5ceca9b542fc8..737b7d8ea727d6c473be12fc7478df613391da08:/stgit/commands/clone.py diff --git a/stgit/commands/clone.py b/stgit/commands/clone.py index 15139c8..9e39c54 100644 --- a/stgit/commands/clone.py +++ b/stgit/commands/clone.py @@ -1,5 +1,5 @@ __copyright__ = """ -Copyright (C) 2005, Catalin Marinas +Copyright (C) 2009, Catalin Marinas This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as @@ -15,22 +15,31 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ -import sys, os -from optparse import OptionParser, make_option +import os +from stgit.commands import common +from stgit.lib import git, stack +from stgit import argparse +from stgit.out import out -from stgit.commands.common import * -from stgit.utils import * -from stgit import stack, git +help = 'Make a local clone of a remote repository' +kind = 'repo' +usage = [' '] +description = """ +Clone a git repository into the local directory (using +linkstg:clone[]) and initialise the local branch "master". +This operation is for example suitable to start working using the +"tracking branch" workflow (see link:stg[1]). Other means to setup +an StGit stack are linkstg:init[] and the '--create' and '--clone' +commands of linkstg:branch[]. -help = 'make a local clone of a remote repository' -usage = """%prog [options] - -Clone a GIT into the local and initialise the -patch stack.""" +The target directory will be created by this command, and must +not already exist.""" +args = [argparse.repo, argparse.dir] options = [] +directory = common.DirectoryAnywhere(needs_current_series = False, log = False) def func(parser, options, args): """Clone the into the local and initialises the @@ -43,17 +52,10 @@ def func(parser, options, args): local_dir = args[1] if os.path.exists(local_dir): - raise CmdException, '"%s" exists. Remove it first' % local_dir - - print 'Cloning "%s" into "%s"...' % (repository, local_dir) + raise common.CmdException('"%s" exists. Remove it first' % local_dir) git.clone(repository, local_dir) os.chdir(local_dir) - git.checkout(tree_id = 'HEAD') - - # be sure to forget any cached value for .git, since we're going - # to work on a brand new repository - basedir.clear_cache() - stack.Series().init() - - print 'done' + directory = common.DirectoryHasRepositoryLib() + directory.setup() + stack.Stack.initialise(directory.repository)