<div dir="ltr">Just to clarify, the command you ran was the raw commit command...<div>$ git commit -m "message"</div><div>and not some greater script that surrounds a commit with other logic including stashing ?</div><div><br></div><div>And also, did those "need merge" errors immediately appear running that command, </div><div>or did they show later after running another command like `git pull`?</div><div><br></div><div><br></div><div>In the meantime, just guessing this is related...</div><div>  <a href="https://stackoverflow.com/questions/5483213/fatal-git-write-tree-error-building-trees">https://stackoverflow.com/questions/5483213/fatal-git-write-tree-error-building-trees</a><br></div><div>"<span class="gmail-comment-copy" style="margin:0px;padding:0px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;font-size:13px;line-height:inherit;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;vertical-align:baseline;color:rgb(36,39,41)">It is unfortunate that <code style="margin:0px;padding:1px 5px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;background-color:rgb(239,240,241)">git stash</code> does not work with merge conflicts.</span><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:13px"> "</span></div><div><br></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">as is this...</font></div><div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">  <a href="https://www.spinics.net/lists/git/msg195457.html">https://www.spinics.net/lists/git/msg195457.html</a></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">In essence, if there are merge conflicts - i.e. `git merge` did not complete </font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">and is in a halfway state waiting for the conflicts to be resolved,</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">the don't stash.  Stashing a halfway state seems a bad thing to do.</font></div><div><br></div><div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">To reverse out of such a half-way state, a `git merge --abort`</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">should make everything well.  However its not always easy to make </font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">that connection </font><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif">since `git merge --abort` is not symmetrical with</span><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif"> `git pull`.  </span></div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif"><br></span></div><div>btw, I'd suggest you avoid `git pull` since it is<span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif"> over-helpful and </span><br></div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif">conflates underlying git concepts which undermines your understanding</span></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">to leave you floundering when things go wrong.  </font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">Instead split `git pull` into its components. </font><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif">Assuming you are active on the "Cog" branch,</span></div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif">you would instead do...</span></div><div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif">$ git fetch origin</span><br></div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif">$ git merge origin/Cog  </span><br></div></div><div><br></div><div>Then if errors show up during `git merge` its easier to remember that `git merge --abort`</div><div>reverts things.  Also<span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif"> a nice thing about fetching and merging separately is that </span></div><div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">it gives you the chance to examine what you’ve fetched before deciding what to do next.</font></div></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">For example,</font><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif"> optionally between fetchign and merging you can do...</span></div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif"><br></span></div><div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">$ git diff Cog origin/Cog </font></div></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"><br></font></div><div><br></div><div>Here are some further viewpoints on avoiding `git pull`...</div><div><span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif">  <a href="https://felipec.wordpress.com/2014/05/27/is-git-pull-broken/">https://felipec.wordpress.com/2014/05/27/is-git-pull-broken/</a></span><br></div></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">  <a href="https://adamcod.es/2014/12/10/git-pull-correct-workflow.html">https://adamcod.es/2014/12/10/git-pull-correct-workflow.html</a><br></font></div><div><br></div><div><div><br></div></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif">cheers -ben</font></div><div><font color="#242729" face="Arial, Helvetica Neue, Helvetica, sans-serif"> <br></font></div><div class="gmail_extra"><br><div class="gmail_quote">On 22 December 2017 at 14:48, Eliot Miranda <span dir="ltr"><<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <br><div dir="ltr">Hi git mavens,<div><br></div><div>    I'm screwed.  Had a perfectly fine repository that declared itself at the tip of Cog, I committed and then suddenly</div><div><br></div><div><div>[Cog 59455f2] CogVM source as per VMMaker.oscog-eem.2302</div><div> 80 files changed, 4207 insertions(+), 2489 deletions(-)</div><div>nsspur64src/vm/cogit.h: needs merge</div><div>nsspur64src/vm/cogitX64SysV.c: needs merge</div><div>nsspur64src/vm/cogitX64WIN64.<wbr>c: needs merge</div><div>nsspur64src/vm/cointerp.c: needs merge</div><div>nsspur64src/vm/cointerp.h: needs merge</div><div>nsspur64src/vm/gcc3x-cointerp.<wbr>c: needs merge</div><div>nsspursrc/vm/cogit.h: needs merge</div><div>nsspursrc/vm/cointerp.c: needs merge</div><div>nsspursrc/vm/cointerp.h: needs merge</div><div>nsspursrc/vm/gcc3x-cointerp.c: needs merge</div><div>nsspurstack64src/vm/gcc3x-<wbr>interp.c: needs merge</div><div>nsspurstack64src/vm/interp.c: needs merge</div><div>nsspurstacksrc/vm/gcc3x-<wbr>interp.c: needs merge</div><div>nsspurstacksrc/vm/interp.c: needs merge</div><div>spur64src/vm/cogit.h: needs merge</div><div>spur64src/vm/cogitX64SysV.c: needs merge</div><div>spur64src/vm/cogitX64WIN64.c: needs merge</div><div>spur64src/vm/cointerp.c: needs merge</div><div>spur64src/vm/cointerp.h: needs merge</div><div>spur64src/vm/gcc3x-cointerp.c: needs merge</div><div>spurlowcode64src/vm/cogit.h: needs merge</div><div>spurlowcode64src/vm/<wbr>cogitX64SysV.c: needs merge</div><div>spurlowcode64src/vm/<wbr>cogitX64WIN64.c: needs merge</div><div>spurlowcode64src/vm/cointerp.<wbr>c: needs merge</div><div>spurlowcode64src/vm/cointerp.<wbr>h: needs merge</div><div>spurlowcode64src/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spurlowcodesrc/vm/cogit.h: needs merge</div><div>spurlowcodesrc/vm/cointerp.c: needs merge</div><div>spurlowcodesrc/vm/cointerp.h: needs merge</div><div>spurlowcodesrc/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spurlowcodestack64src/vm/<wbr>gcc3x-interp.c: needs merge</div><div>spurlowcodestack64src/vm/<wbr>interp.c: needs merge</div><div>spurlowcodestacksrc/vm/gcc3x-<wbr>interp.c: needs merge</div><div>spurlowcodestacksrc/vm/interp.<wbr>c: needs merge</div><div>spursista64src/vm/cogit.h: needs merge</div><div>spursista64src/vm/<wbr>cogitX64SysV.c: needs merge</div><div>spursista64src/vm/<wbr>cogitX64WIN64.c: needs merge</div><div>spursista64src/vm/cointerp.c: needs merge</div><div>spursista64src/vm/cointerp.h: needs merge</div><div>spursista64src/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spursistasrc/vm/cogit.h: needs merge</div><div>spursistasrc/vm/cointerp.c: needs merge</div><div>spursistasrc/vm/cointerp.h: needs merge</div><div>spursistasrc/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spursrc/vm/cogit.h: needs merge</div><div>spursrc/vm/cointerp.c: needs merge</div><div>spursrc/vm/cointerp.h: needs merge</div><div>spursrc/vm/gcc3x-cointerp.c: needs merge</div><div>spurstack64src/vm/gcc3x-<wbr>interp.c: needs merge</div><div>spurstack64src/vm/interp.c: needs merge</div><div>spurstacksrc/vm/gcc3x-interp.<wbr>c: needs merge</div><div>spurstacksrc/vm/interp.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>ARM32FFIPlugin.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>IA32FFIPlugin.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>X64SysVFFIPlugin.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>X64Win64FFIPlugin.c: needs merge</div><div>src/vm/cogit.h: needs merge</div><div>src/vm/cointerp.c: needs merge</div><div>src/vm/cointerp.h: needs merge</div><div>src/vm/cointerpmt.c: needs merge</div><div>src/vm/cointerpmt.h: needs merge</div><div>src/vm/gcc3x-cointerp.c: needs merge</div><div>src/vm/gcc3x-cointerpmt.c: needs merge</div><div>stacksrc/vm/gcc3x-interp.c: needs merge</div><div>stacksrc/vm/interp.c: needs merge</div><div>nsspur64src/vm/cogit.h: needs merge</div><div>nsspur64src/vm/cogitX64SysV.c: needs merge</div><div>nsspur64src/vm/cogitX64WIN64.<wbr>c: needs merge</div><div>nsspur64src/vm/cointerp.c: needs merge</div><div>nsspur64src/vm/cointerp.h: needs merge</div><div>nsspur64src/vm/gcc3x-cointerp.<wbr>c: needs merge</div><div>nsspursrc/vm/cogit.h: needs merge</div><div>nsspursrc/vm/cointerp.c: needs merge</div><div>nsspursrc/vm/cointerp.h: needs merge</div><div>nsspursrc/vm/gcc3x-cointerp.c: needs merge</div><div>nsspurstack64src/vm/gcc3x-<wbr>interp.c: needs merge</div><div>nsspurstack64src/vm/interp.c: needs merge</div><div>nsspurstacksrc/vm/gcc3x-<wbr>interp.c: needs merge</div><div>nsspurstacksrc/vm/interp.c: needs merge</div><div>spur64src/vm/cogit.h: needs merge</div><div>spur64src/vm/cogitX64SysV.c: needs merge</div><div>spur64src/vm/cogitX64WIN64.c: needs merge</div><div>spur64src/vm/cointerp.c: needs merge</div><div>spur64src/vm/cointerp.h: needs merge</div><div>spur64src/vm/gcc3x-cointerp.c: needs merge</div><div>spurlowcode64src/vm/cogit.h: needs merge</div><div>spurlowcode64src/vm/<wbr>cogitX64SysV.c: needs merge</div><div>spurlowcode64src/vm/<wbr>cogitX64WIN64.c: needs merge</div><div>spurlowcode64src/vm/cointerp.<wbr>c: needs merge</div><div>spurlowcode64src/vm/cointerp.<wbr>h: needs merge</div><div>spurlowcode64src/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spurlowcodesrc/vm/cogit.h: needs merge</div><div>spurlowcodesrc/vm/cointerp.c: needs merge</div><div>spurlowcodesrc/vm/cointerp.h: needs merge</div><div>spurlowcodesrc/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spurlowcodestack64src/vm/<wbr>gcc3x-interp.c: needs merge</div><div>spurlowcodestack64src/vm/<wbr>interp.c: needs merge</div><div>spurlowcodestacksrc/vm/gcc3x-<wbr>interp.c: needs merge</div><div>spurlowcodestacksrc/vm/interp.<wbr>c: needs merge</div><div>spursista64src/vm/cogit.h: needs merge</div><div>spursista64src/vm/<wbr>cogitX64SysV.c: needs merge</div><div>spursista64src/vm/<wbr>cogitX64WIN64.c: needs merge</div><div>spursista64src/vm/cointerp.c: needs merge</div><div>spursista64src/vm/cointerp.h: needs merge</div><div>spursista64src/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spursistasrc/vm/cogit.h: needs merge</div><div>spursistasrc/vm/cointerp.c: needs merge</div><div>spursistasrc/vm/cointerp.h: needs merge</div><div>spursistasrc/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spursrc/vm/cogit.h: needs merge</div><div>spursrc/vm/cointerp.c: needs merge</div><div>spursrc/vm/cointerp.h: needs merge</div><div>spursrc/vm/gcc3x-cointerp.c: needs merge</div><div>spurstack64src/vm/gcc3x-<wbr>interp.c: needs merge</div><div>spurstack64src/vm/interp.c: needs merge</div><div>spurstacksrc/vm/gcc3x-interp.<wbr>c: needs merge</div><div>spurstacksrc/vm/interp.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>ARM32FFIPlugin.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>IA32FFIPlugin.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>X64SysVFFIPlugin.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>X64Win64FFIPlugin.c: needs merge</div><div>src/vm/cogit.h: needs merge</div><div>src/vm/cointerp.c: needs merge</div><div>src/vm/cointerp.h: needs merge</div><div>src/vm/cointerpmt.c: needs merge</div><div>src/vm/cointerpmt.h: needs merge</div><div>src/vm/gcc3x-cointerp.c: needs merge</div><div>src/vm/gcc3x-cointerpmt.c: needs merge</div><div>stacksrc/vm/gcc3x-interp.c: needs merge</div><div>stacksrc/vm/interp.c: needs merge</div><div>nsspur64src/vm/cogit.h: unmerged (<wbr>ed6bf51d9ab7c6f5927f69e5661f22<wbr>ad5cdf93d8)</div><div>nsspur64src/vm/cogit.h: unmerged (<wbr>6b84b3adf311e7e9655802800cf3c6<wbr>6cca5ae590)</div><div>nsspur64src/vm/cogit.h: unmerged (<wbr>8aeef63d69b098a39eea676e8707de<wbr>91ff7d4097)</div><div>nsspur64src/vm/cogitX64SysV.c: unmerged (<wbr>197c00a9998d01982af526043c1548<wbr>0549118225)</div><div>nsspur64src/vm/cogitX64SysV.c: unmerged (<wbr>41adeb695b6a1d13c802967b1b2a08<wbr>fcb48a7934)</div><div>nsspur64src/vm/cogitX64SysV.c: unmerged (<wbr>b61a13f47897197e7b58aa9c147ba8<wbr>7eb5cdc8f1)</div><div>nsspur64src/vm/cogitX64WIN64.<wbr>c: unmerged (<wbr>ff6c102e326c6f85a5129ab03ee09b<wbr>1f24b33304)</div><div>nsspur64src/vm/cogitX64WIN64.<wbr>c: unmerged (<wbr>2cb03481942943a106feef898e2a99<wbr>dd7e316a28)</div><div>nsspur64src/vm/cogitX64WIN64.<wbr>c: unmerged (<wbr>ec4b0edb7cd243b040a5982f0a374c<wbr>3fb3862f77)</div><div>nsspur64src/vm/cointerp.c: unmerged (<wbr>56db95c989c194930e8d7eeeebebb3<wbr>72ec63258d)</div><div>...</div><div>fatal: git-write-tree: error building trees</div><div>Cannot save the current index state</div><div>/Users/eliot/oscogvm</div><div>/Users/eliot/oscogvm</div><div>nsspur64src/vm/cogit.h: needs merge</div><div>nsspur64src/vm/cogitX64SysV.c: needs merge</div><div>nsspur64src/vm/cogitX64WIN64.<wbr>c: needs merge</div><div>nsspur64src/vm/cointerp.c: needs merge</div><div>nsspur64src/vm/cointerp.h: needs merge</div><div>nsspur64src/vm/gcc3x-cointerp.<wbr>c: needs merge</div><div>nsspursrc/vm/cogit.h: needs merge</div><div>nsspursrc/vm/cointerp.c: needs merge</div><div>nsspursrc/vm/cointerp.h: needs merge</div><div>nsspursrc/vm/gcc3x-cointerp.c: needs merge</div><div>nsspurstack64src/vm/gcc3x-<wbr>interp.c: needs merge</div><div>nsspurstack64src/vm/interp.c: needs merge</div><div>nsspurstacksrc/vm/gcc3x-<wbr>interp.c: needs merge</div><div>nsspurstacksrc/vm/interp.c: needs merge</div><div>spur64src/vm/cogit.h: needs merge</div><div>spur64src/vm/cogitX64SysV.c: needs merge</div><div>spur64src/vm/cogitX64WIN64.c: needs merge</div><div>spur64src/vm/cointerp.c: needs merge</div><div>spur64src/vm/cointerp.h: needs merge</div><div>spur64src/vm/gcc3x-cointerp.c: needs merge</div><div>spurlowcode64src/vm/cogit.h: needs merge</div><div>spurlowcode64src/vm/<wbr>cogitX64SysV.c: needs merge</div><div>spurlowcode64src/vm/<wbr>cogitX64WIN64.c: needs merge</div><div>spurlowcode64src/vm/cointerp.<wbr>c: needs merge</div><div>spurlowcode64src/vm/cointerp.<wbr>h: needs merge</div><div>spurlowcode64src/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spurlowcodesrc/vm/cogit.h: needs merge</div><div>spurlowcodesrc/vm/cointerp.c: needs merge</div><div>spurlowcodesrc/vm/cointerp.h: needs merge</div><div>spurlowcodesrc/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spurlowcodestack64src/vm/<wbr>gcc3x-interp.c: needs merge</div><div>spurlowcodestack64src/vm/<wbr>interp.c: needs merge</div><div>spurlowcodestacksrc/vm/gcc3x-<wbr>interp.c: needs merge</div><div>spurlowcodestacksrc/vm/interp.<wbr>c: needs merge</div><div>spursista64src/vm/cogit.h: needs merge</div><div>spursista64src/vm/<wbr>cogitX64SysV.c: needs merge</div><div>spursista64src/vm/<wbr>cogitX64WIN64.c: needs merge</div><div>spursista64src/vm/cointerp.c: needs merge</div><div>spursista64src/vm/cointerp.h: needs merge</div><div>spursista64src/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spursistasrc/vm/cogit.h: needs merge</div><div>spursistasrc/vm/cointerp.c: needs merge</div><div>spursistasrc/vm/cointerp.h: needs merge</div><div>spursistasrc/vm/gcc3x-<wbr>cointerp.c: needs merge</div><div>spursrc/vm/cogit.h: needs merge</div><div>spursrc/vm/cointerp.c: needs merge</div><div>spursrc/vm/cointerp.h: needs merge</div><div>spursrc/vm/gcc3x-cointerp.c: needs merge</div><div>spurstack64src/vm/gcc3x-<wbr>interp.c: needs merge</div><div>spurstack64src/vm/interp.c: needs merge</div><div>spurstacksrc/vm/gcc3x-interp.<wbr>c: needs merge</div><div>spurstacksrc/vm/interp.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>ARM32FFIPlugin.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>IA32FFIPlugin.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>X64SysVFFIPlugin.c: needs merge</div><div>src/plugins/SqueakFFIPrims/<wbr>X64Win64FFIPlugin.c: needs merge</div><div>src/vm/cogit.h: needs merge</div><div>src/vm/cointerp.c: needs merge</div><div>src/vm/cointerp.h: needs merge</div><div>src/vm/cointerpmt.c: needs merge</div><div>src/vm/cointerpmt.h: needs merge</div><div>src/vm/gcc3x-cointerp.c: needs merge</div><div>src/vm/gcc3x-cointerpmt.c: needs merge</div><div>stacksrc/vm/gcc3x-interp.c: needs merge</div><div>stacksrc/vm/interp.c: needs merge</div><div>unable to refresh index</div><div class="gmail-m_5476683321260575040gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>
<br></blockquote></div><br></div></div></div>