Сообщение "Disallow Key Characters" возникает только в Mozilla Firefox при просмотре сайта.
Виновником этого сообщения в 99% является неверная установка cookies. В таком поведении замечены GoogleAnalytics и плагин jQuery.UI.Tabs. Быстрое решение - очистить cookies, более правильное - переработать скрипты, выставляющие cookies так, чтобы в ключ попадали только символы (a-z0-9_)
вторник, 10 мая 2011 г.
четверг, 3 марта 2011 г.
Subversion. Ликбез
svn checkout http://repository.url/svn/name — извлекаем файлы проекта из репозитория, сокращение: svn co;
svn update — получаем обновления из репозитория, сокращение: svn up;
svn update -r rev_num ./file_name — извлекаем ревизию файла с номером rev_num;
svn add ./file_name — добавляем файл в репозиторий (не важно текстовый или бинарный);
svn rename ./old_file_name ./new_file_name — переименовываем файл в репозитории;
svn remove ./file_name — удаляем файл/директорию из репозитория;
svn status — просматриваем локально измененные файлы, сокращение: svn st;
svn status -u — просматриваем локально измененные и изменившиеся в репозитории файлы, сокращение: svn st -u;
svn diff ./file_name — показывает локальные изменения в файле построчно;
svn diff -r rev_num1:rev_num2 ./file_name — показывает различия между ревизией rev_num1 и rev_num2 файла;
svn revert ./file_name — откатывает локальные изменения файла (выгружает из репозитория последнюю закоммиченную ревизию);
svn revert -R ./ — откатывает все локальные изменения файлов;
svn log ./file_name — список ревизий с комментариями;
svn blame ./file_name — показывает авторов изменений файла построчно, синоним: svn annotate;
svn propset svn:ignore ./file_name . — добавляем файл в список игнорируемых файлов;
svn propset svn:keywords "Id Author Date" ./file_name — установка атрибутов файла;
svn cleanup — снимает блокировки с файлов;
svn unlock http://repository.url/svn/file_name — снять блокировку файла (URL можно узнать с помощью команды svn info ./file_name | grep URL, его и нужно передавать в svn unlock);
svnadmin setlog --bypass-hooks /path/to/repository -r rev_num ./commit_text_file — заменяет текстовое описание коммита, где rev_num — номер ревизии, commit_text_file — путь к файлу, содержащему новый комментарий к коммиту;
svn help command_name — выводит помощь по команде command_name, например, «svn help update»;
svn merge -r rev_to_rollback:rev_good ./file_name — откатываем ревизию номер rev_to_rollback до ревизии rev_good, причем все изменения старше rev_to_rollback сохраняются (Например, у файла есть ревизии 11,12 и 13. Хотим откатить 12-ую ревизию, но так, что бы изменения 13-ой остались в силе. Делаем тогда так: svn merge -r 12:11 ./file_name);
svn copy http://repository.url/svn/name/trunk/ http://repository.url/svn/name/branches/new_branch_name/ — создаем ветку с названием new_branch_name из главной линии разработки;
svn merge --dry-run -r rev_num1:rev_num2 http://repository.url/svn/name/trunk/ — проверяем, что будет изменено при объединении веток, где rev_num1 — номер ревизии, когда ваша ветка была «открыта», или это м.б. номер предыдущего объединения (слияния), rev_num2 — версия главной линии разработки, с которой производим объединение. Необходимо отметить, что все изменения будут применены для директории, в которой выполнялась эта команда;
svn merge -r rev_num1:rev_num2 http://repository.url/svn/name/trunk/ — синхронизирует вашу ветку с главной линией разработки с учетом ревизий: rev_num1 — номер ревизии, когда ваша ветка была «открыта», или это м.б. номер предыдущего объединения (слияния), rev_num2 — версия главной линии разработки, с которой производим объединение. Необходимо отметить, что все изменения будут применены для директории, в которой выполнялась эта команда;
svn ls http://repository.url/svn/name/branches/ - показать список доступных веток
svn update — получаем обновления из репозитория, сокращение: svn up;
svn update -r rev_num ./file_name — извлекаем ревизию файла с номером rev_num;
svn add ./file_name — добавляем файл в репозиторий (не важно текстовый или бинарный);
svn rename ./old_file_name ./new_file_name — переименовываем файл в репозитории;
svn remove ./file_name — удаляем файл/директорию из репозитория;
svn status — просматриваем локально измененные файлы, сокращение: svn st;
svn status -u — просматриваем локально измененные и изменившиеся в репозитории файлы, сокращение: svn st -u;
svn diff ./file_name — показывает локальные изменения в файле построчно;
svn diff -r rev_num1:rev_num2 ./file_name — показывает различия между ревизией rev_num1 и rev_num2 файла;
svn revert ./file_name — откатывает локальные изменения файла (выгружает из репозитория последнюю закоммиченную ревизию);
svn revert -R ./ — откатывает все локальные изменения файлов;
svn log ./file_name — список ревизий с комментариями;
svn blame ./file_name — показывает авторов изменений файла построчно, синоним: svn annotate;
svn propset svn:ignore ./file_name . — добавляем файл в список игнорируемых файлов;
svn propset svn:keywords "Id Author Date" ./file_name — установка атрибутов файла;
svn cleanup — снимает блокировки с файлов;
svn unlock http://repository.url/svn/file_name — снять блокировку файла (URL можно узнать с помощью команды svn info ./file_name | grep URL, его и нужно передавать в svn unlock);
svnadmin setlog --bypass-hooks /path/to/repository -r rev_num ./commit_text_file — заменяет текстовое описание коммита, где rev_num — номер ревизии, commit_text_file — путь к файлу, содержащему новый комментарий к коммиту;
svn help command_name — выводит помощь по команде command_name, например, «svn help update»;
svn merge -r rev_to_rollback:rev_good ./file_name — откатываем ревизию номер rev_to_rollback до ревизии rev_good, причем все изменения старше rev_to_rollback сохраняются (Например, у файла есть ревизии 11,12 и 13. Хотим откатить 12-ую ревизию, но так, что бы изменения 13-ой остались в силе. Делаем тогда так: svn merge -r 12:11 ./file_name);
svn copy http://repository.url/svn/name/trunk/ http://repository.url/svn/name/branches/new_branch_name/ — создаем ветку с названием new_branch_name из главной линии разработки;
svn merge --dry-run -r rev_num1:rev_num2 http://repository.url/svn/name/trunk/ — проверяем, что будет изменено при объединении веток, где rev_num1 — номер ревизии, когда ваша ветка была «открыта», или это м.б. номер предыдущего объединения (слияния), rev_num2 — версия главной линии разработки, с которой производим объединение. Необходимо отметить, что все изменения будут применены для директории, в которой выполнялась эта команда;
svn merge -r rev_num1:rev_num2 http://repository.url/svn/name/trunk/ — синхронизирует вашу ветку с главной линией разработки с учетом ревизий: rev_num1 — номер ревизии, когда ваша ветка была «открыта», или это м.б. номер предыдущего объединения (слияния), rev_num2 — версия главной линии разработки, с которой производим объединение. Необходимо отметить, что все изменения будут применены для директории, в которой выполнялась эта команда;
svn ls http://repository.url/svn/name/branches/ - показать список доступных веток
Перемещение файла в git из одной ветки в другую
Что же делать, если нужно скопировать файлик из одной ветки git в другую? Браться за голову и делать это руками? Совсем нет. :)
Достаточно сделать в нашей ветке, где файла нет вот такое действие:
$ git checkout другая_ветка путь_к_файлу
и файл магически скопируется из другая_ветка. Останется добавить его и закоммитить.
Отсюда
Достаточно сделать в нашей ветке, где файла нет вот такое действие:
$ git checkout другая_ветка путь_к_файлу
и файл магически скопируется из другая_ветка. Останется добавить его и закоммитить.
Отсюда
вторник, 1 марта 2011 г.
Сертификаты
Потребовалось мне недавно создать https соединение с сервером. Дело нужное и не особо сложное, сертификат самоподписанный сварганить или CAC нормальный поднять - не проблема. Но ведь лучше будет, если сертификат будет подписан каким-либо доверенным центром - вот только большинство сервисов предлагают сертификаты начального уровня от 400$ (VeriSign). Случайно наткнулся на сервис StartSSL, в которм сертификат на один домен можно получить совершенно бесплатно. Срок действия сертификата - 1 год, сертификат подписан доверенным центром. Через 10 минут после регистрации получил сгенерированный сертификат и private key для него. Установил на сертификат на сервер, буквально через 5 минут приходит письмо от StartSSL - "сертификат сервера установлен, а вот корневой сертификат - нет, вот ссылка что нужно сделать, почитайте пожалуйста."
вторник, 15 февраля 2011 г.
Звуки винчестеров
Здесь можно послушать, какие звуки издают винчестеры различных производителей в проблемных ситуациях
воскресенье, 28 ноября 2010 г.
параметры запуска ядра linux
Если нужно узнать, с какими параметрами было запущено ядро linux, используйте команду
cat /proc/cmdline
Перенос файла hosts в MS Windows
Вы в курсе, что в Windows путь к файлу hosts может быть изменен?
Вот проверяете вы файл %SystemRoot%\system32\drivers\etс\hosts
и видите, что там всё красиво, лишних и левых записей нет.
А на самом деле системный ресолвер в этой системе для разрешения имён использует файл, допустим: %SystemRoot%\hosts, в котором прописана куча левой гадости. А всё потому, что в системном реестре прописан параметр:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
DataBasePath = "%SystemRoot%"
вместо дефолтового:
DataBasePath = "%SystemRoot%\System32\drivers\etc
Вот проверяете вы файл %SystemRoot%\system32\drivers\etс\hosts
и видите, что там всё красиво, лишних и левых записей нет.
А на самом деле системный ресолвер в этой системе для разрешения имён использует файл, допустим: %SystemRoot%\hosts, в котором прописана куча левой гадости. А всё потому, что в системном реестре прописан параметр:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
DataBasePath = "%SystemRoot%"
вместо дефолтового:
DataBasePath = "%SystemRoot%\System32\drivers\etc
Подписаться на:
Сообщения (Atom)