On Mon, Dec 24, 2012 at 1:19 PM, Jeff King <p...@peff.net> wrote:
> On Mon, Dec 24, 2012 at 12:28:45PM +0700, Nguyen Thai Ngoc Duy wrote:
>> > You want to know "what commit was I at when I typed `git branch
>> > mybranch`"?  The problem is git doesn't record this information and
>> > doesn't have the slightest clue.
>> Maybe we should store this information. reflog is a perfect place for
>> this, I think. If this information is reliably available, git rebase
>> can be told to "rebase my whole branch" instead of my choosing the
>> base commit for it.
> Is that what you really want, though? We record the "upstream" branch
> already, and you can calculate the merge base with that branch to see
> which commits are unique to your branch. In simple cases, that is the
> same as "where did I start the branch". In more complex cases, it may
> not be (e.g., if you merged some of the early commits in the branch
> already).  But in that latter case, would you really want to rebase
> those commits that had been merged?
> The reason that git does not bother storing "where did I start this
> branch" is that it is usually not useful. The right question is usually
> "what is the merge base". There are exceptions, of course (e.g., if you
> are asking something like "what work did I do while checked out on the
> 'foo' branch"). But for merging and rebasing, I think the computed
> merge-base is much more likely to do what people want.

Rebasing is exactly why I want this. Merge base works most of the time
until you rewrite upstream (which I do sometimes). There are also
cases when I create a branch without upstream, or when upstream is
renamed. Still, making "rebase -i --topic" == "rebase -i $(git
merge-base HEAD @{upstream})" would be cool.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to