Используете Mercurial с Cygwin? - PullRequest
2 голосов
/ 07 января 2011

Мы пытались использовать Mercurial с Cygwin (в Windows), но столкнулись с ошибкой, поскольку Cygwin использует прямые косые черты, а Mercurial, похоже, требует обратной косой черты.Есть ли обходной путь?

Пример проблемы:

hg status 
M src\myfile.java

hg ci src\myfile.java   <-- Error: abort: srcmyfile.java: The system cannot find the file specified

??

Ответы [ 4 ]

10 голосов
/ 12 июля 2012

Добавьте это к вашему .hgrc:

[ui]
slash = true

Теперь TortoiseHg также будет использовать правильные косые черты:

C:> hg status
M src/myfile.java
6 голосов
/ 10 января 2011

У меня нет такой проблемы, потому что я использую два Mercurials:

  • Mercurial в комплекте с TortoiseHG для использования в оболочке Windows cmd (обычно я не использую его напрямую, но он используется инструментами GUI TortoiseHG).
  • Cygwin's Mercurial, который я могу использовать в Cygwin.

Вы можете безопасно использовать их оба, потому что обе версии хранят историю версий в одной папке .hg. Mercurial хранит информацию о путях в папке .hg некоторым независимым от ОС способом.

В целях безопасности используйте одну и ту же версию для обоих Mercurials.

1 голос
/ 07 января 2011

Я решил аналогичную проблему для bzr с помощью сценария оболочки, который преобразует косые черты с помощью команды cygpath.Это может потребовать некоторой настройки для ваших нужд, но вот мой скрипт:

#!/usr/bin/bash
COMMAND="/c/Python27/python.exe c:\\\\Python27\\\\Scripts\\\\bzr"
for i in "$@"
do
    COMMAND+=" "
    if [[ "$i" =~ ^- || "$i" =~ // ]]
    then
        COMMAND+="$i"
    else
        COMMAND+=$(cygpath -m "$i" | sed -e 's/ /\\ /g')
    fi
done
eval $COMMAND

Он циклически перебирает все аргументы командной строки.Если он начинается со знака минус (опция bzr), он просто добавляет аргумент как есть.В противном случае он запускает его через cygpath и покидает все пробелы.Я не помню, для чего "$i" =~ //.Это не соответствует тому, что я думал.Надеюсь, это поможет.

0 голосов
/ 15 марта 2016

Ян Льюис предлагает:

Удалите пакет cygwin mercurial и поместите путь TortoiseHG в мою переменную окружения PATH (ну, он там уже был) и все остальное. TortoiseHG просто волшебным образом работает на windows (хотя ртутные репозитории в сети windows являются sloooooow). Приятно иметь возможность просто набрать 'hg push' и заставить его работать так же, как и "hg merge", так же, как дома на моей машине с Linux (хотя "hg view" это "hgtk log").

Что означает «не используйте Cygwin HG, если вы собираетесь использовать Tortoise HG», что мне кажется лучшим решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...