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

[StGIT PATCH 4/6] Simplify merge_recursive

From
Karl Hasselström <kha@treskal.com>
Date
Aug 26, 2007, 20:42 UTC
Message-ID
<20070826204254.16700.14590.stgit@yoghurt>
In-Reply-To
<20070826203745.16700.5655.stgit@yoghurt>
From: David Kågedal <davidk@lysator.liu.se>

Listing the unmerged files is unnecessary, since the information isn't really used anyway. Just note if the merge failed or succeeded.

Signed-off-by: David Kågedal <davidk@lysator.liu.se>
Signed-off-by: Karl Hasselström <kha@treskal.com>
---
 stgit/git.py |   32 +-------------------------------
 1 files changed, 1 insertions(+), 31 deletions(-)
diff --git a/stgit/git.py b/stgit/git.py
index 82cb211..173cc4b 100644
--- a/stgit/git.py
+++ b/stgit/git.py
@@ -642,40 +642,10 @@ def merge_recursive(base, head1, head2):
     """
     refresh_index()
 
-    err_output = None
-    # this operation tracks renames but it is slower (used in
-    # general when pushing or picking patches)
     try:
         # discard output to mask the verbose prints of the tool
         GRun('git-merge-recursive', base, '--', head1, head2).discard_output()
-    except GitRunException, ex:
-        err_output = str(ex)
-        pass
-
-    # check the index for unmerged entries
-    files = {}
-
-    for line in GRun('git-ls-files', '--unmerged', '--stage', '-z'
-                     ).raw_output().split('\0'):
-        if not line:
-            continue
-
-        mode, hash, stage, path = stages_re.findall(line)[0]
-
-        if not path in files:
-            files[path] = {}
-            files[path]['1'] = ('', '')
-            files[path]['2'] = ('', '')
-            files[path]['3'] = ('', '')
-
-        files[path][stage] = (mode, hash)
-
-    if err_output and not files:
-        # if no unmerged files, there was probably a different type of
-        # error and we have to abort the merge
-        raise GitException, err_output
-
-    if files:
+    except GitRunException:
         raise GitException, 'GIT index merging failed (possible conflicts)'
 
 def merge(base, head1, head2):
Previous: Karl HasselströmNext: Karl Hasselström
Message 5 of 7 in “David's conflict series using my subprocess stuff”
  1. 0/6 David's conflict series using my subprocess stuffKarl Hasselström, Aug 26, 2007
  2. 1/6 Split git.merge into two functionsKarl Hasselström, Aug 26, 2007
  3. 2/6 Leave working dir and index alone after failed (conflicting) pushKarl Hasselström, Aug 26, 2007
  4. 3/6 Added a test case to check what happens when push finds a conflictKarl Hasselström, Aug 26, 2007
  5. 4/6 Simplify merge_recursiveKarl Hasselström, Aug 26, 2007
  6. 5/6 Use the output from merge-recursive to list conflictsKarl Hasselström, Aug 26, 2007
  7. 6/6 Better error message if merge failsKarl Hasselström, Aug 26, 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.