From: Petr Baudis Date: Tue, 20 Sep 2005 15:07:19 GMT Subject: Re: Joining cg-*-id Message-ID: <20050920150719.GB1836@pasky.or.cz> In-Reply-To: Dear diary, on Tue, Sep 20, 2005 at 04:53:11PM CEST, I got a letter where Linus Torvalds told me that... > On Tue, 20 Sep 2005, Petr Baudis wrote: > > > > > > So I'd love to have > > > > > > git diff yesterday.. > > > > > > but the fact is, there's no sensible semantics for it. _which_ yesterday? > > > There might be five different points that are "close to 24 hours ago", > > > along five different paths backwards in the history. > > > > A well-defined meaning for this from Cogito standpoint would be "the > > last commit on our HEAD before the date and all commits committed and > > merged to the HEAD". In Cogito, you don't merge two branches _together_, > > you merge one branch _into_ another (represented by the parents order), > > so this would be sensible. > > No, it's _not_ sensible or well-defined. > > The order of the parents does not matter. It fundamentally _cannot_ > matter. I realize that both git and cogito put the "primary parent" first, > but that doesn't help one iota - because git is distributed, if the other > side merged and we just did a fast-forward, the "primary parent" will be > the _other_ side. > > In other words, anybody who thinks that the order of parents is meaningful > is in for some nasty shocks. It really _fundamentally_ isn't true. I > realize that's hard to accept, but it's a truism in a distributed system. > You really cannot have parent ordering and distribution at the same time. Ok ok. I can now remember already learning about this once, but I forgot again. I should write it down into some README for myself or so, I guess. ;-) Sorry about the noise. I'll just drop the date revision specifier support from Cogito. I don't know if any measurable number of people actually use it in the real world anyway. -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ VI has two modes: the one in which it beeps and the one in which