[Vm-dev] What do I do when this happens?

Jakob Reschke forums.jakob at resfarm.de
Fri Dec 22 08:03:09 UTC 2017


Hi Eliot,

To get rid of (i.e. lose) merge state in the index, use `git reset`
(no further arguments):

git reset [<mode>] [<commit>]
This form resets the current branch head to <commit> and possibly
updates the index (resetting it to the tree of <commit>) and the
working tree depending on <mode>. If <mode> is omitted, defaults to
"--mixed".
[...]
--mixed
Resets the index but not the working tree (i.e., the changed files are
preserved but not marked for commit) and reports what has not been
updated.

Assuming that your files do not really contain conflicts, but are all
ready to be committed, you should be fine afterwards. You should check
the diff to be sure.

Now, the more complicated question is: what did you do before you
tried to commit? Something must have put all those files in the merge
state, git commit will not do that. Most likely an unfinished merge
(pull), but maybe you remember it more concretely. To undo a merge
(pull) attempt (including changes to the working copy files), you can
also use `git merge --abort`. That a working copy declares to be "at
the tip of a branch" does not convey any information about the index
("about to be committed") state and additional planned ancestor
commits. You can see such things with git status or with the `gitk`
graphical utility.

You should never have to edit or nuke stuff in the .git repository by
hand. It is more likely to break something rather than to fix
something.

Kind regards,
Jakob

2017-12-22 7:52 GMT+01:00 Eliot Miranda <eliot.miranda at gmail.com>:
>
> Hi git mavens,
>
>
>    what I mean by "what do I do" is how I really get rid of all stash/merge state so that when I generate sources I know the commit will succeed and these phantom merge states will not materialize.  Are there files in the .git directory that I need to nuke or reset?  git is throwing up these bogus merges in my face and I have no cheap way to get rid of them.  Checking out the entire repository again is expensive; I have to rebuild everything.  I want something that works in place reliably.  I'm losing lots of time here while git is losing its sparkle and gaining a matt brown "sheen".
>
> On Thu, Dec 21, 2017 at 10:48 PM, Eliot Miranda <eliot.miranda at 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 (ed6bf51d9ab7c6f5927f69e5661f22ad5cdf93d8)
>> nsspur64src/vm/cogit.h: unmerged (6b84b3adf311e7e9655802800cf3c66cca5ae590)
>> nsspur64src/vm/cogit.h: unmerged (8aeef63d69b098a39eea676e8707de91ff7d4097)
>> nsspur64src/vm/cogitX64SysV.c: unmerged (197c00a9998d01982af526043c15480549118225)
>> nsspur64src/vm/cogitX64SysV.c: unmerged (41adeb695b6a1d13c802967b1b2a08fcb48a7934)
>> nsspur64src/vm/cogitX64SysV.c: unmerged (b61a13f47897197e7b58aa9c147ba87eb5cdc8f1)
>> nsspur64src/vm/cogitX64WIN64.c: unmerged (ff6c102e326c6f85a5129ab03ee09b1f24b33304)
>> nsspur64src/vm/cogitX64WIN64.c: unmerged (2cb03481942943a106feef898e2a99dd7e316a28)
>> nsspur64src/vm/cogitX64WIN64.c: unmerged (ec4b0edb7cd243b040a5982f0a374c3fb3862f77)
>> nsspur64src/vm/cointerp.c: unmerged (56db95c989c194930e8d7eeeebebb372ec63258d)
>> ...
>> 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
>
>
>
>
> --
> _,,,^..^,,,_
> best, Eliot
>



More information about the Vm-dev mailing list