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
>>>> >
>>>>
>>>

Reply via email to