Problem with Iceberg and Working Branches

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

Problem with Iceberg and Working Branches

darth-cheney
I have already mentioned some of this on Discord so forgive me for being redundant if you've seen it.

I'm having problems loading into the latest P7 images from Launcher a working branch of Pharo that I have forked. I perform the following steps:
1. "Repair" the missing local repository for Pharo and load from my forked version on Github
2. Now in the "detached working copy" state, I repair again
3. This time I select "Discard local changes and checkout existing branch". I select my working branch from the remotes
4. It will attempt to load, but eventually a popup appears (not a normal error) that simply says "origin: Error" and "Assertion failed".

I'm not sure what's going on, since this procedure seemed to work a week or so ago if I remember correctly. As of a couple of days ago I can no longer load (ie work on) my working branch.

I figure I'm doing something wrong, but need to know what.


--
Eric
Reply | Threaded
Open this post in threaded view
|

Re: Problem with Iceberg and Working Branches

Guillermo Polito
Hi!

On Wed, Aug 1, 2018 at 1:30 PM Eric Gade <[hidden email]> wrote:
I have already mentioned some of this on Discord so forgive me for being redundant if you've seen it.

I'm having problems loading into the latest P7 images from Launcher a working branch of Pharo that I have forked. I perform the following steps:

I'll try to reproduce it, but meanwhile.
 
1. "Repair" the missing local repository for Pharo and load from my forked version on Github
2. Now in the "detached working copy" state, I repair again
3. This time I select "Discard local changes and checkout existing branch". I select my working branch from the remotes

I have a remark on this step, that should be known and understood by people contributing Pharo. 
- When you download an image, that image knows from which commit it was built. This is done on purpose so then you can continue working from exactly that commit (less merge problems, do not need to update your live image...).
- Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

What this means, is that if you checkout an old branch, Iceberg will try to "downgrade" all your packages to your branch's version, and that may not always work, because while updating pharo packages you may break running code and running instances (take into account you have several processes running). This is the same problem of the old "Software update" option in Pharo that was deprecated and removed some time ago already. And this is why in general we do not recommend nowadays to update a pharo image through iceberg, because you cause a kind of self brain-surgery scenario.

This is why also we DO recommend, when you start with a new image to "create a new branch from the image commit". Because this option makes you work on a branch that is 100% in sync with your Pharo image and it will just simplify your life :).

For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do
 - load your fork
 - create *new* branch from image
 - merge your old branch into this new one

That will be by far less disruptive.
 
4. It will attempt to load, but eventually a popup appears (not a normal error) that simply says "origin: Error" and "Assertion failed".

You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?
 

I'm not sure what's going on, since this procedure seemed to work a week or so ago if I remember correctly. As of a couple of days ago I can no longer load (ie work on) my working branch.

Well, this is for sure related to what I described above, using a new image with an old branch....
 

I figure I'm doing something wrong, but need to know what.

Maybe not, and it's just a matter of a complex scenario + an unexpected case in iceberg (thus the assertion).

Keep us updated to see if we can help you,
Guille
Reply | Threaded
Open this post in threaded view
|

Re: Problem with Iceberg and Working Branches

Guillermo Polito
Ah, just in case I add to what I say: this particular tricky scenario is specific for Pharo and contributing to Pharo. 

Any third party project/library will not have the constraints described in my previous email.

On Wed, Aug 1, 2018 at 1:48 PM Guillermo Polito <[hidden email]> wrote:
Hi!

On Wed, Aug 1, 2018 at 1:30 PM Eric Gade <[hidden email]> wrote:
I have already mentioned some of this on Discord so forgive me for being redundant if you've seen it.

I'm having problems loading into the latest P7 images from Launcher a working branch of Pharo that I have forked. I perform the following steps:

I'll try to reproduce it, but meanwhile.
 
1. "Repair" the missing local repository for Pharo and load from my forked version on Github
2. Now in the "detached working copy" state, I repair again
3. This time I select "Discard local changes and checkout existing branch". I select my working branch from the remotes

I have a remark on this step, that should be known and understood by people contributing Pharo. 
- When you download an image, that image knows from which commit it was built. This is done on purpose so then you can continue working from exactly that commit (less merge problems, do not need to update your live image...).
- Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

What this means, is that if you checkout an old branch, Iceberg will try to "downgrade" all your packages to your branch's version, and that may not always work, because while updating pharo packages you may break running code and running instances (take into account you have several processes running). This is the same problem of the old "Software update" option in Pharo that was deprecated and removed some time ago already. And this is why in general we do not recommend nowadays to update a pharo image through iceberg, because you cause a kind of self brain-surgery scenario.

