git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: How to check out the repository at a particular point in time

From
Andreas Ericsson <ae@op5.se>
Date
Aug 24, 2011, 15:41 UTC
Message-ID
<4E551BC3.8080701@op5.se>
In-Reply-To
<CAMOZ1Bti3ZtAEOtLiUYSkWE+rO_VQd09NAn58Cn4hZBu8f-aFQ@mail.gmail.com>
On 08/23/2011 05:54 PM, Michael Witten wrote:
Show 31 quoted lines
> On Mon, Aug 22, 2011 at 15:18, R. Diez<rdiezmail-temp2@yahoo.de>  wrote:
>>> The main problem is that your request is not very
>>> well-defined: in
>>> nonlinear history there will in general be more than one
>>> commit at the
>>> time requested.
>>>
>>>      ---a----b----c----M----  (M is a merge)
>>>          \            /
>>>           d-----e----f
>>>
>>>               ^----April 1st
>>>
>>> Suppose you ask git for "the newest commit as of April 1st"
>>> in this history.  Is it supposed to give you b or d?
>>
>> I still don't quite understand how git works, but let me
>> risk a naive statement here. If "a-b-c-M" were 'master',
>> and "d-e-f" were 'new-feature', then on April 1st the
>> current version on 'master' is 'b', because I merged the
>> 'new-feature' branch at a later point in time. Does that
>> make sense?
> 
> O! for the love all that is Holy!
> 
> You see, guys? The term `branch' was a TERRIBLE choice.
> 
> What git calls `branch master' in your example is just a pointer to
> the commit object `M'; it has nothing to do with particular lineages
> like `a-b-c-M'.
> 

Back in 2005 when git was young and fresh, there was a discussion about what to call things. If memory serves (which it might not), I think the consensus was that "branch" works just fine, and when someone who doesn't like it comes along we can just tell them that it's short for "tip-of-branch pointer", which is far more accurate. A "ref" is always local though, which is why the reflog (which is used for such date resolving problems) is never even considered to work on remote refs. They *can* work on remotes' refs though, which is a slightly different thing.

Whatever, really. The fact that pretty much everyone seems to know what a branch is and how it works in git after a (very) brief intro to it means it's either right on target or that people are so used to the fact that branch means something different in every scm that they don't even bother loading the word with some preconceived notion that used to be right in cvs.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.
Previous: Jonathan NiederNext: Randal L. Schwartz
Message 10 of 12 in “How to check out the repository at a particular point in time”
  1. R. DiezAug 22, 2011
  2. Thomas RastAug 22, 2011
  3. R. DiezAug 22, 2011
  4. Jens LehmannAug 22, 2011
  5. Michael WittenAug 23, 2011
  6. Jonathan NiederAug 23, 2011
  7. Matthieu MoyAug 23, 2011
  8. Michael WittenAug 23, 2011
  9. Jonathan NiederAug 23, 2011
  10. Andreas EricssonAug 24, 2011
  11. Randal L. SchwartzAug 24, 2011
  12. Michael WittenAug 24, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.