I do not get why repository := IceRepositoryCreator new location: ('/Users/ducasse/Workspace/FirstCircle/ActiveResearch/Pharo/PharoCodeBase/pharo-core' asFileReference);
is not working and repository := IceRepositoryCreator new location: ('pharo-core' asFileReference); + simlink would be working. On Fri, Jun 30, 2017 at 10:46 AM, Stephane Ducasse <stepharo.s...@gmail.com> wrote: > 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 >>> >>> > >>> >>> >>> >> >>> >>