GIT 1.8.5 shows: "BUG: There are unmerged index entries" - windows

I am using GIT 1.8.5.2.msysgit.0 (latest download version from git-scm.com)and getting this message during merge.
I have run the merge using recommended GIT_MERGE_VERBOSITY=5. Maybe there is one suspicious entry:
CONFLICT (rename/rename): Rename "xxx"->"yyy" in branch "Temporary
merge branch 1" rename "xxx"->"yyy" in "Temporary merge branch 2"
(left unresolved)
But I don't know. All other conflicts are content, add/add or rename/rename but this is the only one showing "left unresolved". The file and directory "xxx" does not exist anymore on both branch sides. I tried to solve the problem by creating the file "xxx". But the BUG message comes up again and above message.
Sorry, that I cannot post the complete output and that I have to replace filenames with XXX and YYY because I this repository is used in my work and I can't give more information up to now.
Maybe someone has some more information on how I can proceed here?
Edit: I found a workaround to get the merge finished without this BUG message by adding the option -X rename-threshold=95%.
git merge --no-ff --no-commit -X rename-threshold=95% branch_to_merge_from

Related

git for Windows: tortoisegitmerge can only be launched from bash command line, but not git gui

I'm using 64 bit git-for-windows 2.12.2 under Windows7 64 bit system. Also, I have 64 bit TortoiseGit 2.4.0 installed under E:\Program Files\TortoiseGit. Now, I have try to set the tortoisegitmerge.exe as a merge tool, then use it under either bash and git gui.
Here is my setting of global .gitconfig file:
[merge]
tool = tortoisemerge
[mergetool "tortoisemerge"]
path = E:\\Program Files\\TortoiseGit\\bin\\TortoiseGitMerge.exe
This setting is from the one answer here: git - Why doesn't tortoisemerge work as my mergetool? - Stack Overflow
This works fine if I try to launch the merge tool from the command line, see the log below:
123#123-PC MINGW64 /d/code/cb/cb_sf_git/trunk (test_merge_gui|AM 3/19)
$ git mergetool
Merging:
src/CodeBlocks_wx31.cbp
Normal merge conflict for 'src/CodeBlocks_wx31.cbp':
{local}: modified file
{remote}: modified file
123#123-PC MINGW64 /d/code/cb/cb_sf_git/trunk (test_merge_gui|AM 3/19)
$ git am --continue
You can see the image shot of the opened window after I run git mergetool, it looks like tortoisegitmerge already fix the conflict, so I just click Save button, and close the tortoisegitmerge, and run git am --continue.
But when conflict happens, I can open the git gui gui tool, and see the image shot here, look, it shows one conflict here.
When I right click and click the "merge tool" context menu, I get such error message box, it said: "Unsupported merge tool 'tortoisemerge'", see image shot below:
While, I have tried other settings in .gitconfig, such as this one:
[merge]
tool = tortoisemerge
[mergetool "tortoisemerge"]
cmd = '"E:/Program Files/TortoiseGit/bin/TortoiseGitMerge.exe" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED"'
But there are still other errors when launched either from bash, see below:
123#123-PC MINGW64 /d/code/cb/cb_sf_git/trunk (test_merge_gui|AM 3/19)
$ git mergetool
Merging:
src/CodeBlocks_wx31.cbp
Normal merge conflict for 'src/CodeBlocks_wx31.cbp':
{local}: modified file
{remote}: modified file
/mingw64/libexec/git-core/git-mergetool--lib: line 128: E:/Program Files/TortoiseGit/bin/TortoiseGitMerge.exe -base:$BASE -theirs:$REMOTE -mine:$LOCAL -merged:$MERGED: No such file or directory
src/CodeBlocks_wx31.cbp seems unchanged.
Was the merge successful [y/n]?
While try to launch the merge tool from context menu of git gui, I get the same message box saying "Unsupported merge tool 'tortoisemerge'".
I have tried other settings of the cmd or path field, but without any luck, all get failed.
Any one can help? Thanks.
EDIT: I have tried all the settings in this stackoverflow questions: Why can't I use TortoiseMerge as my git merge tool on Windows? - Stack Overflow, but no luck, all are failed with the same error.
After debugging for a while, I think I have totally fix this issue, just add a code snippet in the file mergetool.tcl.
tortoisemerge {
#set cmdline [list "$merge_tool_path" -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"]
#Note: no quote around the $BASE like variables, because those cause escaped quote
#and it looks like TortoiseGitMerge does not support such formats.
set cmdline [list "$merge_tool_path" -base:$BASE -mine:$LOCAL -theirs:$REMOTE -merged:$MERGED]
}
Then the problem could be solved. See some discussion here: google group discussion.

