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

Re: fatal: git-write-tree: not able to write tree

From
Junio C Hamano <junkio@cox.net>
Date
Apr 28, 2006, 09:01 UTC
Message-ID
<7v7j5adqf0.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<CFF307C98FEABE47A452B27C06B85BB64A432C@hdsmsx411.amr.corp.intel.com>

"Brown, Len" <len.brown@intel.com> writes about the command "git am -3 --resolved", after hand merging _but_ without update-index to actually mark the paths that have been resolved, results in "write-tree" failure.

Show 8 quoted lines
> I'm okay with git being conservative and not doing the update-index
> for me.  Perhaps the thing to do here is to make the failure message
> more useful?
>
> "fatal: git-write-tree: not able to write tree"
>
> everything after "fatal" here is effectively a string
> of random characters to the hapless user.
That's very true.  Perhaps something like this?

-- >8 -- git-am --resolved: more usable error message.

After doing the hard work of hand resolving the conflicts in the working tree, if the user forgets to run update-index to mark the paths that have been resolved, the command gave an unfriendly "fatal: git-write-tree: not able to write tree" error message. Catch the situation early and give more meaningful message and suggestion.

Noticed and suggested by Len Brown.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
diff --git a/git-am.sh b/git-am.sh
index eab4aa8..872145b 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -376,6 +376,13 @@ do
 			echo "No changes - did you forget update-index?"
 			stop_here $this
 		fi
+		unmerged=$(git-ls-files -u)
+		if test -n "$unmerged"
+		then
+			echo "You still have unmerged paths in your index"
+			echo "did you forget update-index?"
+			stop_here $this
+		fi
 		apply_status=0
 		;;
 	esac
Previous: Brown, Len
Message 2 of 2 in “RE: fatal: git-write-tree: not able to write tree”
  1. Brown, LenApr 28, 2006
  2. Junio C HamanoApr 28, 2006

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.