# [PATCH] recursive-merge: Don't print a stack trace when read-tree fails.

1 messages from 2005-09-25 to 2005-09-25. Participants: Fredrik Kuivinen.
Thread: https://gitlist.dev/t/1941

## Fredrik Kuivinen, 2005-09-25 14:48

Subject: [PATCH] recursive-merge: Don't print a stack trace when read-tree fails.
Message-ID: <20050925144824.GB20527@c165.ib.student.liu.se>
URL: https://gitlist.dev/e/20050925144824.GB20527%40c165.ib.student.liu.se

```
If the working tree is dirty read-tree will fail, and we don't want an
ugly stack trace in that case. Also make sure we don't print stack
traces when we use 'die'.

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>


---

 git-merge-recursive.py |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

5f47cf871d07317d42470f5fa261257e74b57f0e
diff --git a/git-merge-recursive.py b/git-merge-recursive.py
--- a/git-merge-recursive.py
+++ b/git-merge-recursive.py
@@ -149,7 +149,10 @@ def mergeTrees(head, merge, common, bran
     else:
         updateArg = '-u'
 
-    runProgram(['git-read-tree', updateArg, '-m', common, head, merge])
+    [out, code] = runProgram(['git-read-tree', updateArg, '-m', common, head, merge], returnCode = True)
+    if code != 0:
+        die('git-read-tree:', out)
+
     cleanMerge = True
 
     [tree, code] = runProgram('git-write-tree', returnCode=True)
@@ -430,8 +433,11 @@ try:
 
     print ''
 except:
-    traceback.print_exc(None, sys.stderr)
-    sys.exit(2)
+    if isinstance(sys.exc_info()[1], SystemExit):
+        raise
+    else:
+        traceback.print_exc(None, sys.stderr)
+        sys.exit(2)
 
 if clean:
     sys.exit(0)

```
