All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] A natural solution to the @ -> HEAD problem
@ 2013-05-01 16:20 Ramkumar Ramachandra
  2013-05-01 16:20 ` [PATCH 1/5] t1508 (at-combinations): more tests; document failures Ramkumar Ramachandra
                   ` (5 more replies)
  0 siblings, 6 replies; 49+ messages in thread
From: Ramkumar Ramachandra @ 2013-05-01 16:20 UTC (permalink / raw)
  To: Git List; +Cc: Junio C Hamano, Felipe Contreras, Jeff King, Duy Nguyen

Hi,

Felipe's approach to solving the problem is a recursive reinterpret()
that relies on parsing the sequence @[^{].  Seems like quite a
contrived hack, and I think we can do much better than this.

Here, I present my approach to solving the problem.  It interprets @
just like a ref in resolve_ref_unsafe(), after everything else has
been peeled off; the solution is just the few simple lines shown in
[5/5].

The core of the series tackles refactoring the @-parsing so that [5/5]
becomes possible without doing anything contrived.  [1/5] introduces
the problem I started solving: making symbolic refs work properly.
[2/5] and [3/5] are a result of me reading through the horrible
@-parsing code.  [4/5] finally solves the symbolic ref problem, and
[5/5] becomes trivial.

A side-effect of the series is that you can now do:

    $ git symbolic-ref H HEAD
    $ git show H@{u}

In other words, symbolic refs actually work now and you can use them
to achieve a lot of custom overrides.  I think it is a step in the
right direction.

Thanks for listening, and hope you enjoy reading the series as much as
I enjoyed writing it.

Ramkumar Ramachandra (5):
  t1508 (at-combinations): more tests; document failures
  sha1_name.c: don't waste cycles in the @-parsing loop
  sha1_name.c: simplify @-parsing in get_sha1_basic()
  remote.c: teach branch_get() to treat symrefs other than HEAD
  refs.c: make @ a pseudo-ref alias to HEAD

 Documentation/git-check-ref-format.txt |  2 +
 Documentation/revisions.txt            |  8 +++-
 refs.c                                 | 12 ++++-
 remote.c                               | 14 ++++++
 sha1_name.c                            | 85 +++++++++++++++++++++++++---------
 t/t1400-update-ref.sh                  |  3 ++
 t/t1508-at-combinations.sh             | 15 ++++++
 7 files changed, 113 insertions(+), 26 deletions(-)

-- 
1.8.3.rc0.24.g6456091

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2013-05-04  8:17 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-01 16:20 [PATCH 0/5] A natural solution to the @ -> HEAD problem Ramkumar Ramachandra
2013-05-01 16:20 ` [PATCH 1/5] t1508 (at-combinations): more tests; document failures Ramkumar Ramachandra
2013-05-01 18:53   ` Junio C Hamano
2013-05-01 21:04     ` Ramkumar Ramachandra
2013-05-01 21:16       ` Jeff King
2013-05-01 22:01         ` Ramkumar Ramachandra
2013-05-01 22:54         ` Junio C Hamano
2013-05-02  2:22     ` Felipe Contreras
2013-05-02  9:07       ` Ramkumar Ramachandra
2013-05-02  9:45         ` Felipe Contreras
2013-05-02 11:03           ` Ramkumar Ramachandra
2013-05-02 11:36             ` Ramkumar Ramachandra
2013-05-02 16:45             ` Felipe Contreras
2013-05-02 16:56               ` Ramkumar Ramachandra
2013-05-02 17:01                 ` Felipe Contreras
2013-05-02 17:02                 ` Ramkumar Ramachandra
2013-05-02 17:08                   ` Felipe Contreras
2013-05-02 17:09                     ` Ramkumar Ramachandra
2013-05-04  8:10                       ` David Aguilar
2013-05-04  8:16                         ` David Aguilar
2013-05-01 16:20 ` [PATCH 2/5] sha1_name.c: don't waste cycles in the @-parsing loop Ramkumar Ramachandra
2013-05-01 17:57   ` Felipe Contreras
2013-05-01 18:48     ` Ramkumar Ramachandra
2013-05-02  0:04     ` Junio C Hamano
2013-05-01 16:20 ` [PATCH 3/5] sha1_name.c: simplify @-parsing in get_sha1_basic() Ramkumar Ramachandra
2013-05-01 18:09   ` Felipe Contreras
2013-05-01 18:36     ` Ramkumar Ramachandra
2013-05-01 18:54       ` Jonathan Nieder
2013-05-01 19:55         ` Ramkumar Ramachandra
2013-05-01 19:23       ` Felipe Contreras
2013-05-01 19:40         ` Ramkumar Ramachandra
2013-05-01 22:18           ` Felipe Contreras
2013-05-01 22:26             ` Ramkumar Ramachandra
2013-05-01 22:39               ` Felipe Contreras
2013-05-01 22:06   ` Ramkumar Ramachandra
2013-05-01 16:20 ` [PATCH 4/5] remote.c: teach branch_get() to treat symrefs other than HEAD Ramkumar Ramachandra
2013-05-01 18:16   ` Felipe Contreras
2013-05-01 18:44     ` Ramkumar Ramachandra
2013-05-01 19:28       ` Felipe Contreras
2013-05-01 19:50         ` Ramkumar Ramachandra
2013-05-01 20:48           ` Felipe Contreras
2013-05-01 20:57             ` Ramkumar Ramachandra
2013-05-01 22:23               ` Felipe Contreras
2013-05-01 16:20 ` [PATCH 5/5] refs.c: make @ a pseudo-ref alias to HEAD Ramkumar Ramachandra
2013-05-01 18:20   ` Felipe Contreras
2013-05-01 19:00     ` Ramkumar Ramachandra
2013-05-01 19:31       ` Felipe Contreras
2013-05-01 19:51         ` Ramkumar Ramachandra
2013-05-01 21:49 ` [PATCH 0/5] A natural solution to the @ -> HEAD problem Ramkumar Ramachandra

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.