git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[StGit PATCH 4/9] Convert 'clone' to the use stgit.lib

From
CMCatalin Marinas <catalin.marinas@arm.com>
Date
Apr 28, 2009, 15:09 UTC
Message-ID
<20090428150957.27261.83658.stgit@pc1117.cambridge.arm.com>
In-Reply-To
<20090428150742.27261.19620.stgit@pc1117.cambridge.arm.com>
The patch also adds the stgit.lib.git.clone() function.
Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
---
 stgit/commands/clone.py |   30 +++++++++++++-----------------
 stgit/lib/git.py        |    4 ++++
 2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/stgit/commands/clone.py b/stgit/commands/clone.py
index 7fe9c35..369c8a9 100644
--- a/stgit/commands/clone.py
+++ b/stgit/commands/clone.py
@@ -1,5 +1,5 @@
 __copyright__ = """
-Copyright (C) 2005, Catalin Marinas <catalin.marinas@gmail.com>
+Copyright (C) 2009, Catalin Marinas <catalin.marinas@gmail.com>
 
 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,10 +15,11 @@ 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 stgit.commands.common import *
-from stgit.utils import *
-from stgit import argparse, stack, git
+import os
+from stgit.commands import common
+from stgit.lib import git, stack
+from stgit import argparse
+from stgit.out import out
 
 help = 'Make a local clone of a remote repository'
 kind = 'repo'
@@ -38,7 +39,7 @@ not already exist."""
 args = [argparse.repo, argparse.dir]
 options = []
 
-directory = DirectoryAnywhere(needs_current_series = False, log = False)
+directory = common.DirectoryAnywhere(needs_current_series = False, log = False)
 
 def func(parser, options, args):
     """Clone the <repository> into the local <dir> and initialises the
@@ -51,17 +52,12 @@ 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
 
+    out.start('Cloning "%s" into "%s"' % (repository, 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)
+    out.done()
diff --git a/stgit/lib/git.py b/stgit/lib/git.py
index 9c530c7..6f2c977 100644
--- a/stgit/lib/git.py
+++ b/stgit/lib/git.py
@@ -933,3 +933,7 @@ def diffstat(diff):
     """Return the diffstat of the supplied diff."""
     return run.Run('git', 'apply', '--stat', '--summary'
                    ).raw_input(diff).raw_output()
+
+def clone(remote, local):
+    """Clone a remote repository using 'git clone'."""
+    run.Run('git', 'clone', remote, local).run()
Previous: Karl HasselströmNext: Karl Hasselström
Message 8 of 27 in “Various StGit updates”
  1. 0/9 Various StGit updatesCatalin Marinas, Apr 28, 2009
  2. 1/9 Show "Pushing <patch>...done" when pushing a patchCatalin Marinas, Apr 28, 2009
  3. Karl HasselströmApr 29, 2009
  4. 2/9 Show some progress information when checking for upstream merges.Catalin Marinas, Apr 28, 2009
  5. Karl HasselströmApr 29, 2009
  6. 3/9 Do not sleep after the last patch sent by e-mailCatalin Marinas, Apr 28, 2009
  7. Karl HasselströmApr 29, 2009
  8. 4/9 Convert 'clone' to the use stgit.libCatalin Marinas, Apr 28, 2009
  9. Karl HasselströmApr 29, 2009
  10. Catalin MarinasMay 13, 2009
  11. 5/9 Convert 'hide' to the lib infrastructureCatalin Marinas, Apr 28, 2009
  12. Karl HasselströmApr 29, 2009
  13. Catalin MarinasMay 13, 2009
  14. 6/9 Convert 'unhide' to the lib infrastructureCatalin Marinas, Apr 28, 2009
  15. Karl HasselströmApr 29, 2009
  16. 7/9 Reinstate the --annotate option for refreshCatalin Marinas, Apr 28, 2009
  17. Karl HasselströmApr 29, 2009
  18. 8/9 Add the log --clear optionCatalin Marinas, Apr 28, 2009
  19. Karl HasselströmApr 29, 2009
  20. 9/9 Use the default git colouring scheme rather than specific scriptsCatalin Marinas, Apr 28, 2009
  21. Karl HasselströmApr 29, 2009
  22. Samuel TardieuApr 29, 2009
  23. Samuel TardieuApr 29, 2009
  24. Karl HasselströmApr 29, 2009
  25. Shinya KuribayashiMay 4, 2009
  26. Catalin MarinasMay 29, 2009
  27. Shinya KuribayashiMay 30, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.