Re: [PATCH 2/4] rebase: avoid double reflog entry when switching branches

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

 



Hi Junio,

On Fri, 4 Jan 2019, Junio C Hamano wrote:

> "Johannes Schindelin via GitGitGadget" <gitgitgadget@xxxxxxxxx>
> writes:
> 
> > From: Johannes Schindelin <johannes.schindelin@xxxxxx>
> >
> > When switching a branch *and* updating said branch to a different
> > revision, let's avoid a double entry by first updating the branch and
> > then adjusting the symbolic ref HEAD.
> 
> Ah, in the original sequence, HEAD is updated twice, leaving two
> reflog entries for HEAD (and one for the underlying "switch_to"
> branch by virtue of REF_UPDATE_VIA_HEAD).  In the new sequence,
> update_ref() updates the underlying "switch_to" and then HEAD, so
> we'd get one reflog entry for each of them.
> 
> Makes sense.  s/let's avoid a double entry/& in HEAD's reflog/ would
> have avoided wasting reader's time who needlessly wondered where
> that redundancy came from, though.

Will fix the commit message.

Thanks!
Dscho

> 
> >
> > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx>
> > ---
> >  builtin/rebase.c | 7 ++++---
> >  1 file changed, 4 insertions(+), 3 deletions(-)
> >
> > diff --git a/builtin/rebase.c b/builtin/rebase.c
> > index e1dfa74ca8..768bea0da8 100644
> > --- a/builtin/rebase.c
> > +++ b/builtin/rebase.c
> > @@ -438,10 +438,11 @@ static int reset_head(struct object_id *oid, const char *action,
> >  				 detach_head ? REF_NO_DEREF : 0,
> >  				 UPDATE_REFS_MSG_ON_ERR);
> >  	else {
> > -		ret = create_symref("HEAD", switch_to_branch, msg.buf);
> > +		ret = update_ref(reflog_orig_head, switch_to_branch, oid,
> > +				 NULL, 0, UPDATE_REFS_MSG_ON_ERR);
> >  		if (!ret)
> > -			ret = update_ref(reflog_head, "HEAD", oid, NULL, 0,
> > -					 UPDATE_REFS_MSG_ON_ERR);
> > +			ret = create_symref("HEAD", switch_to_branch,
> > +					    reflog_head);
> >  	}
> >  
> >  leave_reset_head:
> 



[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