This is why also we DO recommend, when you start with a new image to "create a new branch from the image commit". Because this option makes you work on a branch that is 100% in sync with your Pharo image and it will just simplify your life :).

For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do
 - load your fork
 - create *new* branch from image
 - merge your old branch into this new one

That will be by far less disruptive.
 
4. It will attempt to load, but eventually a popup appears (not a normal error) that simply says "origin: Error" and "Assertion failed".

You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?
 

I'm not sure what's going on, since this procedure seemed to work a week or so ago if I remember correctly. As of a couple of days ago I can no longer load (ie work on) my working branch.

Well, this is for sure related to what I described above, using a new image with an old branch....
 

I figure I'm doing something wrong, but need to know what.

Maybe not, and it's just a matter of a complex scenario + an unexpected case in iceberg (thus the assertion).

Keep us updated to see if we can help you,
Guille


--

   

Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - http://www.cnrs.fr


Web: http://guillep.github.io

Phone: +33 06 52 70 66 13

Reply | Threaded
Open this post in threaded view
|

Re: Problem with Iceberg and Working Branches

darth-cheney
Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

This is something I'm used to from the non-Pharo Git world. Normally I would do what it called "rebasing," which essentially replays any commits on my branch atop the HEAD of the current master branch. In cases where you know that the things you're working on are unlikely to have changed in the meantime, this tends to work most of the time.
 
For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do

I'll give this a shot in a little bit and let you know if it works.


You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?

No. This is not the normal error popup. It's more like a little dialog that only has text and an OK button. However, I was able to go into the repository via Iceberg and attempt to checkout the branch from origin directly. That did give me a normal error and I do have a fuel dump of the stack. Unfortunately it is too big to attach to emails to this list.

I will send a follow up message with the attachment, but it will need mod approval.

On Wed, Aug 1, 2018 at 7:52 AM, Guillermo Polito <[hidden email]> wrote:
Ah, just in case I add to what I say: this particular tricky scenario is specific for Pharo and contributing to Pharo. 

Any third party project/library will not have the constraints described in my previous email.

On Wed, Aug 1, 2018 at 1:48 PM Guillermo Polito <[hidden email]> wrote:
Hi!

On Wed, Aug 1, 2018 at 1:30 PM Eric Gade <[hidden email]> wrote:
I have already mentioned some of this on Discord so forgive me for being redundant if you've seen it.

I'm having problems loading into the latest P7 images from Launcher a working branch of Pharo that I have forked. I perform the following steps:

I'll try to reproduce it, but meanwhile.
 
1. "Repair" the missing local repository for Pharo and load from my forked version on Github
2. Now in the "detached working copy" state, I repair again
3. This time I select "Discard local changes and checkout existing branch". I select my working branch from the remotes

I have a remark on this step, that should be known and understood by people contributing Pharo. 
- When you download an image, that image knows from which commit it was built. This is done on purpose so then you can continue working from exactly that commit (less merge problems, do not need to update your live image...).
- Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

What this means, is that if you checkout an old branch, Iceberg will try to "downgrade" all your packages to your branch's version, and that may not always work, because while updating pharo packages you may break running code and running instances (take into account you have several processes running). This is the same problem of the old "Software update" option in Pharo that was deprecated and removed some time ago already. And this is why in general we do not recommend nowadays to update a pharo image through iceberg, because you cause a kind of self brain-surgery scenario.

This is why also we DO recommend, when you start with a new image to "create a new branch from the image commit". Because this option makes you work on a branch that is 100% in sync with your Pharo image and it will just simplify your life :).

For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do
 - load your fork
 - create *new* branch from image
 - merge your old branch into this new one

That will be by far less disruptive.
 
4. It will attempt to load, but eventually a popup appears (not a normal error) that simply says "origin: Error" and "Assertion failed".

You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?
 

I'm not sure what's going on, since this procedure seemed to work a week or so ago if I remember correctly. As of a couple of days ago I can no longer load (ie work on) my working branch.

Well, this is for sure related to what I described above, using a new image with an old branch....
 

I figure I'm doing something wrong, but need to know what.

Maybe not, and it's just a matter of a complex scenario + an unexpected case in iceberg (thus the assertion).

Keep us updated to see if we can help you,
Guille


--

   

Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - http://www.cnrs.fr


Web: http://guillep.github.io

