Ok I try to understand. I already cloned the github repo and I do not want to be forced to download all these small files all the time. I want one place with all the forked code one and only one.
I will try to create a simlink and try again. Tx Stef On Fri, Jun 30, 2017 at 10:26 AM, Pavel Krivanek <pavel.kriva...@gmail.com> wrote: > Unfortunately you cannot share the repository the way you try because it > always needs to be in the image working directory in a folder named > 'pharo-core'. Without it the Monticello will not be able to see changes int > the packages. > > On one location place Pharo 7 image and execute the first script that clones > the repository and sets the remote fork. > Then into some other repository take a fresh Pharo 7 image, create symlink > to the 'pharo-core' folder in the original directory and then execute the > second script that only registers this repository into Iceberg and sets > proper pull and push targets on it. > > Cheers, > -- Pavel > > 2017-06-30 10:04 GMT+02:00 Stephane Ducasse <stepharo.s...@gmail.com>: >> >> So I do not understand >> >> Now if I do >> >> repository := IceRepositoryCreator new >> location: >> ('/Users/ducasse/Workspace/FirstCircle/ActiveResearch/Pharo/PharoCodeBase/pharo-core' >> asFileReference); >> subdirectory:'src'; >> createRepository. >> repository register. >> >> >> it works but doing it twice breaks. How can I get access to the repo? >> Because >> fork := repository remotes detect: [ :remote | remote remoteName = #pharo >> ]. >> >> Does not work :( >> And my github fork is name pharo I tried with 'pharo' but it failed too. >> >> >> "origin (g...@github.com:Ducasse/pharo.git)" >> >> >> "upstream (g...@github.com:pharo-project/pharo.git)" >> >> ;( >> >> >> >> >> On Fri, Jun 30, 2017 at 9:56 AM, Stephane Ducasse >> <stepharo.s...@gmail.com> wrote: >> > No I did it from a freshly donwloaded image. Pharo7.0-32bit-70f3b57.zip >> > >> > On Fri, Jun 30, 2017 at 9:47 AM, Pavel Krivanek >> > <pavel.kriva...@gmail.com> wrote: >> >> The script in section "Use already created clone" is supposed to be >> >> used by >> >> a fresh Pharo 7 image. Maybe you are trying it on an image that already >> >> has >> >> the repository set? Even if I tried to use the name 'pharo' instead of >> >> 'myFork', the scripts work. >> >> >> >> Cheers, >> >> -- Pavel >> >> >> >> >> >> 2017-06-30 9:34 GMT+02:00 Stephane Ducasse <stepharo.s...@gmail.com>: >> >>> >> >>> Hi pavel >> >>> >> >>> Since I want to reuse my clone. I tried the following. But I have no >> >>> idea about the name of my fork so I put the one of my fork = pharo and >> >>> it seems that this is what should be done. >> >>> >> >>> Now when I execute this script I get >> >>> >> >>> 'You already have an Iceberg repository >> >>> >> >>> So hat should I do? >> >>> >> >>> >> >>> >> >>> Use already created clone >> >>> ===================== >> >>> >> >>> >> >>> repository := IceRepositoryCreator new >> >>> location: ('pharo-core' asFileReference); >> >>> subdirectory:'src'; >> >>> createRepository. >> >>> repository register. >> >>> >> >>> fork := repository remotes detect: [ :remote | remote remoteName = >> >>> #pharo >> >>> ]. >> >>> repository pushRemote: fork. >> >>> repository pullRemote: repository origin. >> >>> >> >>> repository checkoutBranch: 'development'. >> >>> repository backend pullFrom: repository origin. >> >>> repository push. >> >>> >> >>> repository checkoutBranch: (SystemVersion current commitHash). >> >>> >> >>> On Mon, Jun 26, 2017 at 1:14 PM, Pavel Krivanek >> >>> <pavel.kriva...@gmail.com> wrote: >> >>> > Hi, >> >>> > >> >>> > this mail describes how to start to send pull requests to Pharo 7 >> >>> > Github >> >>> > repository from Pharo 7. >> >>> > >> >>> > Preparations >> >>> > ===================== >> >>> > >> >>> > - you need to have a Github account and set SSH keys. See >> >>> > https://help.github.com/articles/connecting-to-github-with-ssh/ >> >>> > - create own pharo-project/pharo repository fork. Go to >> >>> > https://github.com/pharo-project/pharo, click on "Fork" button and >> >>> > follow >> >>> > the instructions >> >>> > >> >>> > Get Pharo 7 image >> >>> > ===================== >> >>> > >> >>> > The CI jobs for the Pharo 7 defelopment are currently not fully set >> >>> > and >> >>> > we >> >>> > still do not publish Pharo 7 image to files.pharo.org so you cannot >> >>> > get >> >>> > it >> >>> > using zero-conf scripts. But we have a provisional CI job that >> >>> > bootstraps >> >>> > the Pharo 7 image. >> >>> > >> >>> > https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit/ >> >>> > >> >>> > There download a file named like Pharo7.0-32bit-hash.zip and >> >>> > decompress >> >>> > it. >> >>> > Unlike Pharo 6 images, the archive contains three files. Image, >> >>> > changes >> >>> > and >> >>> > sources. In Pharo 7 you have the sources file for every bootstrapped >> >>> > version. It has a commit hash in the name and it cannot be shared >> >>> > between >> >>> > different Pharo 7 imges, however it can be shared between images >> >>> > that >> >>> > were >> >>> > created as snapshots with the same bootstrapped image as ancestor. >> >>> > >> >>> > Create local clone >> >>> > ===================== >> >>> > >> >>> > You need a local clone of the Pharo repository. Because it contains >> >>> > a >> >>> > lot of >> >>> > small files, it is not a good idea to have own clone for every >> >>> > image. >> >>> > You >> >>> > can have only one and share them between images. But because of some >> >>> > current >> >>> > Monticello constraints you need to have the clone placed in the >> >>> > image >> >>> > directory in a folder with name 'pharo-core'. >> >>> > >> >>> > In this step we will clone the Pharo repository from >> >>> > pharo-project/pharo >> >>> > Github repository and add your fork as default pull target. We will >> >>> > update >> >>> > your fork repository to contain all latest commits from the Pharo >> >>> > repository >> >>> > in the branch named 'development'. For latest stable version (Pharo >> >>> > 6) >> >>> > we >> >>> > use the master branch. >> >>> > In the end we will checkout the repository to a particular commit >> >>> > from >> >>> > which >> >>> > the downloaded Pharo 7 image was bootstrapped. Imagine that you have >> >>> > a >> >>> > Pharo >> >>> > 7 image that is several days old and the development branch has >> >>> > already >> >>> > some >> >>> > commits that change code. If you would take this older image, >> >>> > checkout >> >>> > to >> >>> > the development branch and then do your commit, your would revert >> >>> > all >> >>> > changes done in not-loaded commits. The other option is to update >> >>> > your >> >>> > image >> >>> > to correspond to the repository latest commit which requires >> >>> > packages >> >>> > reloading. >> >>> > If you checkout to a particular commit, you are in detached HEAD >> >>> > state. >> >>> > In >> >>> > this state you cannot do commits directly. You need to firstly >> >>> > create >> >>> > new a >> >>> > new branch which we will do anyway. >> >>> > >> >>> > Evaluate the following code. This functionality will be later direct >> >>> > part of >> >>> > Iceberg UI. Do not forget to change the user name. >> >>> > >> >>> > username := 'YOUR-USER-NAME'. >> >>> > repository := IceRepositoryCreator new >> >>> > url: 'g...@github.com:pharo-project/pharo.git'; >> >>> > location: ('pharo-core' asFileReference ensureCreateDirectory); >> >>> > subdirectory:'src'; >> >>> > createRepository. >> >>> > repository checkoutBranch: 'development'. >> >>> > repository register. >> >>> > >> >>> > fork := (IceRemote name: 'myFork' url: >> >>> > ('g...@github.com:{1}/pharo.git' >> >>> > format: {username})). >> >>> > repository addRemote: fork. >> >>> > repository pushRemote: fork. >> >>> > repository pullRemote: repository origin. >> >>> > >> >>> > "update fork" >> >>> > repository backend pullFrom: repository origin. "use this low-level >> >>> > form >> >>> > to >> >>> > prevent packages reloading" >> >>> > repository push. >> >>> > >> >>> > "checkout to the commit from which the image was bootstrapped" >> >>> > repository checkoutBranch: (SystemVersion current commitHash). >> >>> > >> >>> > Use already created clone >> >>> > ===================== >> >>> > >> >>> > This is alternative to the previous step. Let's suppose that you >> >>> > already >> >>> > have your local clone. You take some Pharo 7 image and you want to >> >>> > create >> >>> > commits. Then you need to create a symlink or move/copy the >> >>> > repository >> >>> > into >> >>> > your image directory. Remember, it must be named pharo-core (we do >> >>> > not >> >>> > use >> >>> > the name 'pharo' to avoid collision with VM executable). >> >>> > >> >>> > In this step we will register an existing Pharo repository clone, >> >>> > set >> >>> > your >> >>> > fork as the push target, update your fork and then switch to the >> >>> > particular >> >>> > commit. >> >>> > >> >>> > repository := IceRepositoryCreator new >> >>> > location: ('pharo-core' asFileReference); >> >>> > subdirectory:'src'; >> >>> > createRepository. >> >>> > repository register. >> >>> > >> >>> > fork := repository remotes detect: [ :remote | remote remoteName = >> >>> > #myFork >> >>> > ]. >> >>> > repository pushRemote: fork. >> >>> > repository pullRemote: repository origin. >> >>> > >> >>> > repository checkoutBranch: 'development'. >> >>> > repository backend pullFrom: repository origin. >> >>> > repository push. >> >>> > >> >>> > repository checkoutBranch: (SystemVersion current commitHash). >> >>> > >> >>> > Issue processing >> >>> > ===================== >> >>> > >> >>> > - create new case on FogBugz to get the issue number >> >>> > - open Iceberg and from the context menu on the 'pharo' repository >> >>> > do: >> >>> > Pharo >> >>> > - Create new branch from FogBugz issue, enter the issue ID and it >> >>> > will >> >>> > fill >> >>> > the full branch name for you >> >>> > - create your changes (you can do it before the creation of the >> >>> > branch >> >>> > too) >> >>> > - commit and push your changes in Iceberg, this way you will commit >> >>> > your >> >>> > branch to your fork repository. Remember that the Iceberg commit >> >>> > window >> >>> > has >> >>> > two buttons, one for local commit, the second for commit with >> >>> > immediate >> >>> > push. They can be very long because they contain the full branch >> >>> > (issue) >> >>> > name >> >>> > - in Iceberg in the 'pharo' repository context menu do: Pharo - >> >>> > Create >> >>> > pull >> >>> > request, fill your >> >>> > - fill your Github credentials >> >>> > - leave the PR title, comment is not required, check the pull >> >>> > request >> >>> > head >> >>> > and base. The base MUST be pharo-project/pharo development. Create >> >>> > the >> >>> > pull >> >>> > requests >> >>> > - go to https://github.com/pharo-project/pharo/pulls, check your >> >>> > pull >> >>> > requests and put URL of it into the issue record on FogBugz (as a >> >>> > comment). >> >>> > Resolve the issue as Fix review needed >> >>> > >> >>> > Cheers, >> >>> > -- Pavel >> >>> > >> >>> >> >> >> >