On Thu, Jul 31, 2008 at 17:01, H.Merijn Brand <h.m.brand@xxxxxxxxx> wrote: > On Thu, 31 Jul 2008 15:06:26 +0200, Petr Baudis <pasky@xxxxxxx> wrote: > >> On Thu, Jul 31, 2008 at 02:39:55PM +0200, H.Merijn Brand wrote: >> > >> > There is a slight problem with this merging approach. The path names >> > are as they are/were in the submodules. In module_a, foo.pl was without >> > a leading module_a/ path, and now after integration, it still is. Is it >> > possible to rethink this whole process that integrates/merges the >> > several git repo's in subfolders into the current folder, as-if they >> > would have been in this folder in the first place? >> >> I would suggest re-reading Santi's suggestions: >> >> > You have, basically, two possibilities: >> > >> > 1) Add the module_# as submodules: >> > http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html >> > http://git.or.cz/gitwiki/GitSubmoduleTutorial >> > 2) Add the submodules as subtrees (as gitk and git-gui in git.git) >> > http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html >> >> I think the latter is specifically what you want. > > I got stuck in that process, as the new repo thinks all the files from > the sub-folders belong to the top-folder: After this process, there are > a lot of files from subfolder include in the "new" top-level folder. > I see all OK. Can you provide a self consistent simple testcase that shows what is wrong? # prepare the project and the modules mkdir project cd project git init ... mkdir module_a cd module_a git init ... # your script # show what you get and what you expect, for example: $ git show HEAD: # or something equivalent $ ls $ git status ... > --8<--- git-join.sh > #!/bin/sh > > export MODS > MODS="include fnc" > MODS="$MODS i00f000 i99f000" > MODS="$MODS l00m000 l01f000 l02f000 l03f000 l06f000 l90z000" > MODS="$MODS rpt" > MODS="$MODS leerpl mutbev prtabel tabellen zoomen" > > echo "Creating merge environment" > rm -rf new > mkdir new > cd new > > echo "Recovering original repo's" > tbz -s -x ../lep4gl-git > > echo "Initializing new repo" > git init > > for mod in $MODS ; do > echo "Merging $mod ..." > git remote add -f B$mod $mod > git merge -s ours --no-commit B$mod/master > git read-tree --prefix=$mod/ -u B$mod/master > git commit -m "Merge $mod as our subdirectory" > git pull -s subtree B$mod master This is only needed when updating the subtree if the module has been updated (but it should do nothing in you case). > done > > echo Done > -->8--- Santi -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html