From: Jakub Narebski Date: Sun, 21 May 2006 08:30:23 GMT Subject: Re: [RFD] Git glossary: 'branch' and 'head' description Message-ID: In-Reply-To: <87y7wyv72m.fsf@morpheus.hq.vtech> David Kågedal wrote: > Jakub Narebski writes: [...] >> So from the user's point of view, 'branch' is simply _named line of >> development_. Refer to topic and tracking branches. > > But the definition of 'branch' in git is quite different from the > definition in CVS or many other systems. It CVS, each revision > (commit) belongs to a branch, and the branch is a linear sequence of > revisions, not a full DAG. In git, a commit doesn't really "belong" > in any specific branch. > > So, while it makes sense to describe branches as "lines of > development" in general terms, it is also important to note the > specific meaning of 'branch' in the context of git; i.e. as the > history of a single head commit. We can always say that branch is 1-st parent linear history of head branch, up to unmarked but computable branching/fork/creation point, i.e. {i = 0..N: branch-head~i} where N is the length of the branch. BTW. HEAD~0 == HEAD, isn't it? -- Jakub Narebski Warsaw, Poland