Phone: +33 06 52 70 66 13




--
Eric
Reply | Threaded
Open this post in threaded view
|

Re: Problem with Iceberg and Working Branches

darth-cheney
Ok, so when I follow these steps:

 - load your fork
 - create *new* branch from image
 - merge your old branch into this new one

I get the same kind of error I was reporting above. While the previous email with the Fuel dump awaits mod approval, I'll just attach this screenshot so you can see what I mean


On Wed, Aug 1, 2018 at 8:02 AM, Eric Gade <[hidden email]> wrote:
Here is the fuel dump of the stack (attached)

On Wed, Aug 1, 2018 at 8:01 AM, Eric Gade <[hidden email]> wrote:
Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

This is something I'm used to from the non-Pharo Git world. Normally I would do what it called "rebasing," which essentially replays any commits on my branch atop the HEAD of the current master branch. In cases where you know that the things you're working on are unlikely to have changed in the meantime, this tends to work most of the time.
 
For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do

I'll give this a shot in a little bit and let you know if it works.


You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?

No. This is not the normal error popup. It's more like a little dialog that only has text and an OK button. However, I was able to go into the repository via Iceberg and attempt to checkout the branch from origin directly. That did give me a normal error and I do have a fuel dump of the stack. Unfortunately it is too big to attach to emails to this list.

I will send a follow up message with the attachment, but it will need mod approval.

On Wed, Aug 1, 2018 at 7:52 AM, Guillermo Polito <[hidden email]> wrote:
Ah, just in case I add to what I say: this particular tricky scenario is specific for Pharo and contributing to Pharo. 

Any third party project/library will not have the constraints described in my previous email.

On Wed, Aug 1, 2018 at 1:48 PM Guillermo Polito <[hidden email]> wrote:
Hi!

On Wed, Aug 1, 2018 at 1:30 PM Eric Gade <[hidden email]> wrote:
I have already mentioned some of this on Discord so forgive me for being redundant if you've seen it.

I'm having problems loading into the latest P7 images from Launcher a working branch of Pharo that I have forked. I perform the following steps:

I'll try to reproduce it, but meanwhile.
 
1. "Repair" the missing local repository for Pharo and load from my forked version on Github
2. Now in the "detached working copy" state, I repair again
3. This time I select "Discard local changes and checkout existing branch". I select my working branch from the remotes

I have a remark on this step, that should be known and understood by people contributing Pharo. 
- When you download an image, that image knows from which commit it was built. This is done on purpose so then you can continue working from exactly that commit (less merge problems, do not need to update your live image...).
- Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

What this means, is that if you checkout an old branch, Iceberg will try to "downgrade" all your packages to your branch's version, and that may not always work, because while updating pharo packages you may break running code and running instances (take into account you have several processes running). This is the same problem of the old "Software update" option in Pharo that was deprecated and removed some time ago already. And this is why in general we do not recommend nowadays to update a pharo image through iceberg, because you cause a kind of self brain-surgery scenario.

This is why also we DO recommend, when you start with a new image to "create a new branch from the image commit". Because this option makes you work on a branch that is 100% in sync with your Pharo image and it will just simplify your life :).

For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do
 - load your fork
 - create *new* branch from image
 - merge your old branch into this new one

That will be by far less disruptive.
 
4. It will attempt to load, but eventually a popup appears (not a normal error) that simply says "origin: Error" and "Assertion failed".

You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?
 

I'm not sure what's going on, since this procedure seemed to work a week or so ago if I remember correctly. As of a couple of days ago I can no longer load (ie work on) my working branch.

Well, this is for sure related to what I described above, using a new image with an old branch....
 

I figure I'm doing something wrong, but need to know what.

Maybe not, and it's just a matter of a complex scenario + an unexpected case in iceberg (thus the assertion).

Keep us updated to see if we can help you,
Guille


--

   

Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - http://www.cnrs.fr


Web: http://guillep.github.io

Phone: +33 06 52 70 66 13




--
Eric



--
Eric



--
Eric