Clearcase UCM: rebase fails - error (apparently) is a lie - what's the root cause?

I have a rather standard setup with a development stream (devStream) that delivers to and rebases from an integration stream (intStream).
I have a file in my development view (devView) that I can checkout, modify, and checkin normally.
However, when I attempt to deliver (and later rebase) however I get an error that baffles me... (especially as I have been delivering and rebasing for the past 6 months) It may be worth noting that we recently upgraded from Rhapsody 8.0.2 to 8.0.4 (and correspondingly upgraded the diffmerge tool that clearcase's map file points to for rhapsody files), however given when the errors are arising I can't see how this could be at fault.
Since the graphical mode can be hard to get enough debug info from I captured the results of some command line runs.
Here's the (annonymized) result for
starting a rebase
cleartool> rebase -recommended
*SNIP*
Creating integration activity...
Setting integration activity...
Merging files...
Checked out "C:\CCVs\myDevView\shortenedPath\theFile.sbs" from version "\main\intStream\devStream\9".
Attached activity:
activity:NSSLB00001350#\projects "rebase devStream on 20131120.195128."
Needs Merge "C:\CCVs\myDevView\shortenedPath\theFile.sbs" [to \main\intStream\devStream\CHECKEDOUT from \main\intStream\9 base \main\intStream\8]
cleartool: Error: Unable to access "C:\CCVs\myDevView\shortenedPath\theFile.sbs": No such file or directory.
cleartool: Error: An error occurred while merging file elements in the target view.
cleartool: Error: Unable to perform merge.
cleartool: Error: Unable to perform integration.
cleartool: Error: Unable to rebase stream "devStream".
attempting to resume the rebase
cleartool> rebase -resume
Rebase in progress on stream "devStream".
Started by "XXXXX" at 11/20/2013 7:51:28 PM.
Merging files...
cleartool: Error: Unable to access "C:\CCVs\myDevView\shortenedPath\theFile.sbs": No such file or directory.
cleartool: Error: Some files are already checked out to a non-integration activity in the target view.
cleartool: Error: Unable to perform merge.
cleartool: Error: Unable to perform integration.
cleartool: Error: Some files are already checked out to a non-integration activity in the target view.
cleartool: Error: Unable to resume rebase.
listing the information associated with the thusly created integration rebase activity
cleartool> lsactivity -long NSSLB00001350
activity "NSSLB00001350"
2013-11-20T19:52:00-06:00 by XXXXXX
"Integration activity created by rebase on 11/20/2013 7:51:28 PM.
"
owner: XXXXX
group: XXXXX
stream: devStream#\projects
current view: myDevView
title: rebase devStream on 20131120.195128.
change set versions:
C:\CCVs\myDevView\shortenedPath\theFile.sbs##\main\intStream\devStream\CHECKEDOUT.94426
clearquest record id: NSSLB00001350
clearquest record State: Active
cleartool>
listing checkouts for anyone, on any stream, anywhere in this portion of the directory structure
cleartool> lsco -r
--11-20T19:51 XXXXX checkout version ".\shortenedPath\theFile.sbs" from \main\intStream\devStream\9 (reserved)
Attached activity:
activity:NSSLB00001350#\projects "rebase devStream on 20131120.195128."
At this point I'm confused about how to proceed. Googling isn't bringing up anything that seems relevant (or maybe my google skills are weak).
It's also worth pointing out that my clearcase skills are entirely self-taught on an as-needed basis... so I'm sure I've got holes in my knowledge. Meaining even if something seems like it would have been obvious to do, please point it out; I may be unaware.
Requested Info
With no rebase being attempted
C:\CCVs\myDevView\shortenedPath>cleartool ls
theFile.sbs##\main\intStream\devStream\9 Rule: ...\devStream\LATEST
theFile.sbs.merge
theFile.sbs.merge.1
theFile.sbs.merge.2
theFile.sbs.merge.3
theFile.sbs.merge.4
*snip (other files)*
In middle of failed rebase
theFile.sbs##\main\intStream\devStream\CHECKEDOUT from \main\intStream\devStream\9 [not loaded, checkedout but removed]
*snip*
theFile.sbs.merge.5
So... the rebase is doing something odd to the file; but why does it dissapear when doing a rebase/deliver and not when doing a normal checkout?
To debug this, you must go to the command line, in a shell, and go to the parent folder of the missing file:
cd /path/to/target/view/path/to/parent/folder
# in your case
cd C:\CCVs\myDevView\shortenedPath\
cleartool ls
cleartool lsvtree -graph .
The status of the file returned by the cleartool ls can give you a clue as to what is going on.
For instance "checkout but removed" would means the mergetool tried to access/open that file, but somehow it was deleted: that happens when said file is taken by a process, and cannot be completely checked out.
The lsvtree can also give you clues regarding the parent folder (to see if it was merged or not).
Another approach is to cancel that rebase, and try it again in a dynamic view instead of a snapshot view, in order to avoid any side-effect with a snapshot view not correctly updated.
The OP Khanmots concludes in the comments:
I undid the rebase (to get a copy of the file) and started it again.
When it bombed out I copied the file back in then hit to restart the rebase. Deleted it again.
I then replaced the file while leaving the prompt to start the diffmerge tool open, this allowed diffmerge to actually launch... but when I tell the diffmerge to save (after resolving differences) it deletes the file and creates another .merge.# file.
At this point it's looking like it's a diffmerge issue and not a clearcase issue.

Error when renaming .plist resource

I'm having an issue when attempting to rename a .plist file.
I've added to my project using : New File... -> Resource -> Property List
When I'm changing its name from x-code (by clicking twice on the file and then tipping the new name) I get an error popup from x-code :
error : bad index file sha1 signature fatal : index file corrupt
How could I rename my file?
I guess the error message comes from GIT (and not from Xcode itself), take a look at this article: https://makandracards.com/makandra/5899-how-to-fix-a-corrupt-git-index
How to fix a corrupt git index
If your git index for some reason becomes invalid, no need to worry.
Your index is corrupt when you see this error running usual git
commands like git pull, git status, etc.:
error: bad index file sha1 signature fatal: index file corrupt
Though it sounds bad, your changes are still there. Fix it by first removing
the index file, then resetting the branch:
rm .git/index git reset You should be all good now.

Commit error in Xcode

I am connected to a git repository. Every time I want to commit something, Xcode says "The operation couldn’t be completed. (com.apple.dt.IDESourceControlErrorDomain error -70.)". After I press ok, I can commit my changes and everything looks fine, but it is annoying. Anybody with a solution? Thanks in advance.
I had the same issue and I am a basic svn user so I am sure there is a better answer but it helped me, the conflict was on my project.xcodeproj file, so I closed XCode, I created a backup of the current project, not sure if snapshots functionality may works due the xcodeproj file is about to be changed and it may crash, I opened the terminal, and I executed the command "svn update" it prompted me:
Conflict discovered in 'myProject.xcodeproj/project.pbxproj'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:
I selected 's', then I got
(e) edit - change merged file in an editor
(df) diff-full - show all changes made to merged file
(r) resolved - accept merged version of file
(dc) display-conflict - show all conflicts (ignoring merged version)
(mc) mine-conflict - accept my version for all conflicts (same)
(tc) theirs-conflict - accept their version for all conflicts (same)
(mf) mine-full - accept my version of entire file (even non-conflicts)
(tf) theirs-full - accept their version of entire file (same)
(p) postpone - mark the conflict to be resolved later
(l) launch - launch external tool to resolve conflict
(s) show all - show this list
I selected 'tc' and then I opened my project again and I applied my changes.

FileMerge: This file type cannot be merged

FileMerge.app fails with an odd message:
This file type cannot be merged.
when I try to save successfully merged text files, which definitely can be merged.
(I invoke FileMerge from git using opendiff tool on OS X 10.6.3, but problem happens even when I select files to merge manually)
Why is it happening? How can I avoid this problem?

Resources