[squeak-dev] The Inbox: Monticello-bf.540.mcz

Bert Freudenberg bert at freudenbergs.de
Fri May 3 11:37:57 UTC 2013


On 2013-05-03, at 13:16, Frank Shearar <frank.shearar at gmail.com> wrote:

> On 3 May 2013 12:11, Bert Freudenberg <bert at freudenbergs.de> wrote:
>> 
>> On 2013-05-03, at 12:55, Frank Shearar <frank.shearar at gmail.com> wrote:
>> 
>>> On 3 May 2013 11:31, Bert Freudenberg <bert at freudenbergs.de> wrote:
>>>> 
>>>> On 2013-05-03, at 12:26, Frank Shearar <frank.shearar at gmail.com> wrote:
>>>> 
>>>>> Ah, thanks for that, Bert.
>>>>> 
>>>>> IIRC the search over the repository group in #parentSnapshot ought to
>>>>> search the default cache repository first, yes?
>>>> 
>>>> No. We specifically want to see the diff relative to the repository we are storing into.
>>> 
>>> That's not what it looks like: it looks like it _first_ tries the
>>> target repo, and then falls back to searching over a group. Since a
>>> MCRepositoryGroup has a default cache, I'd imagine it would search
>>> that before trying the other repositories (but after first trying the
>>> target repository).
>>> 
>>> frank
>> 
>> 
>> If no ancestor can be found (an unusual case) in the target repo it falls back to the repo group. And that will have the cache repo, yes.
>> 
>> Possibly it shouldn't even fall back, to indicate that you are in fact storing a completely new package? Or am I misunderstanding you?
> 
> I'm happy with the fallback; it means things have a better chance of
> working when off-line. I just wanted to confirm my understanding of
> the fallback position. I'm happy now :)
> 
>> The parentSnapshot is only used to display the diff, it has no effect on what actually gets stored.
> 
> Yes.
> 
> frank

Actually I misremembered how it works ... this is not looking for any distant ancestor in the repo, but only for direct ancestors. Namely, the ones listed as parents of the working copy. Normally it's only a single parent, in which case it does not matter in which repo it is found. But if this was a merge, we must show the diff relative to the parent in the target repo, not from the other repo, no matter in what order the two are listed as parents. This is to show the changes we're going to make to the selected repository.

Before this change, it would always show a diff relative to the first parent, which was occasionally misleading. 

- Bert -




More information about the Squeak-dev mailing list