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

[StGit PATCH 4/6] Refactor crt_series creation

From
Karl Hasselström <kha@treskal.com>
Date
Oct 8, 2007, 08:55 UTC
Message-ID
<20071008085529.9734.42383.stgit@yoghurt>
In-Reply-To
<20071008085430.9734.75797.stgit@yoghurt>

Instead of hard-coding in main.py which commands do and don't need a current series, let them speak for themselves.

Signed-off-by: Karl Hasselström <kha@treskal.com>
---
 stgit/commands/clone.py  |    2 +-
 stgit/commands/common.py |    2 ++
 stgit/main.py            |    5 ++---
 3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/stgit/commands/clone.py b/stgit/commands/clone.py
index a150010..c3b0bbe 100644
--- a/stgit/commands/clone.py
+++ b/stgit/commands/clone.py
@@ -29,7 +29,7 @@ usage = """%prog [options] <repository> <dir>
 Clone a GIT <repository> into the local <dir> and initialise the
 patch stack."""
 
-directory = DirectoryAnywhere()
+directory = DirectoryAnywhere(needs_current_series = False)
 options = []
 
 
diff --git a/stgit/commands/common.py b/stgit/commands/common.py
index 27ef465..652039f 100644
--- a/stgit/commands/common.py
+++ b/stgit/commands/common.py
@@ -497,6 +497,8 @@ class DirectoryException(StgException):
     pass
 
 class _Directory(object):
+    def __init__(self, needs_current_series = True):
+        self.needs_current_series =  needs_current_series
     @readonly_constant_property
     def git_dir(self):
         try:
diff --git a/stgit/main.py b/stgit/main.py
index 8e00217..db327f1 100644
--- a/stgit/main.py
+++ b/stgit/main.py
@@ -271,9 +271,8 @@ def main():
         directory.setup()
         config_setup()
 
-        # 'clone' doesn't expect an already initialised GIT tree. A Series
-        # object will be created after the GIT tree is cloned
-        if cmd != 'clone':
+        # Some commands don't (always) need an initialized series.
+        if directory.needs_current_series:
             if hasattr(options, 'branch') and options.branch:
                 command.crt_series = Series(options.branch)
             else:
Previous: Karl HasselströmNext: Karl Hasselström
Message 5 of 12 in “Survive capital punishment”
  1. 0/6 Survive capital punishmentKarl Hasselström, Oct 8, 2007
  2. 1/6 Allow caller to customize title of error/warning messageKarl Hasselström, Oct 8, 2007
  3. 2/6 Use our nice message printout wrapping systemKarl Hasselström, Oct 8, 2007
  4. 3/6 Properly detect that HEAD is detachedKarl Hasselström, Oct 8, 2007
  5. 4/6 Refactor crt_series creationKarl Hasselström, Oct 8, 2007
  6. 5/6 Don't have a global crt_series in stgit.commans.commonKarl Hasselström, Oct 8, 2007
  7. 6/6 Let some commands work with detached HEADKarl Hasselström, Oct 8, 2007
  8. Karl HasselströmOct 8, 2007
  9. New test: "stg diff"Karl Hasselström, Oct 9, 2007
  10. Karl HasselströmOct 9, 2007
  11. Karl HasselströmOct 8, 2007
  12. Karl HasselströmOct 8, 2007

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.