Screen Shot 2018-08-01 at 8.08.41 AM.png (137K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Problem with Iceberg and Working Branches

Guillermo Polito
In reply to this post by darth-cheney


On Wed, Aug 1, 2018 at 2:02 PM Eric Gade <[hidden email]> wrote:
Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

This is something I'm used to from the non-Pharo Git world. Normally I would do what it called "rebasing," which essentially replays any commits on my branch atop the HEAD of the current master branch. In cases where you know that the things you're working on are unlikely to have changed in the meantime, this tends to work most of the time.

Well we do not support rebase in iceberg yet. In part because we would like to keep the UI as simple as possible (because lots of people do not really know git) and in part because I personally believe rebase as an evil feature that people tend to overuse. (That does not mean that rebase is bad in itself, I actually use it myself from time to time, but I'm strongly against rewriting public commits/history).
 
 
For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do

I'll give this a shot in a little bit and let you know if it works.

Cool! 


You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?

No. This is not the normal error popup. It's more like a little dialog that only has text and an OK button. However, I was able to go into the repository via Iceberg and attempt to checkout the branch from origin directly. That did give me a normal error and I do have a fuel dump of the stack. Unfortunately it is too big to attach to emails to this list.

If you want, send me a dropbox link or something like that personally...
 

I will send a follow up message with the attachment, but it will need mod approval.

On Wed, Aug 1, 2018 at 7:52 AM, Guillermo Polito <[hidden email]> wrote:
Ah, just in case I add to what I say: this particular tricky scenario is specific for Pharo and contributing to Pharo. 

Any third party project/library will not have the constraints described in my previous email.

On Wed, Aug 1, 2018 at 1:48 PM Guillermo Polito <[hidden email]> wrote:
Hi!

On Wed, Aug 1, 2018 at 1:30 PM Eric Gade <[hidden email]> wrote:
I have already mentioned some of this on Discord so forgive me for being redundant if you've seen it.

I'm having problems loading into the latest P7 images from Launcher a working branch of Pharo that I have forked. I perform the following steps:

I'll try to reproduce it, but meanwhile.
 
1. "Repair" the missing local repository for Pharo and load from my forked version on Github
2. Now in the "detached working copy" state, I repair again
3. This time I select "Discard local changes and checkout existing branch". I select my working branch from the remotes

I have a remark on this step, that should be known and understood by people contributing Pharo. 
- When you download an image, that image knows from which commit it was built. This is done on purpose so then you can continue working from exactly that commit (less merge problems, do not need to update your live image...).
- Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

What this means, is that if you checkout an old branch, Iceberg will try to "downgrade" all your packages to your branch's version, and that may not always work, because while updating pharo packages you may break running code and running instances (take into account you have several processes running). This is the same problem of the old "Software update" option in Pharo that was deprecated and removed some time ago already. And this is why in general we do not recommend nowadays to update a pharo image through iceberg, because you cause a kind of self brain-surgery scenario.

This is why also we DO recommend, when you start with a new image to "create a new branch from the image commit". Because this option makes you work on a branch that is 100% in sync with your Pharo image and it will just simplify your life :).

For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do
 - load your fork
 - create *new* branch from image
 - merge your old branch into this new one

That will be by far less disruptive.
 
4. It will attempt to load, but eventually a popup appears (not a normal error) that simply says "origin: Error" and "Assertion failed".

You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?
 

I'm not sure what's going on, since this procedure seemed to work a week or so ago if I remember correctly. As of a couple of days ago I can no longer load (ie work on) my working branch.

Well, this is for sure related to what I described above, using a new image with an old branch....
 

I figure I'm doing something wrong, but need to know what.

Maybe not, and it's just a matter of a complex scenario + an unexpected case in iceberg (thus the assertion).

Keep us updated to see if we can help you,
Guille


--

   

Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - http://www.cnrs.fr


Web: http://guillep.github.io

Phone: +33 06 52 70 66 13




--
Eric


--

   

Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - http://www.cnrs.fr


Web: http://guillep.github.io

Phone: +33 06 52 70 66 13

Reply | Threaded
Open this post in threaded view
|

Re: Problem with Iceberg and Working Branches

EstebanLM


On 1 Aug 2018, at 14:10, Guillermo Polito <[hidden email]> wrote:



On Wed, Aug 1, 2018 at 2:02 PM Eric Gade <[hidden email]> wrote:
Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

This is something I'm used to from the non-Pharo Git world. Normally I would do what it called "rebasing," which essentially replays any commits on my branch atop the HEAD of the current master branch. In cases where you know that the things you're working on are unlikely to have changed in the meantime, this tends to work most of the time.

Well we do not support rebase in iceberg yet. In part because we would like to keep the UI as simple as possible (because lots of people do not really know git) and in part because I personally believe rebase as an evil feature that people tend to overuse. (That does not mean that rebase is bad in itself, I actually use it myself from time to time, but I'm strongly against rewriting public commits/history).

I support this ^ 

:)

 
  
For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do

I'll give this a shot in a little bit and let you know if it works.

Cool! 


You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?

No. This is not the normal error popup. It's more like a little dialog that only has text and an OK button. However, I was able to go into the repository via Iceberg and attempt to checkout the branch from origin directly. That did give me a normal error and I do have a fuel dump of the stack. Unfortunately it is too big to attach to emails to this list. 

If you want, send me a dropbox link or something like that personally...
 

I will send a follow up message with the attachment, but it will need mod approval. 

On Wed, Aug 1, 2018 at 7:52 AM, Guillermo Polito <[hidden email]> wrote:
Ah, just in case I add to what I say: this particular tricky scenario is specific for Pharo and contributing to Pharo. 

Any third party project/library will not have the constraints described in my previous email.

On Wed, Aug 1, 2018 at 1:48 PM Guillermo Polito <[hidden email]> wrote:
Hi!

On Wed, Aug 1, 2018 at 1:30 PM Eric Gade <[hidden email]> wrote:
I have already mentioned some of this on Discord so forgive me for being redundant if you've seen it.

I'm having problems loading into the latest P7 images from Launcher a working branch of Pharo that I have forked. I perform the following steps:

I'll try to reproduce it, but meanwhile.
 
1. "Repair" the missing local repository for Pharo and load from my forked version on Github
2. Now in the "detached working copy" state, I repair again
3. This time I select "Discard local changes and checkout existing branch". I select my working branch from the remotes

I have a remark on this step, that should be known and understood by people contributing Pharo. 
- When you download an image, that image knows from which commit it was built. This is done on purpose so then you can continue working from exactly that commit (less merge problems, do not need to update your live image...).
- Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

What this means, is that if you checkout an old branch, Iceberg will try to "downgrade" all your packages to your branch's version, and that may not always work, because while updating pharo packages you may break running code and running instances (take into account you have several processes running). This is the same problem of the old "Software update" option in Pharo that was deprecated and removed some time ago already. And this is why in general we do not recommend nowadays to update a pharo image through iceberg, because you cause a kind of self brain-surgery scenario.

This is why also we DO recommend, when you start with a new image to "create a new branch from the image commit". Because this option makes you work on a branch that is 100% in sync with your Pharo image and it will just simplify your life :).

