I added the missing method to the class, adjusting it with the 'c:\' system path, unfortunately now it complains that File pipeWriter is closed. So it looks like it will need a more a careful look to make this work on windows. Will try to examine closer. �


On Mon, Nov 4, 2013 at 12:05 PM, Goubier Thierry <thierry.goubier@cea.fr> wrote:

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@tudorgirba.com
<mailto:tudor@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@inria.fr <mailto:stephane.ducasse@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@gmail.com
� � � � <mailto:kilon.alios@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@gmail.com <mailto:kilon.alios@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@cea.fr <mailto:thierry.goubier@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@lists.pharo.org
� � � � � � � � <mailto:pharo-dev-bounces@lists.pharo.org>] de la part
� � � � � � � � de kilon alios [kilon.alios@gmail.com

� � � � � � � � <mailto:kilon.alios@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@cea.fr
� � � � � � � � <mailto:thierry.goubier@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@lists.pharo.org
� � � � � � � � � � <mailto:pharo-dev-bounces@lists.pharo.org>] de la

� � � � � � � � � � part de kilon alios [kilon.alios@gmail.com
� � � � � � � � � � <mailto:kilon.alios@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@cea.fr
� � � � � � � � � � <mailto:thierry.goubier@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@lists.pharo.org
� � � � � � � � � � � � <mailto:pharo-dev-bounces@lists.pharo.org>] de

� � � � � � � � � � � � la part de kilon alios [kilon.alios@gmail.com
� � � � � � � � � � � � <mailto:kilon.alios@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