git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Stefan Näwe" <stefan.naewe@googlemail.com>
To: git@vger.kernel.org
Cc: "Santi Béjar" <sbejar@gmail.com>
Subject: Re: Q. regarding subtree merge
Date: Fri, 18 Apr 2008 14:18:25 +0200	[thread overview]
Message-ID: <60b759020804180518k2fc1957bk60a5d7cdac8c3991@mail.gmail.com> (raw)
In-Reply-To: <8aa486160804180309o26ab9c69j2b3b665a280bf7c4@mail.gmail.com>

2008/4/18, Santi Béjar <sbejar@gmail.com>:
> On Fri, Apr 18, 2008 at 12:02 PM, Santi Béjar <sbejar@gmail.com> wrote:
>  >
>  > On Fri, Apr 18, 2008 at 11:36 AM, Stefan Näwe
>  >  <stefan.naewe+git@gmail.com> 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

  reply	other threads:[~2008-04-18 12:19 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-18  9:36 Q. regarding subtree merge Stefan Näwe
2008-04-18 10:02 ` Santi Béjar
2008-04-18 10:09   ` Santi Béjar
2008-04-18 12:18     ` Stefan Näwe [this message]
2008-04-18 12:59       ` Santi Béjar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=60b759020804180518k2fc1957bk60a5d7cdac8c3991@mail.gmail.com \
    --to=stefan.naewe@googlemail.com \
    --cc=git@vger.kernel.org \
    --cc=sbejar@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).