Just to clarify, the command you ran was the raw commit command... $ git commit -m "message" and not some greater script that surrounds a commit with other logic including stashing ?
And also, did those "need merge" errors immediately appear running that command, or did they show later after running another command like `git pull`?
In the meantime, just guessing this is related...
https://stackoverflow.com/questions/5483213/fatal-git-write-tree-error-build... "It is unfortunate that git stash does not work with merge conflicts. "
as is this... https://www.spinics.net/lists/git/msg195457.html
In essence, if there are merge conflicts - i.e. `git merge` did not complete and is in a halfway state waiting for the conflicts to be resolved, the don't stash. Stashing a halfway state seems a bad thing to do.
To reverse out of such a half-way state, a `git merge --abort` should make everything well. However its not always easy to make that connection since `git merge --abort` is not symmetrical with `git pull`.
btw, I'd suggest you avoid `git pull` since it is over-helpful and conflates underlying git concepts which undermines your understanding to leave you floundering when things go wrong. Instead split `git pull` into its components. Assuming you are active on the "Cog" branch, you would instead do... $ git fetch origin $ git merge origin/Cog
Then if errors show up during `git merge` its easier to remember that `git merge --abort` reverts things. Also a nice thing about fetching and merging separately is that it gives you the chance to examine what you’ve fetched before deciding what to do next. For example, optionally between fetchign and merging you can do...
$ git diff Cog origin/Cog
Here are some further viewpoints on avoiding `git pull`... https://felipec.wordpress.com/2014/05/27/is-git-pull-broken/ https://adamcod.es/2014/12/10/git-pull-correct-workflow.html
cheers -ben
On 22 December 2017 at 14:48, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi git mavens,
I'm screwed. Had a perfectly fine repository that declared itself at
the tip of Cog, I committed and then suddenly
[Cog 59455f2] CogVM source as per VMMaker.oscog-eem.2302 80 files changed, 4207 insertions(+), 2489 deletions(-) nsspur64src/vm/cogit.h: needs merge nsspur64src/vm/cogitX64SysV.c: needs merge nsspur64src/vm/cogitX64WIN64.c: needs merge nsspur64src/vm/cointerp.c: needs merge nsspur64src/vm/cointerp.h: needs merge nsspur64src/vm/gcc3x-cointerp.c: needs merge nsspursrc/vm/cogit.h: needs merge nsspursrc/vm/cointerp.c: needs merge nsspursrc/vm/cointerp.h: needs merge nsspursrc/vm/gcc3x-cointerp.c: needs merge nsspurstack64src/vm/gcc3x-interp.c: needs merge nsspurstack64src/vm/interp.c: needs merge nsspurstacksrc/vm/gcc3x-interp.c: needs merge nsspurstacksrc/vm/interp.c: needs merge spur64src/vm/cogit.h: needs merge spur64src/vm/cogitX64SysV.c: needs merge spur64src/vm/cogitX64WIN64.c: needs merge spur64src/vm/cointerp.c: needs merge spur64src/vm/cointerp.h: needs merge spur64src/vm/gcc3x-cointerp.c: needs merge spurlowcode64src/vm/cogit.h: needs merge spurlowcode64src/vm/cogitX64SysV.c: needs merge spurlowcode64src/vm/cogitX64WIN64.c: needs merge spurlowcode64src/vm/cointerp.c: needs merge spurlowcode64src/vm/cointerp.h: needs merge spurlowcode64src/vm/gcc3x-cointerp.c: needs merge spurlowcodesrc/vm/cogit.h: needs merge spurlowcodesrc/vm/cointerp.c: needs merge spurlowcodesrc/vm/cointerp.h: needs merge spurlowcodesrc/vm/gcc3x-cointerp.c: needs merge spurlowcodestack64src/vm/gcc3x-interp.c: needs merge spurlowcodestack64src/vm/interp.c: needs merge spurlowcodestacksrc/vm/gcc3x-interp.c: needs merge spurlowcodestacksrc/vm/interp.c: needs merge spursista64src/vm/cogit.h: needs merge spursista64src/vm/cogitX64SysV.c: needs merge spursista64src/vm/cogitX64WIN64.c: needs merge spursista64src/vm/cointerp.c: needs merge spursista64src/vm/cointerp.h: needs merge spursista64src/vm/gcc3x-cointerp.c: needs merge spursistasrc/vm/cogit.h: needs merge spursistasrc/vm/cointerp.c: needs merge spursistasrc/vm/cointerp.h: needs merge spursistasrc/vm/gcc3x-cointerp.c: needs merge spursrc/vm/cogit.h: needs merge spursrc/vm/cointerp.c: needs merge spursrc/vm/cointerp.h: needs merge spursrc/vm/gcc3x-cointerp.c: needs merge spurstack64src/vm/gcc3x-interp.c: needs merge spurstack64src/vm/interp.c: needs merge spurstacksrc/vm/gcc3x-interp.c: needs merge spurstacksrc/vm/interp.c: needs merge src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c: needs merge src/plugins/SqueakFFIPrims/IA32FFIPlugin.c: needs merge src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c: needs merge src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c: needs merge src/vm/cogit.h: needs merge src/vm/cointerp.c: needs merge src/vm/cointerp.h: needs merge src/vm/cointerpmt.c: needs merge src/vm/cointerpmt.h: needs merge src/vm/gcc3x-cointerp.c: needs merge src/vm/gcc3x-cointerpmt.c: needs merge stacksrc/vm/gcc3x-interp.c: needs merge stacksrc/vm/interp.c: needs merge nsspur64src/vm/cogit.h: needs merge nsspur64src/vm/cogitX64SysV.c: needs merge nsspur64src/vm/cogitX64WIN64.c: needs merge nsspur64src/vm/cointerp.c: needs merge nsspur64src/vm/cointerp.h: needs merge nsspur64src/vm/gcc3x-cointerp.c: needs merge nsspursrc/vm/cogit.h: needs merge nsspursrc/vm/cointerp.c: needs merge nsspursrc/vm/cointerp.h: needs merge nsspursrc/vm/gcc3x-cointerp.c: needs merge nsspurstack64src/vm/gcc3x-interp.c: needs merge nsspurstack64src/vm/interp.c: needs merge nsspurstacksrc/vm/gcc3x-interp.c: needs merge nsspurstacksrc/vm/interp.c: needs merge spur64src/vm/cogit.h: needs merge spur64src/vm/cogitX64SysV.c: needs merge spur64src/vm/cogitX64WIN64.c: needs merge spur64src/vm/cointerp.c: needs merge spur64src/vm/cointerp.h: needs merge spur64src/vm/gcc3x-cointerp.c: needs merge spurlowcode64src/vm/cogit.h: needs merge spurlowcode64src/vm/cogitX64SysV.c: needs merge spurlowcode64src/vm/cogitX64WIN64.c: needs merge spurlowcode64src/vm/cointerp.c: needs merge spurlowcode64src/vm/cointerp.h: needs merge spurlowcode64src/vm/gcc3x-cointerp.c: needs merge spurlowcodesrc/vm/cogit.h: needs merge spurlowcodesrc/vm/cointerp.c: needs merge spurlowcodesrc/vm/cointerp.h: needs merge spurlowcodesrc/vm/gcc3x-cointerp.c: needs merge spurlowcodestack64src/vm/gcc3x-interp.c: needs merge spurlowcodestack64src/vm/interp.c: needs merge spurlowcodestacksrc/vm/gcc3x-interp.c: needs merge spurlowcodestacksrc/vm/interp.c: needs merge spursista64src/vm/cogit.h: needs merge spursista64src/vm/cogitX64SysV.c: needs merge spursista64src/vm/cogitX64WIN64.c: needs merge spursista64src/vm/cointerp.c: needs merge spursista64src/vm/cointerp.h: needs merge spursista64src/vm/gcc3x-cointerp.c: needs merge spursistasrc/vm/cogit.h: needs merge spursistasrc/vm/cointerp.c: needs merge spursistasrc/vm/cointerp.h: needs merge spursistasrc/vm/gcc3x-cointerp.c: needs merge spursrc/vm/cogit.h: needs merge spursrc/vm/cointerp.c: needs merge spursrc/vm/cointerp.h: needs merge spursrc/vm/gcc3x-cointerp.c: needs merge spurstack64src/vm/gcc3x-interp.c: needs merge spurstack64src/vm/interp.c: needs merge spurstacksrc/vm/gcc3x-interp.c: needs merge spurstacksrc/vm/interp.c: needs merge src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c: needs merge src/plugins/SqueakFFIPrims/IA32FFIPlugin.c: needs merge src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c: needs merge src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c: needs merge src/vm/cogit.h: needs merge src/vm/cointerp.c: needs merge src/vm/cointerp.h: needs merge src/vm/cointerpmt.c: needs merge src/vm/cointerpmt.h: needs merge src/vm/gcc3x-cointerp.c: needs merge src/vm/gcc3x-cointerpmt.c: needs merge stacksrc/vm/gcc3x-interp.c: needs merge stacksrc/vm/interp.c: needs merge nsspur64src/vm/cogit.h: unmerged (ed6bf51d9ab7c6f5927f69e5661f22 ad5cdf93d8) nsspur64src/vm/cogit.h: unmerged (6b84b3adf311e7e9655802800cf3c6 6cca5ae590) nsspur64src/vm/cogit.h: unmerged (8aeef63d69b098a39eea676e8707de 91ff7d4097) nsspur64src/vm/cogitX64SysV.c: unmerged (197c00a9998d01982af526043c1548 0549118225) nsspur64src/vm/cogitX64SysV.c: unmerged (41adeb695b6a1d13c802967b1b2a08 fcb48a7934) nsspur64src/vm/cogitX64SysV.c: unmerged (b61a13f47897197e7b58aa9c147ba8 7eb5cdc8f1) nsspur64src/vm/cogitX64WIN64.c: unmerged (ff6c102e326c6f85a5129ab03ee09b 1f24b33304) nsspur64src/vm/cogitX64WIN64.c: unmerged (2cb03481942943a106feef898e2a99 dd7e316a28) nsspur64src/vm/cogitX64WIN64.c: unmerged (ec4b0edb7cd243b040a5982f0a374c 3fb3862f77) nsspur64src/vm/cointerp.c: unmerged (56db95c989c194930e8d7eeeebebb3 72ec63258d) ... fatal: git-write-tree: error building trees Cannot save the current index state /Users/eliot/oscogvm /Users/eliot/oscogvm nsspur64src/vm/cogit.h: needs merge nsspur64src/vm/cogitX64SysV.c: needs merge nsspur64src/vm/cogitX64WIN64.c: needs merge nsspur64src/vm/cointerp.c: needs merge nsspur64src/vm/cointerp.h: needs merge nsspur64src/vm/gcc3x-cointerp.c: needs merge nsspursrc/vm/cogit.h: needs merge nsspursrc/vm/cointerp.c: needs merge nsspursrc/vm/cointerp.h: needs merge nsspursrc/vm/gcc3x-cointerp.c: needs merge nsspurstack64src/vm/gcc3x-interp.c: needs merge nsspurstack64src/vm/interp.c: needs merge nsspurstacksrc/vm/gcc3x-interp.c: needs merge nsspurstacksrc/vm/interp.c: needs merge spur64src/vm/cogit.h: needs merge spur64src/vm/cogitX64SysV.c: needs merge spur64src/vm/cogitX64WIN64.c: needs merge spur64src/vm/cointerp.c: needs merge spur64src/vm/cointerp.h: needs merge spur64src/vm/gcc3x-cointerp.c: needs merge spurlowcode64src/vm/cogit.h: needs merge spurlowcode64src/vm/cogitX64SysV.c: needs merge spurlowcode64src/vm/cogitX64WIN64.c: needs merge spurlowcode64src/vm/cointerp.c: needs merge spurlowcode64src/vm/cointerp.h: needs merge spurlowcode64src/vm/gcc3x-cointerp.c: needs merge spurlowcodesrc/vm/cogit.h: needs merge spurlowcodesrc/vm/cointerp.c: needs merge spurlowcodesrc/vm/cointerp.h: needs merge spurlowcodesrc/vm/gcc3x-cointerp.c: needs merge spurlowcodestack64src/vm/gcc3x-interp.c: needs merge spurlowcodestack64src/vm/interp.c: needs merge spurlowcodestacksrc/vm/gcc3x-interp.c: needs merge spurlowcodestacksrc/vm/interp.c: needs merge spursista64src/vm/cogit.h: needs merge spursista64src/vm/cogitX64SysV.c: needs merge spursista64src/vm/cogitX64WIN64.c: needs merge spursista64src/vm/cointerp.c: needs merge spursista64src/vm/cointerp.h: needs merge spursista64src/vm/gcc3x-cointerp.c: needs merge spursistasrc/vm/cogit.h: needs merge spursistasrc/vm/cointerp.c: needs merge spursistasrc/vm/cointerp.h: needs merge spursistasrc/vm/gcc3x-cointerp.c: needs merge spursrc/vm/cogit.h: needs merge spursrc/vm/cointerp.c: needs merge spursrc/vm/cointerp.h: needs merge spursrc/vm/gcc3x-cointerp.c: needs merge spurstack64src/vm/gcc3x-interp.c: needs merge spurstack64src/vm/interp.c: needs merge spurstacksrc/vm/gcc3x-interp.c: needs merge spurstacksrc/vm/interp.c: needs merge src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c: needs merge src/plugins/SqueakFFIPrims/IA32FFIPlugin.c: needs merge src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c: needs merge src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c: needs merge src/vm/cogit.h: needs merge src/vm/cointerp.c: needs merge src/vm/cointerp.h: needs merge src/vm/cointerpmt.c: needs merge src/vm/cointerpmt.h: needs merge src/vm/gcc3x-cointerp.c: needs merge src/vm/gcc3x-cointerpmt.c: needs merge stacksrc/vm/gcc3x-interp.c: needs merge stacksrc/vm/interp.c: needs merge unable to refresh index _,,,^..^,,,_ best, Eliot