Hello All, I am switching to GIT for my GCC work (mostly the MELT branch, sometimes submitting patches to trunk). A big thanks to Dodji Seketeli for his very kind help. If I understand correctly, I am using the GCC git service.
But I have some issues. The GCC MELT branch has very localised changes (almost all of them are in some files named *melt*). The difference between MELT and trunk -on files existing in both- is very small usually (usually, a few lines in toplevel.c). Most of the files are exactly the same. Now, I am trying for the first time to merge trunk into MELT. In the old SVN times (last week!), I just did svnmerge merge and most of the time I had no conflict (because by design MELT is very close to the trunk) at all. Now, I followed http://gcc.gnu.org/wiki/GitMirror and did cd /usr/src/Lang/basile-melt-gcc git merge --squash master and now I am getting a lot of conflicts that I do not understand. A typical one is: Auto-merging gcc/ada/gcc-interface/gigi.h CONFLICT (add/add): Merge conflict in gcc/ada/gcc-interface/gigi.h % git status gcc/ada/gcc-interface/gigi.h # On branch melt-branch # Unmerged paths: # (use "git reset HEAD <file>..." to unstage) # (use "git add/rm <file>..." as appropriate to mark resolution) # # both added: gcc/ada/gcc-interface/gigi.h # no changes added to commit (use "git add" and/or "git commit -a") I never in my life touched an y ada related file (neither in trunk, not in the MELT branch). And if I ask what is happenning; % git diff gcc/ada/gcc-interface/gigi.h diff --cc gcc/ada/gcc-interface/gigi.h index 67a7a47,e45cf13..0000000 --- a/gcc/ada/gcc-interface/gigi.h +++ b/gcc/ada/gcc-interface/gigi.h @@@ -6,7 -6,7 +6,11 @@@ * * * C Header File * * * ++<<<<<<< HEAD + * Copyright (C) 1992-2010, Free Software Foundation, Inc. * ++======= + * Copyright (C) 1992-2011, Free Software Foundation, Inc. * ++>>>>>>> master * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@@ -861,10 -861,9 +865,16 @@@ extern tree build_allocator (tree type Entity_Id gnat_proc, Entity_Id gnat_pool, Node_Id gnat_node, bool); ++<<<<<<< HEAD +/* Fill in a VMS descriptor for EXPR and return a constructor for it. + GNAT_FORMAL is how we find the descriptor record. GNAT_ACTUAL is how + we derive the source location on a C_E */ +extern tree fill_vms_descriptor (tree expr, Entity_Id gnat_formal, ++======= + /* Fill in a VMS descriptor of GNU_TYPE for GNU_EXPR and return the result. + GNAT_ACTUAL is the actual parameter for which the descriptor is built. */ + extern tree fill_vms_descriptor (tree gnu_type, tree gnu_expr, ++>>>>>>> master Node_Id gnat_actual); /* Indicate that we need to take the address of T and that it therefore I was expecting the git merge to copy all the changes from trunk into the MELT branch. I don't feel the above as a "conflict" (and in the svnmerge merge times, it was not one). I just want git to bring all the changes from trunk into GCC MELT. And I expect conflicts -if any- only on the very files that are common (ie exisiting in both), but different in the MELT branch and in the trunk (like perhaops gcc/Makefile.in). I dont understand why there is a conflict on an ada related file I never touched in my life. What did I do wrong? What is the good way to merge the trunk back into my MELT branch using git? How can I ask git to ignore such "conflicts" (as svnmerge merge did)? Regards -- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359 8, rue de la Faiencerie, 92340 Bourg La Reine, France *** opinions {are only mines, sont seulement les miennes} ***