On Tue, 29 Sep 2015, Nicolai Hess wrote:
2015-09-29 14:27 GMT+02:00 Nicolai Hess <nicolaih...@web.de>: 2015-09-29 14:02 GMT+02:00 Nicolai Hess <nicolaih...@web.de>: 2015-09-29 10:14 GMT+02:00 Thierry Goubier <thierry.goub...@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)
There's a semicolon missing from the end of the line.
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
Does #isRunning return true when #exitCode is called? If so, the crash is to be expected - aka it's a known issue. This is because one must not request for the exit code, by sending #exitCode, before the process has terminated.
If it keeps crashing, then you should consider enabling the plugin's log to see what's happening.
Levente
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/runProcessWra pperGitCommand.in..st [2]https://github.com/dalehenrich/filetree/blob/pharo5.0/repository/MonticelloFileTree-Git.package/MCFileTreeGitRepository.class/class/runOSProcessG itCommand.in..st Levente