1

Я использую Cygwin в Windows XP.

Например, есть проблема с Mercurial.

Скажем, мне нужно перенести репо с несколькими повторными репозиториями на удаленный сервер. Эта операция занимает около 20 секунд.

Когда я вызываю hg из cmd.exe , я вижу все действия в режиме реального времени:

pushing subrepo ..... to .....
searching for changes

и т.д. Все хорошо.

Но когда я звоню с терминала cygwin, я hg push , нажимаю Enter, и в течение 20 секунд ничего не отображается на консоли, а затем сразу появляются все журналы.

Почему так, и как я могу избежать этого?

3 ответа3

1

Я использую Mercurial под Cygwin, и у меня нет описанной проблемы. Это "родная" версия Windows для Mercurial или версия Cygwin? Если первое, попробуйте второе.

1

Я знаю, что это старая тема, но я сталкивался с этой проблемой в течение последних 3 лет. И примерно через месяц я разваливалась по швам и больше не могла это терпеть. Это может быть немного тупым или грубым, но это работает ... и работает без проблем 2,75 года.

Вот что мешало моему ноутбуку попасть на улицу

$ ln -s `where ping.exe | grep -v rh` /usr/bin/ping.exe

Вот как я туда попал ...

david@Covet ~
$ which ping.exe
/usr/bin/ping.exe

david@Covet ~
$ /usr/bin/ping.exe
Usage:  ping [-dfqrv] host [packetsize [count [preload]]]

david@Covet ~
$ where ping.exe
C:\rhcygwin64\bin\ping.exe
C:\Windows\System32\PING.EXE

david@Covet ~
$ mv /usr/bin/ping.exe /usr/bin/cyping.exe

david@Covet ~
$ ln -s `where ping.exe | grep -v rh` /usr/bin/ping.exe

david@Covet ~
$ which ping
/usr/bin/ping

david@Covet ~
$ ping

Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
            [-r count] [-s count] [[-j host-list] | [-k host-list]]
            [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

Options:
    -t             Ping the specified host until stopped.
                   To see statistics and continue - type Control-Break;
                   To stop - type Control-C.
    -a             Resolve addresses to hostnames.
    -n count       Number of echo requests to send.
    -l size        Send buffer size.
    -f             Set Don't Fragment flag in packet (IPv4-only).
    -i TTL         Time To Live.
    -v TOS         Type Of Service (IPv4-only. This setting has been deprecated
                   and has no effect on the type of service field in the IP Header).
    -r count       Record route for count hops (IPv4-only).
    -s count       Timestamp for count hops (IPv4-only).
    -j host-list   Loose source route along host-list (IPv4-only).
    -k host-list   Strict source route along host-list (IPv4-only).
    -w timeout     Timeout in milliseconds to wait for each reply.
    -R             Use routing header to test reverse route also (IPv6-only).
    -S srcaddr     Source address to use.
    -4             Force using IPv4.
    -6             Force using IPv6.

david@Covet ~
$ ping -t 8.8.8.8

Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=13ms TTL=54
Reply from 8.8.8.8: bytes=32 time=13ms TTL=54
Reply from 8.8.8.8: bytes=32 time=13ms TTL=54
Reply from 8.8.8.8: bytes=32 time=13ms TTL=54
Reply from 8.8.8.8: bytes=32 time=13ms TTL=54
Reply from 8.8.8.8: bytes=32 time=14ms TTL=54
Reply from 8.8.8.8: bytes=32 time=14ms TTL=54


david@Covet ~
$

Я надеюсь, что это помогает кому-то, кому-то как это помогло мне.

0

Я знаю, что при реализации кода командной строки в C/C++ это поведение может контролироваться командой fflush() для очистки выходного буфера, fclose() будет делать то же самое.

Таким образом, это зависит от программы, которую вы запускаете, и от того, как часто они сбрасываются ().

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .