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

gettimothy gettimothy at zoho.com
Sun Oct 4 13:39:14 UTC 2020


Jacob and Tom

I have both your workflow responses saved to workspaces that I have filed out to work by.

Where do you guys store your cloned repos? I put mine in git-cache and that appears to conflict with what Metacello gets.


Ok, "its a loop" meaning that the MetacelloConfiguration is created from the Git repo with data from the BaselineOfFoo   somehow. 
The Metacello is loaded.
Git is cloned.
You do the smalltalk-git dance by checkout objects which takes them from git and puts them in the image.
Tools are available to diff.

So, I think it is best that I match your workflows to avoid confusion as we progress.

Ok, gotta solve the Metacello "somehow" before getting the git.

I will do that on a pristine image.

thx again.






---- On Sun, 04 Oct 2020 09:13:44 -0400 Jakob Reschke <mailto:forums.jakob at resfarm.de> wrote ----


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 <mailto: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 
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20201004/9cfec9f6/attachment.html>


More information about the Squeak-dev mailing list