4

本番サーバーで正常に機能するカスタムのsubversionpreおよびpostcommitフックがいくつかあります。

開発者のテストには、cywginを使用しています。最近まで、コミットフックも正常に機能していました。

ただし、cygwinの更新を実行した後、フックは次のように失敗します(わかりやすくするために改行が追加されています)。

  0 [main] svn 14820 child_info_fork::abort: 
  C:\cygwin\bin\cygcrypto-1.0.0.dll: Loaded to different address: 
  parent(0x440000) != child(0x590000)

誰かが似たようなものを見たことがありますか?

4

2 に答える 2

7

ここでの問題はフォークの失敗です。Subversionは新しいプロセスをフォークしようとしており、Windowsは予期しないメモリレイアウトで新しいプロセスをロードしています。これは、Cygwinが解決しようとする基本的な問題の1つです。Linuxプログラムは、新しいプロセスを生成するときに、新しいプロセスが古いプロセスと同じメモリレイアウトを持つことを期待しています。新しいプロセスが開始されるたびに、Windowsはメモリレイアウトを積極的に変更します。

文書化された解決策はCygwinFAQにあります

短いバージョンでは、次のことを行う必要があります。

  • すべてのCygwinプロセスを終了します。つまり、すべてのMinTTYウィンドウを閉じたり、実行中のXサーバーを終了したりすることを意味します。タスクマネージャーを確認してください。
  • [スタート]>[実行](またはWin+を押すR)に移動し、を実行しますC:\cygwin\bin\dash
  • 表示されるウィンドウで、を入力/bin/rebaseallして押しReturnます。
  • 自分でコーヒーを作ってください。

ご指摘のとおり、再インストールも機能します。これは、再インストールを実行すると、限られたCygwinリベースがバックグラウンドで実行されるためです。

于 2013-03-26T21:13:57.900 に答える
1

subversionを再インストールすると、これが修正されました。

于 2013-03-25T16:54:40.537 に答える