git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andreas Krey <a.krey@gmx.de>
To: Michael J Gruber <git@drmicha.warpmail.net>
Cc: Ramkumar Ramachandra <artagnon@gmail.com>, git@vger.kernel.org
Subject: Re: Branch merge bug
Date: Tue, 19 Jan 2010 13:39:15 +0100	[thread overview]
Message-ID: <20100119123915.GB28667@inner.home.ulmdo.de> (raw)
In-Reply-To: <4B55A080.7010705@drmicha.warpmail.net>

On Tue, 19 Jan 2010 13:07:28 +0000, Michael J Gruber wrote:
...
> If you really mean to modify and rename an existing file, then tell Git so:
> 
> git mv fil fila
> git commit -m 'we need a new name'
> 
> instead of your 'git rm fil' will record your intentions (not only for
> Git, but also for everyone else reading your log, such as you a year
> from now) and will make the merge succeed.

The intention would only be known informally in the commit message,
as 'git mv' just removes the old and adds the new file, and still
leave the work to the rename detection.

Indeed, changing
  >: git rm fil
  >: echo asjhdajkhsdkajhs >fila
  >: git add fila
to
  >: git mv fil fila
  >: echo asjhdajkhsdkajhs >fila
  >: git add fila
and even to
  >: git mv fil fila
  >: git cm 'other mv'
  >: echo asjhdajkhsdkajhs >fila
  >: git add fila
still gives the same rename/delete conflict because the rename
detection does not look at every single commit but only at
the total changes.

Which is actually good; when someone does

  cp prog.c prog.cpp
  git add prog.cpp && git commit
  vi prog.cpp --make-compile-again && git commit -a
  git rm prog.c && git commit

it is still seen as a rename prog.c->prog.cpp even though both
existed in parallel for some commits.

Andreas

  reply	other threads:[~2010-01-19 12:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-19  7:22 Branch merge bug Ramkumar Ramachandra
2010-01-19 12:07 ` Michael J Gruber
2010-01-19 12:39   ` Andreas Krey [this message]
2010-01-19 13:22     ` Ramkumar Ramachandra
2010-01-19 13:58     ` Michael J Gruber

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=20100119123915.GB28667@inner.home.ulmdo.de \
    --to=a.krey@gmx.de \
    --cc=artagnon@gmail.com \
    --cc=git@drmicha.warpmail.net \
    --cc=git@vger.kernel.org \
    /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).