[Pharo-dev] Github and Pharo

Goubier Thierry thierry.goubier at cea.fr
Mon Nov 4 05:05:48 EST 2013


So far, from what I see, this is an OSProcess issue when under Windows, 
so it's a bit unfamiliar territory to me.

The design of MonticelloFileTree-Git is to call the 'git' command line 
to do things, and it rely on OSProcess to provide the primitive. This 
was by far the fastest way to get things done :)

Thierry

Le 04/11/2013 10:49, kilon alios a écrit :
> I can document this , but not before I get really familiar with the
> process. Also I have not forgotten my promise to document Nativeboost,
> expect a blog post about that really soon.
>
> I tried to use this in windows and I get a failure
>
> ExternalWindowsOSProcess class(Object)>>doesNotUnderstand: #defaultShellPath
> PipeableOSProcess
> class>>command:environment:workingDir:input:output:error:errorPipelineStream:shellSyntax:
> PipeableOSProcess
> class>>command:environment:workingDir:input:output:error:errorPipelineStream:
> PipeableOSProcess class>>command:
> MCFileTreeGitRepository>>gitVersions
> MCFileTreeGitRepository>>loadAncestry
> MCFileTreeGitRepository>>loadAllFileNames in Block: [ :bar | ...
> BlockClosure>>cull:
> Job>>run in Block: [ result := block cull: self ]
> BlockClosure>>on:do:
> Job>>run in Block: [ ...
> BlockClosure>>ensure:
> Job>>run
> MorphicUIManager(UIManager)>>displayProgress:from:to:during:
> ByteString(String)>>displayProgressFrom:to:during:
> MCFileTreeGitRepository>>loadAllFileNames
> MCFileTreeGitRepository>>allFileNames
> MCFileTreeGitRepository>>readableFileNames
> MCFileTreeGitRepository>>packageDescriptionsFromReadableFileNames
> MCFileTreeGitRepository(MCFileBasedRepository)>>retrieveVersionsWithPackageNames:
> MCFileTreeGitRepositoryInspector(MCFileRepositoryInspector)>>refresh
> MCFileTreeGitRepositoryInspector(MCFileRepositoryInspector)>>setRepository:workingCopy:
> in Block: [ ...
> BlockClosure>>newProcess in Block: [ ...
>
> I have loaded both OSProcess and OSWindows , are there other
> dependencies on Windows I need to load ?
>
>
>
> On Mon, Nov 4, 2013 at 6:46 AM, Tudor Girba <tudor at tudorgirba.com
> <mailto:tudor at tudorgirba.com>> wrote:
>
>     Exactly. This would be a valuable contribution. Screencasts would be
>     very helpful as well.
>
>     Doru
>
>
>
>
>     On Mon, Nov 4, 2013 at 12:04 AM, Stéphane Ducasse
>     <stephane.ducasse at inria.fr <mailto:stephane.ducasse at inria.fr>> wrote:
>
>         one of you should write a blog entry on Git support and the
>         process :)
>         Because we will get this repeat that often.
>
>         Stef
>
>
>
>         On Nov 3, 2013, at 2:11 PM, kilon alios <kilon.alios at gmail.com
>         <mailto:kilon.alios at gmail.com>> wrote:
>
>>         ok it was my bad, i had not correctly initialized my git repo.
>>         Now it works fine. Thanks for the help this awesome.
>>
>>
>>         On Sun, Nov 3, 2013 at 2:56 PM, kilon alios
>>         <kilon.alios at gmail.com <mailto:kilon.alios at gmail.com>> wrote:
>>
>>             I installed OSProcess but I get a new Error : Git Error :
>>             bad default revision 'Head'
>>
>>             just to clarify i try to commit to an existing git repo
>>             that I have create manually via terminal.
>>
>>
>>             MCFileTreeGitRepository(Object)>>error:
>>             MCFileTreeGitRepository>>gitVersions
>>             MCFileTreeGitRepository>>loadAncestry
>>             MCFileTreeGitRepository>>loadAllFileNames in Block: [ :bar
>>             | ...
>>             BlockClosure>>cull:
>>             Job>>run in Block: [ result := block cull: self ]
>>             BlockClosure>>on:do:
>>             Job>>run in Block: [ ...
>>             BlockClosure>>ensure:
>>             Job>>run
>>             MorphicUIManager(UIManager)>>displayProgress:from:to:during:
>>             ByteString(String)>>displayProgressFrom:to:during:
>>             MCFileTreeGitRepository>>loadAllFileNames
>>             MCFileTreeGitRepository>>allFileNames
>>             MCFileTreeGitRepository>>readableFileNames
>>             MCFileTreeGitRepository(MCFileTreeRepository)>>allFileNamesForVersionNamed:
>>             MCFileTreeGitRepository(MCDirectoryRepository)>>includesVersionNamed:
>>             MCWorkingCopy>>uniqueVersionNameIn: in Block: [ ...
>>             BlockClosure>>cull:
>>             Job>>run in Block: [ result := block cull: self ]
>>             BlockClosure>>on:do:
>>             Job>>run in Block: [ ...
>>             BlockClosure>>ensure:
>>             Job>>run
>>             MorphicUIManager(UIManager)>>displayProgress:from:to:during:
>>             ByteString(String)>>displayProgressFrom:to:during:
>>             MCWorkingCopy>>uniqueVersionNameIn:
>>             MCWorkingCopy>>newVersionIn:
>>             MCWorkingCopyBrowser>>basicSaveVersionIn: in Block: [ ...
>>             WorldState>>runStepMethodsIn:
>>
>>
>>
>>             On Sun, Nov 3, 2013 at 2:40 PM, GOUBIER Thierry
>>             <thierry.goubier at cea.fr <mailto:thierry.goubier at cea.fr>>
>>             wrote:
>>
>>                 Oh sorry, the OSProcess dependency is missing :(
>>
>>                 You can install OSProcess from the configuration
>>                 browser in your Pharo image or, on the command line :
>>
>>                 $ pharo Pharo.image config
>>                 http://ss3.gemstone.com/ss/MetaRepoForPharo20
>>                 ConfigurationOfOSProcess --install=stable
>>
>>                 Thierry
>>
>>                 ------------------------------------------------------------------------
>>                 *De :* Pharo-dev [pharo-dev-bounces at lists.pharo.org
>>                 <mailto:pharo-dev-bounces at lists.pharo.org>] de la part
>>                 de kilon alios [kilon.alios at gmail.com
>>                 <mailto:kilon.alios at gmail.com>]
>>                 *Date d'envoi :* dimanche 3 novembre 2013 13:30
>>
>>                 *À :* Pharo Development List
>>                 *Objet :* Re: [Pharo-dev] Github and Pharo
>>
>>                 look like it cant find PipeableOSProcess on Macos, any
>>                 idea where I can find this object ?
>>
>>                 UndefinedObject(Object)>>doesNotUnderstand: #command:
>>                 MCFileTreeGitRepository>>gitVersions
>>                 MCFileTreeGitRepository>>loadAncestry
>>                 MCFileTreeGitRepository>>loadAllFileNames in Block: [
>>                 :bar | ...
>>                 BlockClosure>>cull:
>>                 Job>>run in Block: [ result := block cull: self ]
>>                 BlockClosure>>on:do:
>>                 Job>>run in Block: [ ...
>>                 BlockClosure>>ensure:
>>                 Job>>run
>>                 MorphicUIManager(UIManager)>>displayProgress:from:to:during:
>>                 ByteString(String)>>displayProgressFrom:to:during:
>>                 MCFileTreeGitRepository>>loadAllFileNames
>>                 MCFileTreeGitRepository>>allFileNames
>>                 MCFileTreeGitRepository>>readableFileNames
>>                 MCFileTreeGitRepository(MCFileTreeRepository)>>allFileNamesForVersionNamed:
>>                 MCFileTreeGitRepository(MCDirectoryRepository)>>includesVersionNamed:
>>                 MCWorkingCopy>>uniqueVersionNameIn: in Block: [ ...
>>                 BlockClosure>>cull:
>>                 Job>>run in Block: [ result := block cull: self ]
>>                 BlockClosure>>on:do:
>>                 Job>>run in Block: [ ...
>>                 BlockClosure>>ensure:
>>                 Job>>run
>>                 MorphicUIManager(UIManager)>>displayProgress:from:to:during:
>>                 ByteString(String)>>displayProgressFrom:to:during:
>>                 MCWorkingCopy>>uniqueVersionNameIn:
>>                 MCWorkingCopy>>newVersionIn:
>>                 MCWorkingCopyBrowser>>basicSaveVersionIn: in Block: [ ...
>>                 WorldState>>runStepMethodsIn:
>>
>>
>>
>>                 On Sun, Nov 3, 2013 at 12:41 PM, GOUBIER Thierry
>>                 <thierry.goubier at cea.fr
>>                 <mailto:thierry.goubier at cea.fr>> wrote:
>>
>>                     This is where you use GitFileTree.
>>
>>                     GitFileTree will do you the commit, browsing the
>>                     git logs and accessing all versions of your
>>                     package in the git repo (browsing, loading,
>>                     changes with the same GUI and look as a
>>                     smalltalkhub repo). It won't do the push,
>>                     however(*). It will show you the current branch in
>>                     the repo too (**).
>>
>>                     For pharo3, GitFileTree is available with:
>>
>>                     $ pharo Pharo.image eval --save Gofer new url:
>>                     \'http://smalltalkhub.com/mc/ThierryGoubier/MonticelloFileTree-Git/main\
>>                     <http://smalltalkhub.com/mc/ThierryGoubier/MonticelloFileTree-Git/main%5C>'\;
>>                     package: \'MonticelloFileTree-Git\'\; load
>>
>>                     For pharo2, there is a group named
>>                     'MonticelloFileTree-Git' in FileTree configuration.
>>
>>                     Feel free to ask if you have any questions or
>>                     suggestions on it!
>>
>>                     Thierry
>>
>>                     (*) It would be easy to do commit + push in one
>>                     go, but, I'm not sure I'd like to do a push each
>>                     time I do a commit. I tend to prefer a push a day.
>>                     Maybe something like a marker in the repository
>>                     inspector to remind me I have something to push?
>>                     (**) It doesn't change branches, and there is no
>>                     support for branches in Monticello... This tend to
>>                     trigger bugs in MC package cache.
>>
>>                     ------------------------------------------------------------------------
>>                     *De :* Pharo-dev
>>                     [pharo-dev-bounces at lists.pharo.org
>>                     <mailto:pharo-dev-bounces at lists.pharo.org>] de la
>>                     part de kilon alios [kilon.alios at gmail.com
>>                     <mailto:kilon.alios at gmail.com>]
>>                     *Date d'envoi :* dimanche 3 novembre 2013 10:16
>>                     *À :* Pharo Development List
>>                     *Objet :* Re: [Pharo-dev] Github and Pharo
>>
>>                     Thank you for your efforts , I have installed
>>                     filetree using the instructions provided in the
>>                     github pages for pharo 3. I was also successful
>>                     into generating the local files for my packages
>>                     that I have inserted to my git folder. I can
>>                     manually git commit and git push them from
>>                     terminal but how I do this from inside
>>                     Monticello-Filetree ?
>>
>>
>>                     On Sun, Nov 3, 2013 at 9:53 AM, GOUBIER Thierry
>>                     <thierry.goubier at cea.fr
>>                     <mailto:thierry.goubier at cea.fr>> wrote:
>>
>>                         Hi,
>>
>>                         I've used github and work_owned git
>>                         repositories as primary workplaces for more
>>                         than a year. First with FileTree, then I wrote
>>                         GitFileTree to make that process simpler.
>>
>>                         Thierry
>>                         ------------------------------------------------------------------------
>>                         *De :* Pharo-dev
>>                         [pharo-dev-bounces at lists.pharo.org
>>                         <mailto:pharo-dev-bounces at lists.pharo.org>] de
>>                         la part de kilon alios [kilon.alios at gmail.com
>>                         <mailto:kilon.alios at gmail.com>]
>>                         *Date d'envoi :* samedi 2 novembre 2013 14:59
>>                         *À :* Pharo Development List
>>                         *Objet :* [Pharo-dev] Github and Pharo
>>
>>                         So any information on how Pharo can be used
>>                         with Github ?
>>
>>                         all I have is this
>>
>>                         https://github.com/dalehenrich/FSGit
>>
>>                         I dont need much, just basic git pull, push,
>>                         clone, add and rm should do fine for starter.
>>
>>                         But of course I am interesting into learning
>>                         what can be done, what is available , who
>>                         needs help with what.  Github is something
>>                         really important for me, so I am willing to
>>                         contribute as much I can into bringing Pharo
>>                         closer to it.
>>
>>                         My interest is using Github in place of
>>                         smalltalkhub and squeaksource. I was planning
>>                         to implement something like an App Store (not
>>                         the purchase  system) for Pharo  libraries and
>>                         I would love to use github as a backend to it
>>                         and git of course.
>>
>>
>>
>>
>>
>
>
>
>
>     --
>     www.tudorgirba.com <http://www.tudorgirba.com>
>
>     "Every thing has its own flow"
>
>

-- 
Thierry Goubier
CEA list
Laboratoire des Fondations des Systèmes Temps Réel Embarqués
91191 Gif sur Yvette Cedex
France
Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95




More information about the Pharo-dev mailing list