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

Reply via email to