Re: Q. regarding subtree merge

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2008/4/18, Santi Béjar <sbejar@xxxxxxxxx>:
> On Fri, Apr 18, 2008 at 12:02 PM, Santi Béjar <sbejar@xxxxxxxxx> wrote:
>  >
>  > On Fri, Apr 18, 2008 at 11:36 AM, Stefan Näwe
>  >  <stefan.naewe+git@xxxxxxxxx> wrote:
>  >  > Hi all.
>  >  >
>  >  >  I tried the scenario described in
>  >  >  $GIT_DIR/Documentation/howto/using-merge-subtree.txt and have some problems
>  >  >  with it.
>  >  >
>  >  >  My setup:
>  >  >
>  >  >  I use git to track my changes in three different "project directories", lets
>  >  >  say:
>  >  >
>  >  >  ...../src_root/libfoo
>  >  >  ...../src_root/appbar
>  >  >  ...../bin_root/installed
>  >  >
>  >  >  All three git repositories contain a topic branch (lets say 'current-work')
>  >  >  that I want to track.
>  >  >
>  >  >  Now I want to setup one git repository containing only the three directories
>  >  >  'libfoo', 'appbar', and 'installed' that others can clone easily. Reading the
>  >  >  above howto document, I think this should be possible.
>  >  >
>  >  >  I do:
>  >  >
>  >  >   $ mkdir super-prj
>  >  >   $ cd super-prj
>  >  >   $ git init
>  >  >   $ git add remote -f libfoo ../path/to/src_root/libfoo
>  >  >
>  >  >  OK. No problem.
>  >  >
>  >  >  The problem arises after the second step of the howto:
>  >  >
>  >  >   $ git merge -s ours --no-commit libfoo/current-work
>  >  >
>  >  >  Now, all files of 'libfoo' are in the current directory. This is not what I
>  >  >  want.
>  >  >
>  >  >  Could someone please tell me what I'm doing wrong?
>  >
>  >  You are trying to merge libfoo with an empty project, so the merge
>  >  just "fast-forward" to the other commit as you do not have an "ours".
>  >
>  >  Simply skip the merge step.
>
>
> Ups, I think you have to specify the parent for the new commit. Maybe
>  change the merge step with:
>
>  $ git reset --soft libfoo/current-work
>

OK. Thanks. It worked without the merge.
I did another test where the 'super-prj' was not empty, this time with
'git merge -s...' and
that worked as well. So:
If you have an empty super-prj    -> drop the merge
If you have a non-empty super-prj -> do the merge

But I really don't understand (yet...) why it is as it is...

Thanks

Stefan
--
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux