MC breakage in 1.1

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
16 messages Options
Reply | Threaded
Open this post in threaded view
|

MC breakage in 1.1

Julian Fitzell-2
It seems that in Pharo 1.1 MC no longer displays the Version window
after a failed commit attempt (due to missing authentication for
example). As a result, cannot easily resubmit the version after fixing
the credentials.

In fact, as I look further, it's worse than that. Let's say I had
version 1 and changed two methods. After the failed commit the
following seems to be the situation:

- The ancestor of my working copy is 2 instead of 1 (confirmed with History)
- The working copy is dirty
- The Changes button shows the same two modified methods that I was
trying to save into 2
- The diff between 1 and 2 shows the two modified methods
- The diff between 2 and my image (as selected from the History
window) shows no changes

Eek!

Julian

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Julian Fitzell-2
On Tue, Jun 15, 2010 at 12:12 AM, Julian Fitzell <[hidden email]> wrote:

> It seems that in Pharo 1.1 MC no longer displays the Version window
> after a failed commit attempt (due to missing authentication for
> example). As a result, cannot easily resubmit the version after fixing
> the credentials.
>
> In fact, as I look further, it's worse than that. Let's say I had
> version 1 and changed two methods. After the failed commit the
> following seems to be the situation:
>
> - The ancestor of my working copy is 2 instead of 1 (confirmed with History)
> - The working copy is dirty
> - The Changes button shows the same two modified methods that I was
> trying to save into 2
> - The diff between 1 and 2 shows the two modified methods
> - The diff between 2 and my image (as selected from the History
> window) shows no changes

Actually, most of the additional points are ok. The Changes button is,
of course, relative to the selected repository (I say of course, not
because that's necessarily intuitive but because I was previously
aware of it) so that's why it showed the changes still. The ancestry
information is all correct and opening up the package-cache to
resubmit the version did get me back in business.

I still think digging into the package cache to find it is not an
optimum solution to this fairly common problem, though.

Julian

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

hernanmd
In reply to this post by Julian Fitzell-2
Hi Julian,

2010/6/15 Julian Fitzell <[hidden email]>:
> It seems that in Pharo 1.1 MC no longer displays the Version window
> after a failed commit attempt (due to missing authentication for
> example). As a result, cannot easily resubmit the version after fixing
> the credentials.
>

This is the issue, http://code.google.com/p/pharo/issues/detail?id=2260

please reopen if necessary but in the old version the "Version window"
is a pluggable standard window with a MCVersionInspector as model and

1) I saw no button to resubmit the version in this Window. The buttons
are : Browse, History, Changes, Load, Merge, Adopt, Copy, Diff
2) A Debugger window was opened and used as an information dialog even
when there's nothing to Debug (most failure cases are user errors like
missing credentials). The Proceed button was used as Resubmit/Retry
after the credentials were corrected.

I think a version window should be displayed for a succesful save, not
for every failed save attempt (imagine a script or a UI test which
fails to save hundreds of packages). Actually #storeVersion: should
trigger specific exceptions for every kind of failure so appropiate
handlers could be implemented for different scenarios.

> In fact, as I look further, it's worse than that. Let's say I had
> version 1 and changed two methods. After the failed commit the
> following seems to be the situation:
>
> - The ancestor of my working copy is 2 instead of 1 (confirmed with History)
> - The working copy is dirty
> - The Changes button shows the same two modified methods that I was
> trying to save into 2
> - The diff between 1 and 2 shows the two modified methods
> - The diff between 2 and my image (as selected from the History
> window) shows no changes

This is because "2" should not be created. If a copy cannot be saved
then there is no reason to increment the version number with the
failed attempt. May deserve another issue entry?

Please comment I would like to read opinions on this.

Hernán

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Lukas Renggli
> This is because "2" should not be created. If a copy cannot be saved
> then there is no reason to increment the version number with the
> failed attempt. May deserve another issue entry?
>
> Please comment I would like to read opinions on this.

I noticed this problem too. The previous behavior was better, at least
if you knew how to fix you credentials in the debugger.

Lukas

--
Lukas Renggli
www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Stéphane Ducasse
It would be nice to fix that in a better way.
Hernan we integrated your change but now the package stays dirty and if you republish in the repository
then you may break the ancestor chain so I do not know what to do.

Stef

On Jun 15, 2010, at 7:37 AM, Lukas Renggli wrote:

>> This is because "2" should not be created. If a copy cannot be saved
>> then there is no reason to increment the version number with the
>> failed attempt. May deserve another issue entry?
>>
>> Please comment I would like to read opinions on this.
>
> I noticed this problem too. The previous behavior was better, at least
> if you knew how to fix you credentials in the debugger.
>
> Lukas
>
> --
> Lukas Renggli
> www.lukas-renggli.ch
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

hernanmd
In reply to this post by Lukas Renggli
2010/6/15 Lukas Renggli <[hidden email]>:
>> This is because "2" should not be created. If a copy cannot be saved
>> then there is no reason to increment the version number with the
>> failed attempt. May deserve another issue entry?
>>
>> Please comment I would like to read opinions on this.
>
> I noticed this problem too. The previous behavior was better, at least
> if you knew how to fix you credentials in the debugger.
>

Ok then revert the change if you like, although the Debugger is
probably the most powerful tool we have I see it as a tool for editing
code, not configurations (I've never heard of anyone going though
Debugger to set credentials in MC) and newbies may perceive a problem
with MC instead of their settings or network problems.

Hernán

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Stéphane Ducasse
before reverting it
could we not have another solution ;)
Because indeed I never went inside the debugger to catch the credentials
Stef


On Jun 15, 2010, at 9:25 AM, Hernán Morales Durand wrote:

> 2010/6/15 Lukas Renggli <[hidden email]>:
>>> This is because "2" should not be created. If a copy cannot be saved
>>> then there is no reason to increment the version number with the
>>> failed attempt. May deserve another issue entry?
>>>
>>> Please comment I would like to read opinions on this.
>>
>> I noticed this problem too. The previous behavior was better, at least
>> if you knew how to fix you credentials in the debugger.
>>
>
> Ok then revert the change if you like, although the Debugger is
> probably the most powerful tool we have I see it as a tool for editing
> code, not configurations (I've never heard of anyone going though
> Debugger to set credentials in MC) and newbies may perceive a problem
> with MC instead of their settings or network problems.
>
> Hernán
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

hernanmd
In reply to this post by Stéphane Ducasse
Why the ancestor chain is broken if the save failed?

Of course if the fix breaks other parts I agree to revert or reopen
the issue until we find a better solution.

What people think about triggering specific exceptions for different
failures? When I saw this issue it seemed to me no trivial to
implement it to my MC knowledge at least. If nobody take it I will
have a look tonight, sorry for the unwanted effects just trying to get
a better Pharo experience.

Hernán

2010/6/15 Stéphane Ducasse <[hidden email]>:

> It would be nice to fix that in a better way.
> Hernan we integrated your change but now the package stays dirty and if you republish in the repository
> then you may break the ancestor chain so I do not know what to do.
>
> Stef
>
> On Jun 15, 2010, at 7:37 AM, Lukas Renggli wrote:
>
>>> This is because "2" should not be created. If a copy cannot be saved
>>> then there is no reason to increment the version number with the
>>> failed attempt. May deserve another issue entry?
>>>
>>> Please comment I would like to read opinions on this.
>>
>> I noticed this problem too. The previous behavior was better, at least
>> if you knew how to fix you credentials in the debugger.
>>
>> Lukas
>>
>> --
>> Lukas Renggli
>> www.lukas-renggli.ch
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Lukas Renggli
> What people think about triggering specific exceptions for different
> failures? When I saw this issue it seemed to me no trivial to
> implement it to my MC knowledge at least. If nobody take it I will
> have a look tonight, sorry for the unwanted effects just trying to get
> a better Pharo experience.

I think it is cool to improve that.

The error message is nice, but it should leave Monticello in exactly
the same state as it was before the commit. Right now it already
commits a version to the cache and leaves the browser in an
inconsistent state. To fix this situation it means more work than with
the debugger before.

Lukas

--
Lukas Renggli
www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Stéphane Ducasse
In reply to this post by hernanmd

On Jun 15, 2010, at 9:42 AM, Hernán Morales Durand wrote:

> Why the ancestor chain is broken if the save failed?
>
> Of course if the fix breaks other parts I agree to revert or reopen
> the issue until we find a better solution.

because (may be I'm wrong)
your cache will contain v+1
and when you will republish v+2 its ancestor v+1 will not be saved on the server
so on the server we will get
        v and v+2
>
> What people think about triggering specific exceptions for different
> failures? When I saw this issue it seemed to me no trivial to
> implement it to my MC knowledge at least. If nobody take it I will
> have a look tonight, sorry for the unwanted effects just trying to get
> a better Pharo experience.

would be nice to have better exception so that we can react adequately

>
> Hernán
>
> 2010/6/15 Stéphane Ducasse <[hidden email]>:
>> It would be nice to fix that in a better way.
>> Hernan we integrated your change but now the package stays dirty and if you republish in the repository
>> then you may break the ancestor chain so I do not know what to do.
>>
>> Stef
>>
>> On Jun 15, 2010, at 7:37 AM, Lukas Renggli wrote:
>>
>>>> This is because "2" should not be created. If a copy cannot be saved
>>>> then there is no reason to increment the version number with the
>>>> failed attempt. May deserve another issue entry?
>>>>
>>>> Please comment I would like to read opinions on this.
>>>
>>> I noticed this problem too. The previous behavior was better, at least
>>> if you knew how to fix you credentials in the debugger.
>>>
>>> Lukas
>>>
>>> --
>>> Lukas Renggli
>>> www.lukas-renggli.ch
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Dale Henrichs
In reply to this post by Stéphane Ducasse
In GLASS, I have arranged to prompt for new/missing credentials when the
save fails due to an HTTP error ... It's a bit of a hack, since the HTTP
client doesn't throw an error, but it is better than the alternative ...
only experts know how to fix the credentials using the debugger:)

In my case I wanted to minimize changes to the HTTP client, but I would
think that for Pharo, explicit error handling would be an improvement
for the HTTP client anyway...

Dale

Stéphane Ducasse wrote:

> before reverting it
> could we not have another solution ;)
> Because indeed I never went inside the debugger to catch the credentials
> Stef
>
>
> On Jun 15, 2010, at 9:25 AM, Hernán Morales Durand wrote:
>
>> 2010/6/15 Lukas Renggli <[hidden email]>:
>>>> This is because "2" should not be created. If a copy cannot be saved
>>>> then there is no reason to increment the version number with the
>>>> failed attempt. May deserve another issue entry?
>>>>
>>>> Please comment I would like to read opinions on this.
>>> I noticed this problem too. The previous behavior was better, at least
>>> if you knew how to fix you credentials in the debugger.
>>>
>> Ok then revert the change if you like, although the Debugger is
>> probably the most powerful tool we have I see it as a tool for editing
>> code, not configurations (I've never heard of anyone going though
>> Debugger to set credentials in MC) and newbies may perceive a problem
>> with MC instead of their settings or network problems.
>>
>> Hernán
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Gary Chambers-4
Surely the http response could be used to generate an appropriate
exception/return-value to be handled in the domain (Monticello itself).
I've not tripped myself up recently on the credential thing but, from
memory, it was clear that credentials were the issue.

Regards, Gary

----- Original Message -----
From: "Dale Henrichs" <[hidden email]>
To: <[hidden email]>
Sent: Tuesday, June 15, 2010 6:11 PM
Subject: Re: [Pharo-project] MC breakage in 1.1


In GLASS, I have arranged to prompt for new/missing credentials when the
save fails due to an HTTP error ... It's a bit of a hack, since the HTTP
client doesn't throw an error, but it is better than the alternative ...
only experts know how to fix the credentials using the debugger:)

In my case I wanted to minimize changes to the HTTP client, but I would
think that for Pharo, explicit error handling would be an improvement
for the HTTP client anyway...

Dale

Stéphane Ducasse wrote:

> before reverting it
> could we not have another solution ;)
> Because indeed I never went inside the debugger to catch the credentials
> Stef
>
>
> On Jun 15, 2010, at 9:25 AM, Hernán Morales Durand wrote:
>
>> 2010/6/15 Lukas Renggli <[hidden email]>:
>>>> This is because "2" should not be created. If a copy cannot be saved
>>>> then there is no reason to increment the version number with the
>>>> failed attempt. May deserve another issue entry?
>>>>
>>>> Please comment I would like to read opinions on this.
>>> I noticed this problem too. The previous behavior was better, at least
>>> if you knew how to fix you credentials in the debugger.
>>>
>> Ok then revert the change if you like, although the Debugger is
>> probably the most powerful tool we have I see it as a tool for editing
>> code, not configurations (I've never heard of anyone going though
>> Debugger to set credentials in MC) and newbies may perceive a problem
>> with MC instead of their settings or network problems.
>>
>> Hernán
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project 


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Julian Fitzell-2
In reply to this post by hernanmd
The Copy button allows you to copy the version from your cache to
whatever repository you want. I never used the debugger to fix the
problem (agreed a debugger is not very nice) but simply went to the MC
repository list, edited the repository, and then simply used Copy to
put the version where I wanted.

I'm not saying this is the greatest behaviour ever, but it at least
allowed you to deal with the problem easily when it occurred. If
people want to come up with a better behaviour that uses exceptions
and so on, feel free; all I'm saying is that as far as I'm concerned
the current behaviour is less helpful than the previous behaviour when
this (common) error happens.

Julian

On Tue, Jun 15, 2010 at 2:12 AM, Hernán Morales Durand
<[hidden email]> wrote:

> Hi Julian,
>
> 2010/6/15 Julian Fitzell <[hidden email]>:
>> It seems that in Pharo 1.1 MC no longer displays the Version window
>> after a failed commit attempt (due to missing authentication for
>> example). As a result, cannot easily resubmit the version after fixing
>> the credentials.
>>
>
> This is the issue, http://code.google.com/p/pharo/issues/detail?id=2260
>
> please reopen if necessary but in the old version the "Version window"
> is a pluggable standard window with a MCVersionInspector as model and
>
> 1) I saw no button to resubmit the version in this Window. The buttons
> are : Browse, History, Changes, Load, Merge, Adopt, Copy, Diff
> 2) A Debugger window was opened and used as an information dialog even
> when there's nothing to Debug (most failure cases are user errors like
> missing credentials). The Proceed button was used as Resubmit/Retry
> after the credentials were corrected.
>
> I think a version window should be displayed for a succesful save, not
> for every failed save attempt (imagine a script or a UI test which
> fails to save hundreds of packages). Actually #storeVersion: should
> trigger specific exceptions for every kind of failure so appropiate
> handlers could be implemented for different scenarios.
>
>> In fact, as I look further, it's worse than that. Let's say I had
>> version 1 and changed two methods. After the failed commit the
>> following seems to be the situation:
>>
>> - The ancestor of my working copy is 2 instead of 1 (confirmed with History)
>> - The working copy is dirty
>> - The Changes button shows the same two modified methods that I was
>> trying to save into 2
>> - The diff between 1 and 2 shows the two modified methods
>> - The diff between 2 and my image (as selected from the History
>> window) shows no changes
>
> This is because "2" should not be created. If a copy cannot be saved
> then there is no reason to increment the version number with the
> failed attempt. May deserve another issue entry?
>
> Please comment I would like to read opinions on this.
>
> Hernán
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

hernanmd
Ok, I have a question, it is really necessary to create and save a
working copy in the default cache when the Save button is pressed and
there are no valid credentials for the selected repository? Why would
you need to save a new version in a cache even though you don't have
permission to save in the repository you have selected in the first
instance? it seems to me the Save button is saving user intentions to
save in the form of new versions in a cache. It isn't supposed MC
should to cache versions which are truly saved?.

(I did a funny script to confirm, creating 2000 files for free in
local package-cache :)
| repo wc |
repo := MCHttpRepository location:
'http://www.squeaksource.com/DependencyWalker' user: '' password: ''.
wc := MCWorkingCopy forPackage: (MCPackage named: 'TestSaveMC1').
1 to: 2000 do: [ : i | | v |
        v := wc newVersionWithName: 'TestSaveMC1-hfm. ' , i asString message:
'nothing'.
        [ repo storeVersion: v ] on: Error do: [: ex | ] ]

I think #canSave could answer <false> if credentials are invalid for
the selected repository, and then nothing is saved in the cache
presumably avoiding the ancestor/working copy mismatch that Julian has
described.

Also exploring the MCRepositoryGroup I've noted the useCache instVar
is never disabled. This is another way to go.

Opinions?

Hernán

2010/6/15 Julian Fitzell <[hidden email]>:

> The Copy button allows you to copy the version from your cache to
> whatever repository you want. I never used the debugger to fix the
> problem (agreed a debugger is not very nice) but simply went to the MC
> repository list, edited the repository, and then simply used Copy to
> put the version where I wanted.
>
> I'm not saying this is the greatest behaviour ever, but it at least
> allowed you to deal with the problem easily when it occurred. If
> people want to come up with a better behaviour that uses exceptions
> and so on, feel free; all I'm saying is that as far as I'm concerned
> the current behaviour is less helpful than the previous behaviour when
> this (common) error happens.
>
> Julian
>
> On Tue, Jun 15, 2010 at 2:12 AM, Hernán Morales Durand
> <[hidden email]> wrote:
>> Hi Julian,
>>
>> 2010/6/15 Julian Fitzell <[hidden email]>:
>>> It seems that in Pharo 1.1 MC no longer displays the Version window
>>> after a failed commit attempt (due to missing authentication for
>>> example). As a result, cannot easily resubmit the version after fixing
>>> the credentials.
>>>
>>
>> This is the issue, http://code.google.com/p/pharo/issues/detail?id=2260
>>
>> please reopen if necessary but in the old version the "Version window"
>> is a pluggable standard window with a MCVersionInspector as model and
>>
>> 1) I saw no button to resubmit the version in this Window. The buttons
>> are : Browse, History, Changes, Load, Merge, Adopt, Copy, Diff
>> 2) A Debugger window was opened and used as an information dialog even
>> when there's nothing to Debug (most failure cases are user errors like
>> missing credentials). The Proceed button was used as Resubmit/Retry
>> after the credentials were corrected.
>>
>> I think a version window should be displayed for a succesful save, not
>> for every failed save attempt (imagine a script or a UI test which
>> fails to save hundreds of packages). Actually #storeVersion: should
>> trigger specific exceptions for every kind of failure so appropiate
>> handlers could be implemented for different scenarios.
>>
>>> In fact, as I look further, it's worse than that. Let's say I had
>>> version 1 and changed two methods. After the failed commit the
>>> following seems to be the situation:
>>>
>>> - The ancestor of my working copy is 2 instead of 1 (confirmed with History)
>>> - The working copy is dirty
>>> - The Changes button shows the same two modified methods that I was
>>> trying to save into 2
>>> - The diff between 1 and 2 shows the two modified methods
>>> - The diff between 2 and my image (as selected from the History
>>> window) shows no changes
>>
>> This is because "2" should not be created. If a copy cannot be saved
>> then there is no reason to increment the version number with the
>> failed attempt. May deserve another issue entry?
>>
>> Please comment I would like to read opinions on this.
>>
>> Hernán
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Julian Fitzell-2
It used to be that you would lose your commit message - that alone
might have been reason enough to save it to the cache first. Given
that the previous commit messages are now remembered, I agree it seems
less important (as far as I can see anyway).

Julian

On Wed, Jun 16, 2010 at 7:38 AM, Hernán Morales Durand
<[hidden email]> wrote:

> Ok, I have a question, it is really necessary to create and save a
> working copy in the default cache when the Save button is pressed and
> there are no valid credentials for the selected repository? Why would
> you need to save a new version in a cache even though you don't have
> permission to save in the repository you have selected in the first
> instance? it seems to me the Save button is saving user intentions to
> save in the form of new versions in a cache. It isn't supposed MC
> should to cache versions which are truly saved?.
>
> (I did a funny script to confirm, creating 2000 files for free in
> local package-cache :)
> | repo wc |
> repo := MCHttpRepository location:
> 'http://www.squeaksource.com/DependencyWalker' user: '' password: ''.
> wc := MCWorkingCopy forPackage: (MCPackage named: 'TestSaveMC1').
> 1 to: 2000 do: [ : i | | v |
>        v := wc newVersionWithName: 'TestSaveMC1-hfm. ' , i asString message:
> 'nothing'.
>        [ repo storeVersion: v ] on: Error do: [: ex | ] ]
>
> I think #canSave could answer <false> if credentials are invalid for
> the selected repository, and then nothing is saved in the cache
> presumably avoiding the ancestor/working copy mismatch that Julian has
> described.
>
> Also exploring the MCRepositoryGroup I've noted the useCache instVar
> is never disabled. This is another way to go.
>
> Opinions?
>
> Hernán
>
> 2010/6/15 Julian Fitzell <[hidden email]>:
>> The Copy button allows you to copy the version from your cache to
>> whatever repository you want. I never used the debugger to fix the
>> problem (agreed a debugger is not very nice) but simply went to the MC
>> repository list, edited the repository, and then simply used Copy to
>> put the version where I wanted.
>>
>> I'm not saying this is the greatest behaviour ever, but it at least
>> allowed you to deal with the problem easily when it occurred. If
>> people want to come up with a better behaviour that uses exceptions
>> and so on, feel free; all I'm saying is that as far as I'm concerned
>> the current behaviour is less helpful than the previous behaviour when
>> this (common) error happens.
>>
>> Julian
>>
>> On Tue, Jun 15, 2010 at 2:12 AM, Hernán Morales Durand
>> <[hidden email]> wrote:
>>> Hi Julian,
>>>
>>> 2010/6/15 Julian Fitzell <[hidden email]>:
>>>> It seems that in Pharo 1.1 MC no longer displays the Version window
>>>> after a failed commit attempt (due to missing authentication for
>>>> example). As a result, cannot easily resubmit the version after fixing
>>>> the credentials.
>>>>
>>>
>>> This is the issue, http://code.google.com/p/pharo/issues/detail?id=2260
>>>
>>> please reopen if necessary but in the old version the "Version window"
>>> is a pluggable standard window with a MCVersionInspector as model and
>>>
>>> 1) I saw no button to resubmit the version in this Window. The buttons
>>> are : Browse, History, Changes, Load, Merge, Adopt, Copy, Diff
>>> 2) A Debugger window was opened and used as an information dialog even
>>> when there's nothing to Debug (most failure cases are user errors like
>>> missing credentials). The Proceed button was used as Resubmit/Retry
>>> after the credentials were corrected.
>>>
>>> I think a version window should be displayed for a succesful save, not
>>> for every failed save attempt (imagine a script or a UI test which
>>> fails to save hundreds of packages). Actually #storeVersion: should
>>> trigger specific exceptions for every kind of failure so appropiate
>>> handlers could be implemented for different scenarios.
>>>
>>>> In fact, as I look further, it's worse than that. Let's say I had
>>>> version 1 and changed two methods. After the failed commit the
>>>> following seems to be the situation:
>>>>
>>>> - The ancestor of my working copy is 2 instead of 1 (confirmed with History)
>>>> - The working copy is dirty
>>>> - The Changes button shows the same two modified methods that I was
>>>> trying to save into 2
>>>> - The diff between 1 and 2 shows the two modified methods
>>>> - The diff between 2 and my image (as selected from the History
>>>> window) shows no changes
>>>
>>> This is because "2" should not be created. If a copy cannot be saved
>>> then there is no reason to increment the version number with the
>>> failed attempt. May deserve another issue entry?
>>>
>>> Please comment I would like to read opinions on this.
>>>
>>> Hernán
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: MC breakage in 1.1

Stéphane Ducasse
In reply to this post by hernanmd
yes this would be a good alternative.

On Jun 16, 2010, at 8:38 AM, Hernán Morales Durand wrote:

