Iceberg Repair Repository - maxbareis/pharo GitHub Wiki

Summary

After creating an image with Pharo Launcher initially there is a pharo repository created in iceberg but it has no local repository linked. In Iceberg this is shown with the more general term "Local Repository missing". To fix this we need to specify either an existing local repository or we can create one by checking out a remote git repository. This page describes how to get the local iceberg pharo repository in sync with the origin/remote repository on github.com. In this example we use the original pharo repository on pharo-project. If you are here to prepare the image for fixing pharo issues, you should instead use the fork you have created before. See Contribute a fix to Pharo for a description of the contribution process. See also Pharo Issues for a list of currently open issues.

Repair the Pharo repository

You start repairing the repository by right-clicking on the entry line of the repository you want to repair. Select "Clone From Github" in the selection screen and enter the owner name (i.e. pharo-project) and the project (i.e. pharo). If you want to use the fork you have created in your own project use your github name as owner name instead of pharo-project. Make sure your ssh credentials are set up correctly (see Initialize Iceberg Git Communication for further details). If you don't like to use ssh credentials you may instead use the https connection. Pressing Ok pulls the sources from github. It almost certainly will leave your repository in detached working copy state, as the pharo sources that have been bundled within the image probably are a little bit older than the current HEAD in github. You fix this by:

Repair the Detached Working Copy state (Repair repository)

You again need to right-click on the entry and select Repair repository. If you haven't changed anything that you might want to push to the repository the cleanest option is to "Discard image changes and load repository version". This discards all changes in the image and make a clean pull of the repository. After a while of calculating diffs the checkout screen appears. As you want a clean copy pressing Checkout button should be enough to do. Now the repository should be "up to date". If you need more information about Iceberg states and messages go to Glossary