[squeak-dev] Getting from GitBrowser to the System Browser

Jakob Reschke forums.jakob at resfarm.de
Sun Oct 4 13:13:44 UTC 2020


Hi,

Loading the repository packages with Git will only load the packages
that belong to Roassal, but not its dependencies (other third-party
packages) if any. To get the dependencies, Metacello is used.
(Moreover the Metacello baseline could indicate that some packages are
only relevant for Pharo version x and others for Pharo version y, or
others for Squeak version z. I suppose that is something Tom has been
modifying for his *-Squeak package.)

So I would recommend: first install the software via Metacello, then
start using Git on the loaded packages. It does not really matter
whether you initialize the Git project before or after loading with
Metacello. That is because currently the Clone action does not load
the packages into the image (you would still have to "Checkout
objects" after cloning). I should probably change that in the future.
If you Add the repository instead of Clone, nothing will be loaded at
first either.

After you have both loaded the code via Metacello and set up the Git
repository, check whether there are any differences between your image
and what is on the active branch (the one with the green dot) by
pushing the Commit button or right-clicking the top commit or active
branch and choosing "Compare with working copy".

If there are differences and if that is because a different branch or
commit was used in the Metacello load, you have some options to fix
the situation:
1) Identify the correct branch that you installed via Metacello. Then
shift+right-click on the branch and choose "Make this the current
branch". This will change the active branch, but not make any changes
to the loaded classes (similar to Reparent in Monticello).
2) If there is no branch, identify the commit that matches what you
installed, find it in the commit list, right-click on it and choose
"Create new branch at this commit". Then proceed with option 1.
3) Overwrite the loaded classes with the state of the active branch:
right-click on the top commit and choose "Checkout objects".

If you do not use Metacello, you must collect the dependencies
manually and load them with Git or Monticello in the correct order. To
find the dependencies, you would read the baseline(s) and thus follow
the dependency graph.

Kind regards,
Jakob

Am So., 4. Okt. 2020 um 14:34 Uhr schrieb gettimothy <gettimothy at zoho.com>:
>
> Hi folks,
>
> backing up from the specifics and looking at the "correct" way to go about this so we are all on the same page.
>
> Could you please check my assumptions as this Git stuff in squeak is new to me.
>
>
> If we have the Git, why do we need the Metacello? Can/should we do all the work in the Git and then when it is done, do the Metacello?
>
>
> Assuming "doing all the work in Git" is the way to go...
>
> Is just "working through the baseline" and getting things in the system a good approach?
>
> Thoughts?
>
> thx
>
> tty
>



More information about the Squeak-dev mailing list