> Ok, I have a question, it is really necessary to create and save a
> working copy in the default cache when the Save button is pressed and
> there are no valid credentials for the selected repository? Why would
> you need to save a new version in a cache even though you don't have
> permission to save in the repository you have selected in the first
> instance? it seems to me the Save button is saving user intentions to
> save in the form of new versions in a cache. It isn't supposed MC
> should to cache versions which are truly saved?.
>
> (I did a funny script to confirm, creating 2000 files for free in
> local package-cache :)
> | repo wc |
> repo := MCHttpRepository location:
> 'http://www.squeaksource.com/DependencyWalker' user: '' password: ''.
> wc := MCWorkingCopy forPackage: (MCPackage named: 'TestSaveMC1').
> 1 to: 2000 do: [ : i | | v |
> v := wc newVersionWithName: 'TestSaveMC1-hfm. ' , i asString message:
> 'nothing'.
> [ repo storeVersion: v ] on: Error do: [: ex | ] ]
>
> I think #canSave could answer <false> if credentials are invalid for
> the selected repository, and then nothing is saved in the cache
> presumably avoiding the ancestor/working copy mismatch that Julian has
> described.
>
> Also exploring the MCRepositoryGroup I've noted the useCache instVar
> is never disabled. This is another way to go.
>
> Opinions?
>
> Hernán
>
> 2010/6/15 Julian Fitzell <[hidden email]>:
>> The Copy button allows you to copy the version from your cache to
>> whatever repository you want. I never used the debugger to fix the
>> problem (agreed a debugger is not very nice) but simply went to the MC
>> repository list, edited the repository, and then simply used Copy to
>> put the version where I wanted.
>>
>> I'm not saying this is the greatest behaviour ever, but it at least
>> allowed you to deal with the problem easily when it occurred. If
>> people want to come up with a better behaviour that uses exceptions
>> and so on, feel free; all I'm saying is that as far as I'm concerned
>> the current behaviour is less helpful than the previous behaviour when
>> this (common) error happens.
>>
>> Julian
>>
>> On Tue, Jun 15, 2010 at 2:12 AM, Hernán Morales Durand
>> <[hidden email]> wrote:
>>> Hi Julian,
>>>
>>> 2010/6/15 Julian Fitzell <[hidden email]>:
>>>> It seems that in Pharo 1.1 MC no longer displays the Version window
>>>> after a failed commit attempt (due to missing authentication for
>>>> example). As a result, cannot easily resubmit the version after fixing
>>>> the credentials.
>>>>
>>>
>>> This is the issue, http://code.google.com/p/pharo/issues/detail?id=2260
>>>
>>> please reopen if necessary but in the old version the "Version window"
>>> is a pluggable standard window with a MCVersionInspector as model and
>>>
>>> 1) I saw no button to resubmit the version in this Window. The buttons
>>> are : Browse, History, Changes, Load, Merge, Adopt, Copy, Diff
>>> 2) A Debugger window was opened and used as an information dialog even
>>> when there's nothing to Debug (most failure cases are user errors like
>>> missing credentials). The Proceed button was used as Resubmit/Retry
>>> after the credentials were corrected.
>>>
>>> I think a version window should be displayed for a succesful save, not
>>> for every failed save attempt (imagine a script or a UI test which
>>> fails to save hundreds of packages). Actually #storeVersion: should
>>> trigger specific exceptions for every kind of failure so appropiate
>>> handlers could be implemented for different scenarios.
>>>
>>>> In fact, as I look further, it's worse than that. Let's say I had
>>>> version 1 and changed two methods. After the failed commit the
>>>> following seems to be the situation:
>>>>
>>>> - The ancestor of my working copy is 2 instead of 1 (confirmed with History)
>>>> - The working copy is dirty
>>>> - The Changes button shows the same two modified methods that I was
>>>> trying to save into 2
>>>> - The diff between 1 and 2 shows the two modified methods
>>>> - The diff between 2 and my image (as selected from the History
>>>> window) shows no changes
>>>
>>> This is because "2" should not be created. If a copy cannot be saved
>>> then there is no reason to increment the version number with the
>>> failed attempt. May deserve another issue entry?
>>>
>>> Please comment I would like to read opinions on this.
>>>
>>> Hernán
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project