<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt;"><div><br></div>Jacob and Tom<br><br>I have both your workflow responses saved to workspaces that I have filed out to work by.<br><br>Where do you guys store your cloned repos? I put mine in git-cache and that appears to conflict with what Metacello gets.<br><br><div style="" data-zbluepencil-ignore="true" class="zmail_extra"><br>Ok, "its a loop" meaning that the MetacelloConfiguration is created from the Git repo with data from the BaselineOfFoo   somehow. <br>The Metacello is loaded.<br>Git is cloned.<br>You do the smalltalk-git dance by checkout objects which takes them from git and puts them in the image.<br>Tools are available to diff.<br><br>So, I think it is best that I match your workflows to avoid confusion as we progress.<br><br>Ok, gotta solve the Metacello "somehow" before getting the git.<br><br>I will do that on a pristine image.<br><br>thx again.<br><br><br><br><br><br><br><div id="Zm-_Id_-Sgn1">---- On Sun, 04 Oct 2020 09:13:44 -0400 <b>Jakob Reschke <<a target="_blank" href="mailto:forums.jakob@resfarm.de">forums.jakob@resfarm.de</a>></b> wrote ----<br></div><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); padding-left: 6px; margin: 0px 0px 0px 5px;"><div>Hi, <br> <br>Loading the repository packages with Git will only load the packages <br>that belong to Roassal, but not its dependencies (other third-party <br>packages) if any. To get the dependencies, Metacello is used. <br>(Moreover the Metacello baseline could indicate that some packages are <br>only relevant for Pharo version x and others for Pharo version y, or <br>others for Squeak version z. I suppose that is something Tom has been <br>modifying for his *-Squeak package.) <br> <br>So I would recommend: first install the software via Metacello, then <br>start using Git on the loaded packages. It does not really matter <br>whether you initialize the Git project before or after loading with <br>Metacello. That is because currently the Clone action does not load <br>the packages into the image (you would still have to "Checkout <br>objects" after cloning). I should probably change that in the future. <br>If you Add the repository instead of Clone, nothing will be loaded at <br>first either. <br> <br>After you have both loaded the code via Metacello and set up the Git <br>repository, check whether there are any differences between your image <br>and what is on the active branch (the one with the green dot) by <br>pushing the Commit button or right-clicking the top commit or active <br>branch and choosing "Compare with working copy". <br> <br>If there are differences and if that is because a different branch or <br>commit was used in the Metacello load, you have some options to fix <br>the situation: <br>1) Identify the correct branch that you installed via Metacello. Then <br>shift+right-click on the branch and choose "Make this the current <br>branch". This will change the active branch, but not make any changes <br>to the loaded classes (similar to Reparent in Monticello). <br>2) If there is no branch, identify the commit that matches what you <br>installed, find it in the commit list, right-click on it and choose <br>"Create new branch at this commit". Then proceed with option 1. <br>3) Overwrite the loaded classes with the state of the active branch: <br>right-click on the top commit and choose "Checkout objects". <br> <br>If you do not use Metacello, you must collect the dependencies <br>manually and load them with Git or Monticello in the correct order. To <br>find the dependencies, you would read the baseline(s) and thus follow <br>the dependency graph. <br> <br>Kind regards, <br>Jakob <br> <br>Am So., 4. Okt. 2020 um 14:34 Uhr schrieb gettimothy <<a href="mailto:gettimothy@zoho.com" target="_blank">gettimothy@zoho.com</a>>: <br>> <br>> Hi folks, <br>> <br>> backing up from the specifics and looking at the "correct" way to go about this so we are all on the same page. <br>> <br>> Could you please check my assumptions as this Git stuff in squeak is new to me. <br>> <br>> <br>> 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? <br>> <br>> <br>> Assuming "doing all the work in Git" is the way to go... <br>> <br>> Is just "working through the baseline" and getting things in the system a good approach? <br>> <br>> Thoughts? <br>> <br>> thx <br>> <br>> tty <br>> <br></div></blockquote></div><div><br></div></div><br></body></html>