9

仕事では、Cygwin をよく使用します。Windows の広大な砂漠に小さなオアシスを提供してくれるからです。必然的に、ビルド スクリプト (社内で作成したバッチ ファイル) や Subversion CLI バイナリ (Windows のものをインストールしています) など、Cygwin 以外のプログラムを bash シェルで実行することになります。99% の確率で、このセットアップを使用しても問題はありません。ただし、残りの 1% は奇妙な問題を引き起こします。

ビルド スクリプトと SVN の両方で、ほとんどの場合、Enter キーは正しく解釈されます。たとえば、データベース作成スクリプトを開始すると、サーバー名の入力を求められます。「localhost」と入力してEnterキーを押します。すべて順調。次に、エラーがあれば最後に到達し、 を使用して出力しmoreます。押したキーが認識されませんmore。私はそれからCtrl-Cをしなければなりません。

同様に、Subversion の更新を行う場合、通常はすべて問題ありません。ただし、対話型の競合解決が行われる場合は、通常、"theirs-full" の代わりに "tf" と入力して Enter キーを押しますが、何も起こりません。Ctrl-C を押して、強制マージで更新を再実行するか、Windows で TortoiseSVN を使用する必要があります。

Cygwin がランダムにエンター キーをプログラムに渡していないように見える理由は何ですか? Unix と Windows のスタイルの行末に関係があるのではないかと考えたので、それらの文字を手動で入力してみましたが、違いはないようです。ありがとう。

編集:これが再び私に起こり、何かに気づきました。パスワードの入力を求めたのはSVNでした。パスワードを入力すると、画面にエコーされ(悪い)、Enterキーを押しました...何もありません。Enter キーを数回押すと、カーソルが移動しますが、何も起こりません。Ctrl-C を押すと、bash に戻り、「bash: [パスワード]: コマンドが見つかりません」と表示され、Enter キーを押した回数と同じ数の新しいプロンプトが表示されます。何が起こったのかというと、入力が SVN に到達することはありませんでしたが、SVN が終了した後に何らかの形で bash によって読み取られました。誰かが何が起こっているのかを理解するのに役立つかもしれないと思いました.

4

2 に答える 2

11

残念ながら、Cygwin と Windows/DOS コンソール アプリの問題の 1 つにぶつかっていると思います。http://www.cygwin.com/cygwin-ug-net/using-effectively.htmlの「コンソール プログラム」を参照してください。

これは、Windows コンソール アプリの単なる制限です。この動作は、たとえば、Windows の myqsl cmd クライアントと svn クライアントで一般的です。

ここに注意すべき点がいくつかあります - 私は Windows mysql と Windows svn クライアントの両方でこのアプローチをうまく使用しました:

1) CYGWIN 環境変数に「tty」がないことを確認し、それが役立つかどうかを確認してください ([マイ コンピューター] -> [プロパティ] -> [詳細設定] -> [環境変数] で設定を解除し、cygwin bash プロンプトを閉じる/再起動します)。

2) RXVT を使用しないでください。代わりに、基本的な Cygwin コマンド プロンプトを使用してください。これは、RXVT が「tty」を意味し、上記の #1 を壊すためです。

3) Windows コマンドを使用する代わりに、問題のあるコマンドの「ネイティブ」Cygwin パッケージを見つけてみてください。(ただし、cygwin 用の 1.6 svn クライアントはまだ見つかりません。)

幸運を!ダスティン

于 2008-12-02T17:41:30.580 に答える
2

mintty プロジェクトに関する長い議論はこちら - http://code.google.com/p/mintty/issues/detail?id=56

私の場合(ネイティブのサブバージョンの認証パスワードを入力する)で機能した前述のソリューションの1つはconinです- http://code.google.com/p/mintty/downloads/detail?name=conin-0.0.2.zip&can=1&q=label %3A開発

$ conin svn list https://{repo}
Password for 'user': ******
于 2012-06-15T07:13:40.720 に答える