2015-09-29 14:27 GMT+02:00 Nicolai Hess <nicolaihess@web.de>:


2015-09-29 14:02 GMT+02:00 Nicolai Hess <nicolaihess@web.de>:


2015-09-29 10:14 GMT+02:00 Thierry Goubier <thierry.goubier@gmail.com>:

Yes! Thanks!

Can you run a makefile under Windows? I can prepare one which calls and loads everything to run the tests for gitfiletree.

Or just trying to load something like SmaCC from github...

Gofer new url: 'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo50/main'; configurationOf: 'GitFileTree'; loadDevelopment

Metacello new baseline: 'SmaCC'; repository: 'gitfiletree://github.com/ThierryGoubier/SmaCC?protocol=https'; load

If you manage to get through the SmaCC loading without a crash or a lockup, then it means it nearly certainly works.


No, it does not work, in MCFileTreeGitRepository class>>#runProcessWrapperGitCommand:in:
...


(Smalltalk
������ ������ at: #ProcessWrapper
������ ������ ifAbsent: [ self error: 'Please load ProcessWrapper' ])
������ ������ ifNotNil:
������ ������ ������ [ :pW |
������ ������ ������ | command |
������ ������ ������ command := pW new
������ ������ ������ ������ useStdout;
������ ������ ������ ������ useStderr;
������ ������ ������ ������ startWithCommand:
������ ������ ������ ������ ������ self gitCommand , ' -C "'
������ ������ ������ ������ ������ ������ ,
������ ������ ������ ������ ������ ������ ������ (MCFileTreeFileUtils current directoryPathString: aDirectory)
������ ������ ������ ������ ������ ������ , '" ' , aCommandString.
������ ������ ������ r := command upToEnd.�������������������������������������������������������������� "<<<<<<<<<<<<-------------------�� MNU False>>upToEnd"
...

somehow, the command is a boolean false, instead of a ProcessWrapper.


1. git has to be on the path
2. windows does not understand /usr/bin/git
3. changing the above to

(Smalltalk
������ ������ at: #ProcessWrapper
������ ������ ifAbsent: [ self error: 'Please load ProcessWrapper' ])
������ ������ ifNotNil:
������ ������ ������ [ :pW |
������ ������ ������ | command |
������ ������ ������ command := pW new
������ ������ ������ ������ useStdout;
������ ������ ������ ������ useStderr;
������ ������ ������ ������ startWithCommand:(
������ ������ ������ ������ ������ self gitCommand , ' -C "'
������ ������ ������ ������ ������ ������ ,
������ ������ ������ ������ ������ ������ ������ (MCFileTreeFileUtils current directoryPathString: aDirectory)
������ ������ ������ ������ ������ ������ , '" ' , aCommandString)
�������������������������������� yourself.
������ ������ ������ r := command upToEnd.

makes it loading the git repository, but crashes afterwards.

(with latest vm, I 'll try again with stable vm)

��

still crashes, happens on calling #exitCode

��

��

Thierry
��
��

Am I writing that code correctly? If you see the equivalent code using OSProcess[2], you understand that, as GitFileTree is a heavy hitter(*) on the external commands framework, I am prepared to work very closely with that layer including inside the vm plugin code (and David T Lewis helped me a lot to fix random lockups we had).

Thierry

(*) Running the gitfiletree integration tests launches probably over a hundred external commands in quick succession.

[1] https://github.com/dalehenrich/filetree/blob/pharo5.0/repository/MonticelloFileTree-Git.package/MCFileTreeGitRepository.class/class/runProcessWrapperGitCommand.in..st

[2] https://github.com/dalehenrich/filetree/blob/pharo5.0/repository/MonticelloFileTree-Git.package/MCFileTreeGitRepository.class/class/runOSProcessGitCommand.in..st


Levente