DoIt ^ repository remotes detect: [ :remote | self halt. remote remoteName = 'pharo' ]
remote remoteName returns 'origin' and not the name of the fork so what is upstream? Pharo on github origin? the one local? Stef On Fri, Jun 30, 2017 at 10:04 AM, Stephane Ducasse <stepharo.s...@gmail.com> wrote: > 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 >>>> > >>>> >>>