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

[StGIT PATCH] Better diagnostic for wrong branch configuration.

From
Yann Dirson <ydirson@altern.org>
Date
Oct 5, 2007, 20:44 UTC
Message-ID
<20071005204452.30902.60246.stgit@gandelf.nowhere.earth>

If the branch.*.merge parameter does not name a valid remote head, stgit would not rebase after a fetch, and would write instead 'Rebasing to "None" ... done'.

This patch makes this situation an error and tells the user what to fix in his repo configuration. ---

 stgit/commands/pull.py |    9 ++++++++-
 stgit/git.py           |    5 ++++-
 2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/stgit/commands/pull.py b/stgit/commands/pull.py
index 052ea2b..070db99 100644
--- a/stgit/commands/pull.py
+++ b/stgit/commands/pull.py
@@ -90,7 +90,14 @@ def func(parser, options, args):
     elif policy == 'fetch-rebase':
         out.info('Fetching from "%s"' % repository)
         git.fetch(repository)
-        rebase(git.fetch_head())
+        try:
+            target = git.fetch_head()
+        except git.GitException:
+            out.error('Could not find the remote head to rebase onto, pushing any patches back...')
+            post_rebase(applied, False, False)
+            raise CmdException, 'Could not find the remote head to rebase onto - fix branch.%s.merge in .git/config' % crt_series.get_name()
+
+        rebase(target)
     elif policy == 'rebase':
         rebase(crt_series.get_parent_branch())
 
diff --git a/stgit/git.py b/stgit/git.py
index 9e0f771..a0493bc 100644
--- a/stgit/git.py
+++ b/stgit/git.py
@@ -1003,11 +1003,14 @@ def fetch_head():
         m = re.match('^([^\t]*)\t\t', line)
         if m:
             if fetch_head:
-                raise GitException, "StGit does not support multiple FETCH_HEAD"
+                raise GitException, 'StGit does not support multiple FETCH_HEAD'
             else:
                 fetch_head=m.group(1)
     stream.close()
 
+    if not fetch_head:
+        raise GitException, 'No for-merge remote head found in FETCH_HEAD'
+
     # here we are sure to have a single fetch_head
     return fetch_head
 
Next: Karl Hasselström
Message 1 of 6 in “Better diagnostic for wrong branch configuration.”
  1. Better diagnostic for wrong branch configuration.Yann Dirson, Oct 5, 2007
  2. Karl HasselströmOct 7, 2007
  3. Yann DirsonOct 7, 2007
  4. Karl HasselströmOct 7, 2007
  5. Catalin MarinasOct 7, 2007
  6. Catalin MarinasOct 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.