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

Re: Triggers status?



On Wed, 24 Oct 2007, Ian Jackson wrote:
> Raphael Hertzog writes ("Re: Triggers status?"):
> > This is just the normal behaviour since you have a conflict in the rebase.
> > You just have to fix it exactly like you fixed the conflict when you did
> > the merge.
> 
> But I already fixed up that conflict when I merged the head into
> dpkg.triggers.  Why do I need to do it again ?  Surely the point of
> using an advanced revision control system is to avoid this kind of
> makework.

Well, either you merge or you use rebase. Using both doesn't make much sense!

The point was to do the "rebase" when your branch was still pointing
to your commit da517d03a69942016d3e90fd6fbbf462645109e4.

The situation was this one:
o--o--o--o dpkg.debian
 \
  o--o--o dpkg.triggers

You did this:
o--o--o--o dpkg.debian
 \        \
  o--o--o--o dpkg.triggers

Using rebase would have lead to this:
o--o--o--o dpkg.debian
          \
           o--o--o dpkg.triggers

In fact, you can still do the rebase after the merge but it will simply
try to apply all the patches that are in dpkg.triggers on top of
dpkg.debian including the merge patch. Which means you'll see the
conflicts "live" (when the conflicting patch is replayed on top of
dpkg.debian) and you'll see it again when the merge patch is going to
be replayed. So really it's not very interesting to merge first if you
intend to rebase after.

(your real example is even more complicated as you didn't fix the conflict
in the merge commit but reverted changes that lead to conflicts on top of the dpkg.debian
tree before merging that into your dpkg.triggers tree, urgh!)

> Sorry to be tetchy but I guess I'm missing the way in which this is
> making our lives easier rather than harder.

Using rebase is no more complicated than using merge for you. It just
generates a different result. I already explained in what way rebase is
interesting (rewriting the history to make it easier to review and to
match the commit guidelines of the team that should merge the branch).

> > Unless you had "dpkg.debian" already merged in your "dpkg.triggers"
> > branch, I don't understand this.
> 
> Yes, that's exactly what I have.

So it was logical:

The merge simply changed this:
o--o--o--o dpkg.debian
 \        \
  o--o--o--o dpkg.triggers

Into this:
o--o--o--o
 \        \
   o--o--o--o dpkg.triggers, dpkg.debian

All dpkg.debian commits were already in dpkg.triggers so the merge had
nothing to do except make the dpkg.debian branch point to dpkg.triggers.

Cheers,
-- 
Raphaël Hertzog

Premier livre français sur Debian GNU/Linux :
http://www.ouaza.com/livre/admin-debian/



Reply to: