[Glass] Migrating to github 2
Dale Henrichs via Glass
glass at lists.gemtalksystems.com
Mon Jul 11 12:56:02 PDT 2016
I just noticed a mistake (the gist has been updated with the correction) ...
project entry --baseline=OrbeonPersistenceLayer
--repo=filetree://$GS_HOME/shared/repos/OrbeonPersistenceLayer/repository /sys/stone/projects
should be
project entry --baseline=OrbeonPersistenceLayer
--repo=filetree://$GS_HOME/shared/repos/OrbeonPersistenceLayer/repository /sys/local/server/projects
Using /sys/local/server/projects means that the project entry is shared
by all stones ... and `project load OrbeonPersistenceLayer` can be used
to load Orbeon into new stones ... Use /sys/stone/projects if you want
the project entry to be "private" to the stone -- I do this if I am
doing "dangerous experiments" with a project and want to isolate the
changes I'm saving in the git repository to just one stone ... when I'm
finished with the experiments, I update the shared repository and remove
the stone-specific project entry ...
Dale
On 07/11/2016 11:25 AM, Dale Henrichs wrote:
> Hello Bruno,
>
> There are some adjustments to the process ... in-lined below
>
> On 07/11/2016 09:14 AM, BrunoBB via Glass wrote:
>> Dale,
>>
>> About a year ago we had a conversation on github migration. Now i have a
>> stable version of my application i want to migrate the code to github.
>>
>> Back then the step were these: (are these steps still correct to
>> migrate to
>> github ?)
>> (the step 2. is refering to the gemstone host or the windows tode
>> client ?
>> in which machine perform the file copy and git init?)
>>
>> 1. create GitHub project (done:
>> https://github.com/brunobuzzi/OrbeonPersistenceLayer)
>> 2. create a local git repository (using `git init` in an empty directory
>> called
>> OrbeonPersistenceLayer). In the dev branch of GsDevKitHome, the
>> place to put shared
>> git repositories is $GS_HOME/tode/sys/local/git (using bash):
>>
>> mkdir $GS_HOME/tode/sys/local/git/OrbeonPersistenceLayer
>> mkdir
>> $GS_HOME/tode/sys/local/git/OrbeonPersistenceLayer/repository
> This has changed - in fact I think the previous discussion was
> probably based upon gsDevKitHome. For GsDevKit_home, I've settled on
> $GS_HOME/shared/repos as the standard location for git repositories:
>
> mkdir $GS_HOME/shared/repos/OrbeonPersistenceLayer
> mkdir $GS_HOME/shared/repos/OrbeonPersistenceLayer/repository
>
>>
>> 3. copy each of the active packages from the SS3 repo to your local git
>> repo:
>>
>> mc copy Orbeon_Persistence_API-BrunoBB-0.039
>> http://ss3.gemtalksystems.com/ss/OrbeonPersistenceAPI
>> filetree://$GS_HOME/tode/sys/local/git/OrbeonPersistenceLayer/repository
>>
>> mc copy Orbeon_Persistence-BrunoBB-0.019
>> http://ss3.gemtalksystems.com/ss/OrbeonPersistenceAPI
>> filetree://$GS_HOME/tode/sys/local/git/OrbeonPersistenceLayer/repository
> So the filetree path will change here as well:
>
> mc copy Orbeon_Persistence_API-BrunoBB-0.039
> http://ss3.gemtalksystems.com/ss/OrbeonPersistenceAPI
> filetree://$GS_HOME/shared/repos/OrbeonPersistenceLayer/repository
>
> mc copy Orbeon_Persistence-BrunoBB-0.019
> http://ss3.gemtalksystems.com/ss/OrbeonPersistenceAPI
> filetree://$GS_HOME/shared/repos/OrbeonPersistenceLayer/repository
>
>
>>
>> 4. create a BaselineOfOrbeonPersistenceLayer class:
>>
>> cls create BaselineOfOrbeonPersistenceLayer BaselineOf
>> BaselineOfOrbeonPersistenceLayer
>> cls protocol --add=BaselineOfOrbeonPersistenceLayer baseline
>> browse class BaselineOfOrbeonPersistenceLayer
>>
>> 5. add a baseline: method to BaselineOfOrbeonPersistenceLayer that looks
>> something like the following (no tODE command - sorry:):
>>
>> baseline: spec
>> <baseline>
>> spec
>> for: #'common'
>> do: [
>> spec
>> package: 'Orbeon_Persistence';
>> package: 'Orbeon_Persistence_API' with: [ spec requires:
>> 'Orbeon_Persistence' ];
>> yourself.
>> spec
>> group: 'default' with: #('Core');
>> group: 'Core' with: #('Orbeon_Persistence_API');
>> yourself ].
>>
>> 6. create a BaselineOfOrbeonPersistenceLayer package
>>
>> mc create BaselineOfOrbeonPersistenceLayer
>>
>> 7. associate the filetree repo with the new package:
>>
>> mr add
>> filetree://$GS_HOME/tode/sys/local/git/OrbeonPersistenceLayer/repository
>> BaselineOfOrbeonPersistenceLayer
> path change here, again:
>
> mr add
> filetree://$GS_HOME/shared/repos/OrbeonPersistenceLayer/repository
> BaselineOfOrbeonPersistenceLayer
>
>
>>
>> 8. save the baseline to the repo:
>>
>> mc commit BaselineOfOrbeonPersistenceLayer `initial baseline and
>> packages`
>>
>> 9. Create the project entry:
>>
>> project entry --baseline=OrbeonPersistenceLayer
>> --repo=filetree://$GS_HOME/tode/sys/local/git/OrbeonPersistenceLayer/repository
>>
>> /sys/stone/projects
> path again:
>
> project entry --baseline=OrbeonPersistenceLayer
> --repo=filetree://$GS_HOME/shared/repos/OrbeonPersistenceLayer/repository
> /sys/stone/projects
>
>
>>
>> 10. Load the project (testing your baseline):
>>
>> project load OrbeonPersistenceLayer
>>
>> 11. Write the new baseline to the filetree repository and do a git
>> commit:
>>
>> project commit --git --message=`initial commit for project
>> packages
>> and baseline` OrbeonPersistenceLayer
>> project list
>>
>> 12. Hook up your local git repo to your github repo something like the
>> following (follow github instructions to get it exactly right):
>>
>> git remote add origin
>> [hidden email]:brunobuzzi/OrbeonPersistenceLayer.git
>> git push origin master
> For GsDevKit_home I would an additional optional step where you would
> add a $GS_HOME/sys/local/gsdevkit_bin/cloneUpdate script. I've
> attached a copy of the script.
>
> If you install the script in $GS_HOME/sys/local/gsdevkit_bin it will
> be called whenever you execute `$GS_HOME/bin/updateGsDevKit -s` ...
> I've found this particularly convenient if I have multiple
> GsDevKit_home installations (work computer and home laptop) that I
> want to keep up-to-date ... It also makes more sense when you get to
> the point where you have multiple projects like Seaside and your own
> project so that you can update the git repos using a script instead of
> manually ...
>>
>>
>> ... and I think that's it... Let me know how things work for you. I've
>> create a gist on github[4] with all of the tode comands extracted out
>> (source code is in middle) for easy copy/paste.
>>
>> Dale
>>
>> [1] https://github.com/dalehenrich/tode/issues/18
>> [2]
>> https://github.com/dalehenrich/metacello-work/blob/master/docs/GettingStartedWithGitHub.md#create-baseline
>>
>> [3]
>> https://github.com/dalehenrich/metacello-work/blob/master/docs/GettingStartedWithGitHub.md
>>
>> [4] https://gist.github.com/dalehenrich/001ab961bd599b3efac1
>> _______________________________________________
>>
>>
> and I think that should be it ... let me know if you have problems ..
> I've updated the gist[2] with the changed paths
>
> We have an open issue for GsDevKit_home[1] that I will add this email
> trail to ...
>
> [1] https://github.com/GsDevKit/GsDevKit_home/issues/91
> [2] https://gist.github.com/dalehenrich/001ab961bd599b3efac1
More information about the Glass
mailing list