Показаны сообщения с ярлыком cygwin. Показать все сообщения
Показаны сообщения с ярлыком cygwin. Показать все сообщения

пятница, 20 января 2012 г.

Cygwin: Starting Gerrit Code Review: Error: Unable to access jarfile


When you encountered this error then you should search in the file "bin/gerrit.sh" for string Если вы встретили такую ошибку, то необходимо в файле "bin/gerrit.sh" найти строку 

GERRIT_SITE=`pwd`

and replace it to the next string и заменить на следующее

GERRIT_SITE=`cygpath -am \`pwd\``





пятница, 25 ноября 2011 г.

Как в Git игнорировать изменение прав у файлов

Работая в среде Cygwin или MSysGit, часто бывает так что права файлов изменяются, либо внешней средой, либо внутренними процессами.
У меня наиболее часто меняется признак исполнимости. И, к сожалению, пока отсутствует время чтобы разобраться в причинах.

Загадочным, для меня, образом некоторым файлам добавляется +x, некоторым -x. И Git уже начинает считает эти файлы изменёнными, которые обязательно надо закоммитить.
Т.к. происходит такое довольно часто, то это вызывает раздражение и пустую трату времени на починку с помощью chmod и/или git reset --hard.

Так, вот, если в вашем проекте не используются системные права, то можно заставить git игнорировать изменение прав у файлов.

Отключением/включением проверки управляет ключ filemode из секции core.
Его значение необходимо установить в false.

Либо прямым редактированием .gitconfig:
[core]
        filemode = false

Либо командой:
$ git config core.filemode false

Приятной разработки!

четверг, 23 декабря 2010 г.

ffmpeg (ffserver) for windows

Собрал ffmpeg (включая ffserver) под cygwin.
Был использован ключ --disable-yasm.
Версия, согласно git log

commit 390071f52d1b4a768a0083dc55f3d3e361afc06c
Author: mstorsjo
Date:   Wed Dec 22 20:00:42 2010 +0000

 
Кому надо забирайте: страница загрузки или файл.

вторник, 30 ноября 2010 г.

Как передать правильный путь Windows-приложению из Cygwin

Рассмотрим такую ситуацию, для конкретики, возьму Git.
Запущенный под Cygwin, он понимает пути только в Unix-формате, например, "/cygdrive/c/home/projects".
Приложения, вроде KDiff3, P4Merge ждут этот путь в формате "c:\home\projects".

Необходимо как-то сконвертировать.
И такая утилита уже есть в комплекте Cygwin - называется cygpath.
Она имеет много полезных параметров, но, в контексте решаемой задачи, нас интересуют только два:
"-w" конвертирует путь в формат Windows.
"-a" Выдаёт абсолютный путь.


Дополнительно требуется обернуть строки в кавычки, на случай, если в путях попадутся знаки пробелов.
Сейчас разделы инструментов сравнения в моём ~/.gitconfig выглядят так (прочие параметры убрал для наглядности).
[mergetool "kdiff"]
        path = /here_your_path/kdiff3.exe -b \"`cygpath -w -a $BASE`\" \"`cygpath -w -a $LOCAL`\" \"`cygpath -w -a $REMOTE`\" -o \"`cygpath -w -a $MERGED`\"

[mergetool "p4m"]
        cmd = /here_your_path/p4merge \"`cygpath -w -a $BASE`\" \"`cygpath -w -a $LOCAL`\" \"`cygpath -w -a $REMOTE`\" \"`cygpath -w -a $MERGED`\"

[difftool "p4m"]
        cmd = /here_your_path/p4merge \"`cygpath -w -a $LOCAL`\" \"`cygpath -w -a $REMOTE`\"

[difftool "kdiff"]
        cmd = /here_your_path/kdiff3.exe \"`cygpath -w -a $LOCAL`\" \"`cygpath -w -a $REMOTE`\"

среда, 9 декабря 2009 г.

XTerm более правильно работает с юникодом

Оказывается, если настроить и запустить терминалку xterm из под X-сервера, то проблем с utf-8 намного меньше, точнее, я их пока вообще не обнаружил.
Не знаю с чем это связано, но как-то в ней более гладко и грамотно реализован юникод.
Из минусов отмечу только необходимость ручного выбора уникодного шрифта и его размера в меню xterm при первом запуске.
Очевидно, указываю неверные опции командной строки и они не срабатывают.
Но это ерунда по сравнению с тем кайфом, который я теперь испытываю от работы.

среда, 2 декабря 2009 г.

Проблема с командой выхода из Emacs в среде Cygwin

