On Tue, 29 Sep 2015, Nicolai Hess wrote:
2015-09-29 14:27 GMT+02:00 Nicolai Hess <[email protected]>:
2015-09-29 14:02 GMT+02:00 Nicolai Hess <[email protected]>:
2015-09-29 10:14 GMT+02:00 Thierry Goubier
<[email protected]>:
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