For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do
 - load your fork
 - create *new* branch from image
 - merge your old branch into this new one

That will be by far less disruptive.
 
4. It will attempt to load, but eventually a popup appears (not a normal error) that simply says "origin: Error" and "Assertion failed".

You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?
 

I'm not sure what's going on, since this procedure seemed to work a week or so ago if I remember correctly. As of a couple of days ago I can no longer load (ie work on) my working branch.

Well, this is for sure related to what I described above, using a new image with an old branch....
 

I figure I'm doing something wrong, but need to know what.

Maybe not, and it's just a matter of a complex scenario + an unexpected case in iceberg (thus the assertion).

Keep us updated to see if we can help you,
Guille


-- 
   
Guille Polito
Research Engineer


Centre de Recherche en Informatique, Signal et Automatique de Lille
CRIStAL - UMR 9189
French National Center for Scientific Research - http://www.cnrs.fr

Phone: +33 06 52 70 66 13



-- 
Eric


-- 
   
Guille Polito
Research Engineer


Centre de Recherche en Informatique, Signal et Automatique de Lille
CRIStAL - UMR 9189
French National Center for Scientific Research - http://www.cnrs.fr

Phone: +33 06 52 70 66 13

Reply | Threaded
Open this post in threaded view
|

Re: Problem with Iceberg and Working Branches

darth-cheney
Guillermo has found a bug in Iceberg that is slotted to be fixed at the next update, and has provided a temporary workaround.
 
I have to final notes about the "merge" method:

1. After the merge, you must explore the packages and reload any that you've been working on in order to have classes of the correct versions. This was OK for me but might be a problem for people who work on classes all over the place;

2. When committing new changes to your locally merged branch, you will have to sift through every single package and class in the Commit window, since it sees now that just about everything has changed. Again, it helps to know what exactly you've been working on ahead of time. Perhaps a filter on package names (like in Calypso panes) would be a good start?

On Wed, Aug 1, 2018 at 9:25 AM, Esteban Lorenzano <[hidden email]> wrote:


On 1 Aug 2018, at 14:10, Guillermo Polito <[hidden email]> wrote:



On Wed, Aug 1, 2018 at 2:02 PM Eric Gade <[hidden email]> wrote:
Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

