isabanin / mercurial-ruby

Ruby API for Mercurial DVCS.
MIT License
41 stars 14 forks source link

Windows problems #6

Open cignoir opened 8 years ago

cignoir commented 8 years ago

My Environment

Open4 is not compatible with windows because windows doesn't support Process.fork(just only spawn).

c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/open4-1.3.4/lib/open4.rb:62:in `fork': fork() function is unimplemented on this machine (NotImplementedError)
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/open4-1.3.4/lib/open4.rb:62:in `do_popen'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/open4-1.3.4/lib/open4.rb:34:in `popen4'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/command.rb:56:in `block in execution_proc'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/command.rb:49:in `call'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/command.rb:49:in `execute_without_caching'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/command.rb:26:in `execute'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/shell.rb:76:in `run'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/shell.rb:94:in `run'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/shell.rb:90:in `hg'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/helper.rb:6:in `hg'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/helper.rb:16:in `block in hg_to_array'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/helper.rb:15:in `tap'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/helper.rb:15:in `hg_to_array'
        from c:/workspace/myproject/vendor/bundle/ruby/2.2.0/gems/mercurial-ruby-0.7.12/lib/mercurial-ruby/factories/branch_factory.rb:22:in `all'
        from history.rb:11:in `<main>'

Second:

When Mercurial execution path includes space like 'C:\Program Files\Mercurial\hg.exe', shell command can't find hg execution.

cignoir commented 8 years ago

FYI. I'm testing gem "systemu" instead of "open4". systemu is compatible with windows. https://github.com/cignoir/mercurial-ruby

I can send PR, if needed.