From: Eric Wong <normalperson@yhbt.net>
To: Avery Pennarun <apenwarr@gmail.com>
Cc: Dmitry Potapov <dpotapov@gmail.com>,
Matt Kern <matt.kern@undue.org>,
git@vger.kernel.org
Subject: Re: Git SVN Rebranching Issue
Date: Thu, 6 Nov 2008 01:39:17 -0800 [thread overview]
Message-ID: <20081106093917.GA15686@untitled> (raw)
In-Reply-To: <32541b130811041640x18e3bbfewa639df356ff7561e@mail.gmail.com>
Avery Pennarun <apenwarr@gmail.com> wrote:
> On Tue, Nov 4, 2008 at 7:33 PM, Eric Wong <normalperson@yhbt.net> wrote:
> > Dmitry Potapov <dpotapov@gmail.com> wrote:
> >> On Tue, Nov 04, 2008 at 12:41:11AM -0800, Eric Wong wrote:
> >> >
> >> > Short answer: you can use grafts to remove parents.
> >>
> >> Using grafts requires some cautious, especially when it is used to make
> >> some commits unreachable, because git gc can remove unreachable commits.
> >> Also, a repository with grafts cannot be cloned. So using grafts looks
> >> like more as workaround rather a real solution.
> >
> > I don't think extra history is harmful at all, so the grafts could even
> > be temporary. AFAIK, the extra history is only an aesthetic issue in
> > visualizers (and I actually like to see it myself).
>
> But it's *lying* history in this case; it doesn't reflect what really
> happened in svn *or* in real life. I'd say lying history is most
> often harmful. "git blame" and "git log" will lie in this case, for
> example.
Maybe, but I don't find having a choice to follow _either_:
a) copy history (the REAL history)
b) the name history (faked)
I've had to deal with repositories that recycled branch names for a
while now and it hasn't been an issue for me nor anybody else
using git svn on them.
git log --first-parent exists for following copy history, too.
> >> Would it not be better to save the old branch using "@SVN-NUMBER" as
> >> suffix? Thus, those do not need the old branch can easily delete it.
> >
> > That would require renaming _existing_ branches to their "@SVN-NUMBER"
> > name; which would break mechanisms for tracking branches based on
> > refname.
>
> Well, you wouldn't have to rename the existing branch. You would
> simply create the new @SVN-NUMBER branch when it became clear that
> that commit is no longer reachable from the undecorated branch ref.
> Isn't that why the @SVN-NUMBER branches are needed in the first place?
Making @SVN-NUMBER branches for new/latest branches is even more
confusing. That would mean the user would have to remember the
@SVN-NUMBER every time they wanted to do operations with the
recycled branch.
The current use of @SVN-NUMBER in branches are only used when following
parents (when repositories are rearranged). In retrospect, it's
probably possible to for git-svn to not make them user-visible (I seem
to recall they made development/debugging/testing easier in the past,
though).
> As for tracking branches based on refname, it seems like the current
> behaviour of pretending to merge histories together wouldn't work too
> well anyway. For someone pulling from the messed-up branch, they
> really *will* need to rewind and re-pull, since that's exactly what
> happened in svn. I don't think git has any chance of doing this
> automatically just because of a new commit with two parents.
"git svn rebase" and "git log ..$RECYCLED" both work. non-FF/non-squash
pulls won't, of course.
> Disclaimer: I haven't run into any of this myself since I don't
> recycle branch names in svn :)
Lucky you :)
--
Eric Wong
next prev parent reply other threads:[~2008-11-06 9:40 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-03 14:07 Git SVN Rebranching Issue Matt Kern
2008-11-04 8:41 ` Eric Wong
2008-11-04 9:42 ` Dmitry Potapov
2008-11-04 10:15 ` Sverre Rabbelier
2008-11-04 11:24 ` Matt Kern
2008-11-05 0:33 ` Eric Wong
2008-11-05 0:40 ` Avery Pennarun
2008-11-06 9:39 ` Eric Wong [this message]
2008-11-06 20:48 ` Avery Pennarun
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=20081106093917.GA15686@untitled \
--to=normalperson@yhbt.net \
--cc=apenwarr@gmail.com \
--cc=dpotapov@gmail.com \
--cc=git@vger.kernel.org \
--cc=matt.kern@undue.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.