>
> This is really strange, I also got the same problem a couple of weeks ago.
> I imgaine that you are working with a 50 image.


Yes, image number 50074.


Now you can also get in this situation when you open twice the same image
> and do parallel edits.
>
> Can you open your change file with emacs and see a bit the code?
>

Yesterday I spent some time looking inside the .changes to try to
understand and reproduce what I did.
Apparently, from what I understood in the .changes file, it seems like I
managed to somehow open twice the same image and save both of them under
different names. So basically the image I opened first is working correctly
and the one I opened second is not because it couldn't write in the
.changes file.
Now, I'm pretty sure I didn't really work with twice the same image,
however, I remember clearly that while I was working on this image, I
wanted to open another one and I failed and I opened the same one. When I
saw the warning message I realized what I did and wanted to close the
image. But here I failed again and I hit "save and quit" instead of just
"quit". I still have this image in this state and everytime I open it I can
see the warning message fading. Now i'm not sure what it means inside the
.image.

So, what I think I did was :

1) Opened an image and made some changes and executed them.
2) Opened the same image and immediately hit "save and quit"
3) Continued working with the 1rst image and then saved it with another
name.

However, I can never reproduce anything when I try. Either nothing bad
happens either Pharo tells me it cannot write in a read-only file.
Another thing I don't understand is that I have two images that come from
the same initial one but there is never any mention of a quit and / or
startup in the .changes file.

[image: Images intégrées 1]


*.changes of B : *
----SNAPSHOT----2015-06-30T09:35:50.61325+02:00 A.image priorSource:
13729471!
List of changes ...
----SNAPSHOT----2015-06-30T09:47:17.45725+02:00 B.image priorSource:
13734344!
Some other changes ...

etc.

*.changes of C : *
----SNAPSHOT----2015-06-30T09:35:50.61325+02:00 2015-06-30_A.image
priorSource: 13729471!
List of changes ... (exactly the same ones than above)
----SNAPSHOT----2015-06-30T14:15:02.7975+02:00 C.image priorSource:
13740384!
----SNAPSHOT----2015-06-30T14:16:46.1275+02:00 C.image priorSource:
13740384!
----STARTUP----2015-06-30T14:26:03.18475+02:00 as D:\MyPath\C.image!
Some other changes ... (different from the ones above)

So what bothers me is that after saving the A.image to B.image I also saved
A.image to C.image but there is no mention of a Startup of A.image in
between.
Also I don't know what the "priorSource" means.
So I still don't really know :(


if your image is running and your tests are green then we should be able to
> recover the decompiled version.
>

I found an image which had the decompiled version in it so I backed up
everything and I should be fine now :) Thanks !
But i'd still like to find a way to reproduce this for the record.


This is normal:
>     the image is executing bytecodes and it uses the source files
> (changes) only for us the human ie when we open a tool that requires
> showing text.
>     when we do so if the sources is not available, the system decompile
> the bytecodes and present to us a version based on bytecodes.
>


Okay, thank you for the explanations. I find it funny, however, that in
this situation Nautilus does not allow me to do anything whereas I can do
(almost ?) everything I want with the finder.



2015-07-06 21:40 GMT+02:00 stepharo <steph...@free.fr>:

>  Mathieu
>
> if your image is running and your tests are green then we should be able
> to recover the decompiled version.
>
>
>
>  I did some testings and I found a way to reproduce what I experienced :
>  If you manually rename an image without renaming the .changes you cannot
> browse the code inside Nautilus without getting errors. However, you can
> use the finder just fine to find any method. These methods are decompiled
> methods (with variable names in t1 t2 etc.) but you can modify them without
> getting errors. Then you can save your image and it works fine.
>  Now if you rename the image to the name it had in the first place you
> can use it properly but the method you modified in between will be broken
> at some point.
>
>
> This is normal:
>     the image is executing bytecodes and it uses the source files
> (changes) only for us the human ie when we open a tool that requires
> showing text.
>     when we do so if the sources is not available, the system decompile
> the bytecodes and present to us a version based on bytecodes.
>
> Stef
>
>
>  But to be honest, even if it kinds of reproduce my problem I am not sure
> this is what i did. Maybe I manually renamed the image, that's definitely
> possible, but i don't remember re-renaming it to its prior name. Moreover,
> when doing so you end up with a new .changes file which is very small and
> has the source code of the methods you modified and I don't have any small
> .changes file.
>
>  I am still quite unsure at this point.
>
> 2015-07-06 10:36 GMT+02:00 Nicolai Hess <nicolaih...@web.de>:
>
>>
>>
>> 2015-07-06 9:55 GMT+02:00 Matthieu Lacaton <matthieu.laca...@gmail.com>:
>>
>>>    Hello,
>>>
>>>  I would just like to report something that happened to me today.
>>>
>>>  As I was working on a project, I tried inserting an instance variable
>>> to one of my classes.
>>>  Starting from this moment something became very weird. First, some
>>> subclasses were not listed as subclasses anymore, then I realised during
>>> the execution that allocating my new instance variable was actually
>>> modifying another instance variable.
>>>
>>>  I tried digging up a bit and I found out that many of my methods were a
>>> complete mess.
>>>  When browsing with Nautilus the title of the method was for example:
>>> "addProperty:key:". However the corpse of the method was totally random
>>> with something like that for example:
>>> "ient;
>>>         width: 1.
>>>     graphic strokeStyle: _strokeStyle"
>>>
>>>  So, reportedly, the name of the method was "ient;" ...
>>>
>>>  Basically I had many methods where the source code was just random
>>> chunks of other methods.
>>>
>>>  The funnier thing is that everything worked perfectly fine during
>>> execution.
>>>
>>>  I tried to look at different backup images I had to see when
>>> everything began to go wrong and I realised I had been working with broken
>>> source code for about a week.
>>>
>>
>>  What image version did you use?
>>
>>
>>
>>>
>>>  So if I understand correctly, I probably messed up with the .changes
>>> file (I don't remembr how but maybe I copied the .image without the
>>> .changes or renamed the .image or i don't know).
>>>  And now the compiled code is okay but the source code is lost so
>>> everything is working fine until the system tries to recompile everything ?
>>>
>>>  Now my question is : is there a way to fix the issue ? I tried
>>> exporting the package to a .mcz but I had bugs everywhere. I imported the
>>> old working package to an .mcz and tried browsing the differences with the
>>> broken one just to manually get back eveything I changed during this week.
>>> But I couldn't cause there were bugs everytime I tried to browse the
>>> changes. Basically, are all my changes definitely lost or is there a way to
>>> get it back somehow (at least the raw source code) ?
>>>
>>
>>  Maybe you can iterator over all methods decompile, and save as new code?
>>  Maybe you can open the image without the changes file and try to create
>> a package or file out the package?
>>
>>
>>>
>>>  I know that I fucked up and this is my fault but it would have been
>>> nice if something (anything) told me earlier that I did something wrong.
>>> I've been adding / modifying lots of methods and even executing the program
>>> for a week now and absolutely nothing told me that something was wrong
>>> until I tried adding an instance variable.
>>>
>>
>>  No, not your fault, this should not happen. The changes file is for
>> "recover if you messed up the image". If the changes file gets corrupted,
>> then this is a serious bug.
>>
>>
>>>
>>>  I am in a situation where I actually wrote and "saved" code and now it
>>> seems lost... that's frustrating :(
>>>
>>>  Thanks,
>>>
>>>  Matthieu
>>>
>>
>>
>
>

Reply via email to