This is something I'm used to from the non-Pharo Git world. Normally I would do what it called "rebasing," which essentially replays any commits on my branch atop the HEAD of the current master branch. In cases where you know that the things you're working on are unlikely to have changed in the meantime, this tends to work most of the time.

Well we do not support rebase in iceberg yet. In part because we would like to keep the UI as simple as possible (because lots of people do not really know git) and in part because I personally believe rebase as an evil feature that people tend to overuse. (That does not mean that rebase is bad in itself, I actually use it myself from time to time, but I'm strongly against rewriting public commits/history).

I support this ^ 

:)

 
  
For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do

I'll give this a shot in a little bit and let you know if it works.

Cool! 


You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?

No. This is not the normal error popup. It's more like a little dialog that only has text and an OK button. However, I was able to go into the repository via Iceberg and attempt to checkout the branch from origin directly. That did give me a normal error and I do have a fuel dump of the stack. Unfortunately it is too big to attach to emails to this list. 

If you want, send me a dropbox link or something like that personally...
 

I will send a follow up message with the attachment, but it will need mod approval. 

On Wed, Aug 1, 2018 at 7:52 AM, Guillermo Polito <[hidden email]> wrote:
Ah, just in case I add to what I say: this particular tricky scenario is specific for Pharo and contributing to Pharo. 

Any third party project/library will not have the constraints described in my previous email.

On Wed, Aug 1, 2018 at 1:48 PM Guillermo Polito <[hidden email]> wrote:
Hi!

On Wed, Aug 1, 2018 at 1:30 PM Eric Gade <[hidden email]> wrote:
I have already mentioned some of this on Discord so forgive me for being redundant if you've seen it.

I'm having problems loading into the latest P7 images from Launcher a working branch of Pharo that I have forked. I perform the following steps:

I'll try to reproduce it, but meanwhile.
 
1. "Repair" the missing local repository for Pharo and load from my forked version on Github
2. Now in the "detached working copy" state, I repair again
3. This time I select "Discard local changes and checkout existing branch". I select my working branch from the remotes

I have a remark on this step, that should be known and understood by people contributing Pharo. 
- When you download an image, that image knows from which commit it was built. This is done on purpose so then you can continue working from exactly that commit (less merge problems, do not need to update your live image...).
- Every week some tenths of pull requests are integrated in Pharo, so loading the Pharo7 image of today will give you an image compleeetely different from the one you worked with one week ago.

What this means, is that if you checkout an old branch, Iceberg will try to "downgrade" all your packages to your branch's version, and that may not always work, because while updating pharo packages you may break running code and running instances (take into account you have several processes running). This is the same problem of the old "Software update" option in Pharo that was deprecated and removed some time ago already. And this is why in general we do not recommend nowadays to update a pharo image through iceberg, because you cause a kind of self brain-surgery scenario.

This is why also we DO recommend, when you start with a new image to "create a new branch from the image commit". Because this option makes you work on a branch that is 100% in sync with your Pharo image and it will just simplify your life :).

For your particular use case (have a new image and want to keep working on an old pharo branch), I'd suggest that instead of doing "Discard local changes and checkout existing branch" you do
 - load your fork
 - create *new* branch from image
 - merge your old branch into this new one

That will be by far less disruptive.
 
4. It will attempt to load, but eventually a popup appears (not a normal error) that simply says "origin: Error" and "Assertion failed".

You have the popup with the "Ignore" and "Debug" options? Could you click on "Debug" and share your stack trace?
 

I'm not sure what's going on, since this procedure seemed to work a week or so ago if I remember correctly. As of a couple of days ago I can no longer load (ie work on) my working branch.

Well, this is for sure related to what I described above, using a new image with an old branch....
 

I figure I'm doing something wrong, but need to know what.

Maybe not, and it's just a matter of a complex scenario + an unexpected case in iceberg (thus the assertion).

Keep us updated to see if we can help you,
Guille


-- 
   
Guille Polito
Research Engineer


Centre de Recherche en Informatique, Signal et Automatique de Lille
CRIStAL - UMR 9189
French National Center for Scientific Research - http://www.cnrs.fr

Phone: +33 06 52 70 66 13



-- 
Eric


-- 
   
Guille Polito
Research Engineer


Centre de Recherche en Informatique, Signal et Automatique de Lille
CRIStAL - UMR 9189
French National Center for Scientific Research - http://www.cnrs.fr

Phone: +33 06 52 70 66 13




--
Eric