2

私は公式のPurdue RCS ホームページから Windows 用の GNU RCS バージョン 5.7 を使用しています。rcsmerge(1) コマンドを使用して異なるブランチからの変更をマージすると、次のエラーが発生します。

diff3.exe: subsidiary program failed

毎回。なぜこれが起こるべきなのか(少なくとも10年前にこの問題が議論されているのを見たことがあります)、修正方法を知っている人はいますか? GNU 現在の RCS リリース 5.8.1 では修正されていますか? もしそうなら、誰かがこのリリースの Windows バイナリを教えてくれますか?

2012 年 10 月 22 日更新: 現在の GNU diffutils 2.8.7 と同等の Purdue ディストリビューションで提供される diifutils(cmp、diff、diff3、merge) を切り替えました。これでsubsidiary program failedエラーはなくなりましたが、今The filename, directory name, or volume label syntax is incorrect.では rcsmerge または diff3 の呼び出しごとに正確に 2 回発生しています。これは Windows のエラー メッセージのようです。

4

2 に答える 2

2

Eli Zaretskii は、 http://sourceforge.net/projects/ezwinports/filesで彼の ezwinports プロジェクトの一部として RCS 用の Windows バイナリを持っています。

そこの README には、あなたが説明した問題の理由が説明されています。

RCS-5.7-1: これは公式の RCS v5.7.13 ソースを MS-Windows に移植したものです。私がこの移植を行ったのは、既存の GnuWin32 への移植が壊れていたからです。別のプログラムをサブプロセスとして実行する必要のある RCS コマンド (rcsdiff など) は、Spawn* の Windows バージョンで未処理の問題が原因で、クラッシュするか、エラー メッセージを生成します。ライブラリ関数。

私の記憶が正しければ、残念ながらポートには Purdue リリースの「疑似シンボリックリンク」機能がありません。(自己完結型にするための簡単な定義: 疑似シンボリック リンクは、作業ファイルと同じディレクトリにある "RCS" という名前のテキスト ファイルであり、その内容は、へのリンクとして扱われるディレクトリ パスです。マスターファイルを含むディレクトリ。リンクにより、複数の「作業コピー」が「リポジトリ」を共有できます。)

于 2016-02-06T20:25:58.667 に答える
0

diff3.exeからバイナリが欠落しているように見えます%PATH%。また、Purdue パッケージは diff3 のソース コードを提供しているように見えますが、Win32 バイナリは提供していません。

diff3.exe他のソースから既にインストールしている場合は、パスを更新してそのインストール場所を含めるか、(あまり理想的ではありませんが)diff3.exeパスに既に名前が付けられているフォルダーにバイナリを移動します。

インストールしていない場合は、おそらく SourceForge の (古い) UnxUtils プロジェクト、またはDiffUtils プロジェクトから入手できます。

于 2012-10-05T14:48:04.447 に答える