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

Reply via email to