On Thu, May 2, 2013 at 4:07 AM, Ramkumar Ramachandra <artag...@gmail.com> wrote:
> Felipe Contreras wrote:
>> [...]
> Yes, I'm working on a re-roll.
>> Moreover, the symbolic-ref 'HEAD' is quite special, it's mentioned
>> everywhere in the documentation, and the code has special cases for
>> it. It's not reasonable to expect all relevant places to be updated
>> for this functionality, and certainly 'Documentation/revisions.txt' is
>> not the only one.
> I'm not denying that HEAD is special.  I'm just improving the general
> support for symbolic-refs, so that the difference between HEAD and any
> other symbolic-ref is smaller.

That is orthogonal to the issue at hand.

>> For example, in Ramkumar's approach:
>>  % git branch -u master @
>> Would replace '@' with HEAD, however:
>>  % git branch --edit-description @
>> Would not.
> git branch -u master <any symbolic ref> will work just fine.  It has
> nothing to do with my series.

% git symbolic-ref TEST refs/heads/master
% git branch -u origin/master TEST
fatal: branch 'TEST' does not exist

You mean it will work just fine _after_ your patch series. So it has
everything to do with your series.

> Does git branch --edit-description HEAD work?  Then why do you expect
> git branch --edit-description <any other symbolic ref> to work?  git
> branch --edit-description operates on non-symbolic refs.
> Let me make this clear: @ is just another symbolic-ref that always
> points to the same thing as HEAD.  Nothing less, nothing more.

But HEAD is special, @ is not. HEAD is documented, @ is not.

Where is it documented that @ points to HEAD? Where is it documented
that 'branch -u foo @' would replace @ with HEAD?
Documentation/revisions.txt? Sorry, 'git branch -u foo' does not parse
revisions, so that's not the answer. And there's many other places
that don't do revision parsing either.

Your approach is more like a hack, it has the consequences we want,
but it has many other unintentional and undocumented consequences.

If I find a single place where 'HEAD' is hard-coded, and your patch
doesn't replace '@' correctly, would you then accept that there are
unintentional consequences, and that this approach is no the best
precisely for that reason?

>> In my opinion, if 'git branch X @{-1}' doesn't work, neither should
>> 'git branch X @', and that's what my approach does.
> Why shouldn't (doesn't) git branch X @{-1} work?

That's a red herring. The fact is that right now it doesn't work.

My patch does what it says it does, and documents what it does, and
does not mess with anything else.

> git branch X <any
> expression with or without a symbolic ref> works fine, and it has
> nothing to do with my series.

No, it doesn't.

% git symbolic-ref TEST refs/heads/master
% git branch -u origin/master TEST
fatal: branch 'TEST' does not exist
% git branch --edit-description TEST
error: No branch named 'TEST'.

Felipe Contreras
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