Команда выхода из этого редактора назначена на комбинацию "Ctrl-x Ctrl-c", что по неведомой причине передаётся в программу, как "Ctrl-x Ctrl-g".
Первый способ выхода, который я обнаружил, это временно свернуть emacs, нажав Ctrl-Z, затем найти номер процесса через ps и после этого прибить через kill.
Второй, изменить переменную окружения CYGWIN.
Я добавил следующую строчку в Cygwin.bat непосредственно перед запуском bash.

set CYGWIN=tty notitle glob
 Теперь "Ctrl-x Ctrl-c" отрабатывает как следует и редактор закрывается.

среда, 11 ноября 2009 г.

Git для Cygwin и русские или другие национальные буквы в именах файлов

Сделал приятное открытие для себя.
Например,  представим такой сценарий:
Имеем репозиторий git, который только что создан с помощью git init.
Теперь мы хотим создать и добавить в репозиторий файлик "прочти меня.txt". И видим такую картинку:
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add ..." to include in what will be committed)
#
#       "\320\277\321\200\320\276\321\207\321\202\320\270 \320\274\320\265\320\275\321\217.txt"
nothing added to commit but untracked files present (use "git add" to track)

Что, во-первых неэстетично и непонятно. А во-вторых, если закоммитить и продолжить работу, то могут обнаружаться конфликты файлов из разных веток, которые не могут быть разрешены автоматически. При этом мёржилке не получится отдать правильные имена и будет выдана ошибка, что файл не найден.

Если в .git/config в раздел [core] прописать:
quotepath = false
То происходит небольшое и ожидаемое, но всё-таки волшебство ;)
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add ..." to include in what will be committed)
#
#       прочти меня.txt
nothing added to commit but untracked files present (use "git add" to track)

 Приятной разработки и вам!

вторник, 9 июня 2009 г.

Включение поддержки UTF-8 в cygwin 1.7

При установке по умолчанию CygWin не поддерживает работу с русским языком.
И если попробовать что-то написать в русской раскладке, то получим что-то вроде:
$ фывапр

На многих форумах пишут что для версий меньше 1.7 проблема актуальна, но я сам не проверял. Для сборки 1.5.25-15 существует специальный патч.
Который, судя по всему, был включен в основную ветку.

Итак, чтобы включить поддержку кодировки UTF-8 необходимо проделать следующие шаги:

1. Если ставите CygWin заново, то отметьте в инсталляторе пакеты интернационализации
libintl, libiconv2. Либо просто убедитесь в их наличии при уже установленном CygWin
2. Добавьте или приведите к следующему виду строки в файле /etc/inputrc или ~/.inputrc:
set input-meta on
set meta-flag on
set convert-meta off
set output-meta on

3. Добавьте или приведите к следующему виду строку в файле /etc/profile или ~/.profile:
export LANG=ru_RU.UTF-8

Или же можно создать отдельный файлик локализации в папке /etc/profile.d/. Пусть это будет, например utf-8.sh.

А теперь запускаем CygWin и видим нормальную поддержку русского языка.
В частности, теперь нормально работает git, особенно git svn rebase.

Для некоторых задач удобно использовать GitExtensions. Это довольно неплохая утилита, аналогичная TortoiseGit, но поддерживает совместную работу с Visual Studio 2005, 2008.
Первая проблема - утилита требует файл git.cmd, которого в CygWin нет. Берем его из MSysGit и кладем в c:\cygwin\cmd.
Вторая, в том, что git.cmd не учитывает свойства среды, которые мы настроили ранее, поэтому я немного подправил его до такого вида:

@echo off
set PLINK_PROTOCOL=ssh
setlocal
for /F "delims=" %%I in ("%~dp0") do @set git_install_root=%%~fI
rem set git_install_root=C:\cygwin
set path=%git_install_root%\bin;%git_install_root%\cmd;%PATH%

if "%1"=="gui" @goto gui
:default
for /f "tokens=* usebackq" %%i in (`@cygpath.exe %CD%`) do (
set HOME=%%i
)
bash.exe -lc 'git.sh --git-dir=%HOME%/.git %*'
exit /b %ErrorLevel%
:gui
if "%2"=="citool" @goto default
start wish.exe "%git_install_root%\libexec\git-core\git-gui" -- %2 %3 %4 %5 %6 %7 %8 %9


И вроде бы все достаточно очевидно, но тем не менее, примерно за один день в режиме ленивого гугления, мне не удалось найти подобной статейки на русском.
Надеюсь информация окажется кому-нибудь полезной.