Compare commits
12 Commits
f56fff2bd3
...
adoc
Author | SHA1 | Date | |
---|---|---|---|
c36bbc9678 | |||
5661034292 | |||
322cd0643e | |||
bf0c4a6c26 | |||
3b34f960b5 | |||
02568f482b | |||
e312541ae7 | |||
f3206726a0 | |||
adb7098d1c | |||
f8a740a624 | |||
0003a98c30 | |||
0bc4923a7b |
2
.gitignore
vendored
2
.gitignore
vendored
@ -7,4 +7,6 @@ __pycache__
|
|||||||
wiki/trash
|
wiki/trash
|
||||||
wiki/notes.sqlite
|
wiki/notes.sqlite
|
||||||
upload.sh
|
upload.sh
|
||||||
|
wiki/**/*.png
|
||||||
|
wiki/**/*.png.cache
|
||||||
|
|
||||||
|
8
Makefile
8
Makefile
@ -1,9 +1,9 @@
|
|||||||
build:
|
build:
|
||||||
pelican
|
pelican -s pelicanconf.py
|
||||||
|
|
||||||
pdf:
|
web:
|
||||||
pelican -s pelicanconf-full.py
|
pelican -s pelicanconf-web.py
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf cache-html cache-full cache __pycache__
|
rm -rf cache __pycache__
|
||||||
|
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
Сайт ДСП
|
Сайт ДСП
|
||||||
========
|
========
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo apt-get install pelican asciidoctor ruby-asciidoctor-pdf plantuml yui-compressor
|
||||||
|
sudo gem install asciidoctor-diagram
|
||||||
|
```
|
||||||
|
|
||||||
Установка:
|
Установка:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -36,7 +36,7 @@ SITENAME = 'ДСП'
|
|||||||
SITEURL = 'https://dsp.246060.ru'
|
SITEURL = 'https://dsp.246060.ru'
|
||||||
|
|
||||||
PATH = 'wiki'
|
PATH = 'wiki'
|
||||||
CACHE_PATH = 'cache-full'
|
CACHE_PATH = 'cache'
|
||||||
|
|
||||||
TIMEZONE = 'Europe/Moscow'
|
TIMEZONE = 'Europe/Moscow'
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ I18N_GETTEXT_DOMAIN = 'messages'
|
|||||||
JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']}
|
JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']}
|
||||||
|
|
||||||
PLUGIN_PATHS = ["plugins/official", "plugins/thirdparty"]
|
PLUGIN_PATHS = ["plugins/official", "plugins/thirdparty"]
|
||||||
PLUGINS = [i18n(), "pelican-css", "pelidoc", "series", "subcategory", "tag_cloud", "tipue_search", "replacer", "asciidoctor"]
|
PLUGINS = [i18n(), "pelican-css", "series", "subcategory", "tag_cloud", "tipue_search", "replacer", "asciidoctor"]
|
||||||
|
|
||||||
|
|
||||||
ASCIIDOCTOR_CMD = "asciidoctor"
|
ASCIIDOCTOR_CMD = "asciidoctor"
|
||||||
@ -87,6 +87,7 @@ ASCIIDOCTOR_EXTRA_OPTIONS = [
|
|||||||
'--attribute=pygments-css=class',
|
'--attribute=pygments-css=class',
|
||||||
'--attribute=lang=ru',
|
'--attribute=lang=ru',
|
||||||
'--attribute=figure-caption=Рис.',
|
'--attribute=figure-caption=Рис.',
|
||||||
|
'--attribute=toc-title=Содержание',
|
||||||
'--attribute=experimental',
|
'--attribute=experimental',
|
||||||
]
|
]
|
||||||
|
|
@ -75,7 +75,7 @@ I18N_GETTEXT_DOMAIN = 'messages'
|
|||||||
JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']}
|
JINJA_ENVIRONMENT = {'extensions': ['jinja2.ext.i18n']}
|
||||||
|
|
||||||
PLUGIN_PATHS = ["plugins/official", "plugins/thirdparty"]
|
PLUGIN_PATHS = ["plugins/official", "plugins/thirdparty"]
|
||||||
PLUGINS = [i18n(), "pelican-css", "pelidoc", "series", "subcategory", "tag_cloud", "tipue_search", "replacer", "asciidoctor"]
|
PLUGINS = [i18n(), "pelican-css", "series", "subcategory", "tag_cloud", "tipue_search", "replacer", "asciidoctor"]
|
||||||
|
|
||||||
|
|
||||||
ASCIIDOCTOR_CMD = "asciidoctor"
|
ASCIIDOCTOR_CMD = "asciidoctor"
|
||||||
@ -99,7 +99,7 @@ YUICOMPRESSOR_EXECUTABLE = "yui-compressor"
|
|||||||
YUICOMPRESSOR_EXTRA_OPTIONS = ["--nomunge"]
|
YUICOMPRESSOR_EXTRA_OPTIONS = ["--nomunge"]
|
||||||
#PLUGINS += ["yuicompressor-opt"]
|
#PLUGINS += ["yuicompressor-opt"]
|
||||||
|
|
||||||
#PDF_PROCESSOR = True
|
PDF_PROCESSOR = True
|
||||||
|
|
||||||
# Blogroll
|
# Blogroll
|
||||||
LINKS = ()
|
LINKS = ()
|
||||||
|
2
plugins/thirdparty/asciidoctor
vendored
2
plugins/thirdparty/asciidoctor
vendored
Submodule plugins/thirdparty/asciidoctor updated: 9e0019a728...288c5aeba0
Submodule themes/bootstrap4 updated: 905ab86433...ce6b18660a
@ -1,8 +1,8 @@
|
|||||||
= LaTeX: висячие строки
|
= LaTeX: висячие строки
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: LaTeX
|
:category: LaTeX
|
||||||
:tags: LaTeX, текст,
|
:tags: LaTeX, текст,
|
||||||
|
|
||||||
|
|
||||||
Пакет https://www.ctan.org/pkg/nowidow[`nowidow`] используется для
|
Пакет https://www.ctan.org/pkg/nowidow[`nowidow`] используется для
|
||||||
изменения алгоритма размещения висячих строк. Пример:
|
изменения алгоритма размещения висячих строк. Пример:
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= LyX: редактирование ЕСПД
|
= LyX: редактирование ЕСПД
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: LaTeX
|
:category: LaTeX
|
||||||
:tags: LaTeX, текст, LyX,
|
:tags: LaTeX, текст, LyX,
|
||||||
|
|
||||||
@ -10,7 +11,7 @@
|
|||||||
sudo apt-get install lyx texlive-xetex
|
sudo apt-get install lyx texlive-xetex
|
||||||
----
|
----
|
||||||
|
|
||||||
Установить стили LaTeX для ЕСПД:
|
Установить стили LaTeX для http://tiny.cc/u8eo7y[ЕСПД]:
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
@ -34,54 +35,71 @@ git clone https://git.246060.ru:/f1x1t/lyx-layout-espdx.git ~/.lyx/layouts
|
|||||||
|
|
||||||
Пример настройки:
|
Пример настройки:
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Класс документа
|
.Класс документа
|
||||||
image::lyx-espdx/01.png[Класс документа]
|
image::lyx-espdx/01.png[Класс документа]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Модули
|
.Модули
|
||||||
image::lyx-espdx/02.png[Модули]
|
image::lyx-espdx/02.png[Модули]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Шрифты
|
.Шрифты
|
||||||
image::lyx-espdx/03.png[Шрифты]
|
image::lyx-espdx/03.png[Шрифты]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Макет текста
|
.Макет текста
|
||||||
image::lyx-espdx/04.png[Макет текста]
|
image::lyx-espdx/04.png[Макет текста]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Макет страницы
|
.Макет страницы
|
||||||
image::lyx-espdx/05.png[Макет страницы]
|
image::lyx-espdx/05.png[Макет страницы]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Поля страницы
|
.Поля страницы
|
||||||
image::lyx-espdx/06.png[Поля страницы]
|
image::lyx-espdx/06.png[Поля страницы]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Язык
|
.Язык
|
||||||
image::lyx-espdx/07.png[Язык]
|
image::lyx-espdx/07.png[Язык]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Нумерация и содержание
|
.Нумерация и содержание
|
||||||
image::lyx-espdx/08.png[Нумерация и содержание]
|
image::lyx-espdx/08.png[Нумерация и содержание]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Библиография
|
.Библиография
|
||||||
image::lyx-espdx/09.png[Библиография]
|
image::lyx-espdx/09.png[Библиография]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Предметный указатель
|
.Предметный указатель
|
||||||
image::lyx-espdx/10.png[Предметный указатель]
|
image::lyx-espdx/10.png[Предметный указатель]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Свойства PDF / Общие
|
.Свойства PDF / Общие
|
||||||
image::lyx-espdx/11.png[Свойства PDF / Общие]
|
image::lyx-espdx/11.png[Свойства PDF / Общие]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Свойства PDF / Гиперссылки
|
.Свойства PDF / Гиперссылки
|
||||||
image::lyx-espdx/12.png[Свойства PDF / Гиперссылки]
|
image::lyx-espdx/12.png[Свойства PDF / Гиперссылки]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Свойства PDF / Закладки
|
.Свойства PDF / Закладки
|
||||||
image::lyx-espdx/13.png[Свойства PDF / Закладки]
|
image::lyx-espdx/13.png[Свойства PDF / Закладки]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Параметры математики
|
.Параметры математики
|
||||||
image::lyx-espdx/14.png[Параметры математики]
|
image::lyx-espdx/14.png[Параметры математики]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Размещение плавающих объектов
|
.Размещение плавающих объектов
|
||||||
image::lyx-espdx/15.png[Размещение плавающих объектов]
|
image::lyx-espdx/15.png[Размещение плавающих объектов]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Форматы
|
.Форматы
|
||||||
image::lyx-espdx/16.png[Форматы]
|
image::lyx-espdx/16.png[Форматы]
|
||||||
|
|
||||||
|
[.text-center]
|
||||||
.Преамбула LaTeX
|
.Преамбула LaTeX
|
||||||
image::lyx-espdx/17.png[Преамбула LaTeX]
|
image::lyx-espdx/17.png[Преамбула LaTeX]
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= LaTeX: защита команд
|
= LaTeX: защита команд
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: LaTeX
|
:category: LaTeX
|
||||||
:tags: LaTeX, текст,
|
:tags: LaTeX, текст,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= LaTeX: лигатуры
|
= LaTeX: лигатуры
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: LaTeX
|
:category: LaTeX
|
||||||
:tags: LaTeX, шрифты,
|
:tags: LaTeX, шрифты,
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
= LyX: многостраничные таблицы
|
= LyX: многостраничные таблицы
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: LaTeX
|
:category: LaTeX
|
||||||
:tags: LaTeX, текст, LyX, таблицы,
|
:tags: LaTeX, текст, LyX, таблицы,
|
||||||
|
|
||||||
* Создать таблицу как минимум с четырьмя строками.
|
* Создать таблицу как минимум с четырьмя строками.
|
||||||
* Щелкнуть правой кнопкой мыши на таблице, выбрать во всплывающем меню
|
* Щёлкнуть правой кнопкой мыши на таблице, выбрать во всплывающем меню
|
||||||
*Длинная таблица*.
|
*Длинная таблица*.
|
||||||
* Щелкнуть правой кнопкой мыши на таблице, выбрать во всплывающем меню
|
* Щёлкнуть правой кнопкой мыши на таблице, выбрать во всплывающем меню
|
||||||
*Настройки*.
|
*Настройки*.
|
||||||
* Установить курсор на первой строке таблицы, в окне настроек перейти на
|
* Установить курсор на первой строке таблицы, в окне настроек перейти на
|
||||||
вкладку *Длинная таблица*.
|
вкладку *Длинная таблица*.
|
||||||
@ -17,9 +18,9 @@
|
|||||||
* Нажать *Применить*.
|
* Нажать *Применить*.
|
||||||
* Установить курсор на третьей строке таблицы, в окне настроек перейти
|
* Установить курсор на третьей строке таблицы, в окне настроек перейти
|
||||||
на вкладку *Длинная таблица*.
|
на вкладку *Длинная таблица*.
|
||||||
* Выбрать *Заголовок* и *Первый заколовок*.
|
* Выбрать *Заголовок* и *Первый заголовок*.
|
||||||
* Нажать *Применить*.
|
* Нажать *Применить*.
|
||||||
* Щелкнуть правой кнопкой мыши на второй строке таблицы, выбрать в меню
|
* Щёлкнуть правой кнопкой мыши на второй строке таблицы, выбрать в меню
|
||||||
*Подпись (Ненумерованный)*.
|
*Подпись (Ненумерованный)*.
|
||||||
* На первой строке таблицы установить метку и ввести текст подписи к
|
* На первой строке таблицы установить метку и ввести текст подписи к
|
||||||
таблице на начальной странице.
|
таблице на начальной странице.
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= LaTeX: переносы строк
|
= LaTeX: переносы строк
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: LaTeX
|
:category: LaTeX
|
||||||
:tags: LaTeX, текст,
|
:tags: LaTeX, текст,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= LaTeX: русский язык в выходном PDF
|
= LaTeX: русский язык в выходном PDF
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: LaTeX
|
:category: LaTeX
|
||||||
:tags: LaTeX, текст, PDF,
|
:tags: LaTeX, текст, PDF,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Astra: авторизация в PostgreSQL через PAM
|
= Astra: авторизация в PostgreSQL через PAM
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Linux
|
:category: Linux
|
||||||
:tags: Linux, Astra, postgresql, базы данных,
|
:tags: Linux, Astra, postgresql, базы данных,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= CUPS: команды
|
= CUPS: команды
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Linux
|
:category: Linux
|
||||||
:tags: Linux, печать, CUPS,
|
:tags: Linux, печать, CUPS,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= GnuPG: шифрование файлов
|
= GnuPG: шифрование файлов
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Linux
|
:category: Linux
|
||||||
:tags: Linux, GnuPG, безопасность
|
:tags: Linux, GnuPG, безопасность
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= runit: система инициализации
|
= runit: система инициализации
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Linux
|
:category: Linux
|
||||||
:tags: Debian, Ubuntu, Linux, инициализация, runit,
|
:tags: Debian, Ubuntu, Linux, инициализация, runit,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Linux: полезные ссылки
|
= Linux: полезные ссылки
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Linux
|
:category: Linux
|
||||||
:tags: Linux, ссылки,
|
:tags: Linux, ссылки,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Libgen: локальная база данных для Windows
|
= Libgen: локальная база данных для Windows
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Windows
|
:category: Windows
|
||||||
:tags: windows, libgen, библиотеки, книги,
|
:tags: windows, libgen, библиотеки, книги,
|
||||||
|
|
||||||
@ -13,7 +14,6 @@ http://gen.lib.rus.ec/dbdumps/[здесь]. В архиве базы с имен
|
|||||||
Для обработки полного архива потребуется около 30 ГБ свободного
|
Для обработки полного архива потребуется около 30 ГБ свободного
|
||||||
пространства. Последовательность действий:
|
пространства. Последовательность действий:
|
||||||
|
|
||||||
[arabic]
|
|
||||||
* https://yadi.sk/d/j_ToPE7D3SHGN6[Скачать] и распаковать программу
|
* https://yadi.sk/d/j_ToPE7D3SHGN6[Скачать] и распаковать программу
|
||||||
Libgen.
|
Libgen.
|
||||||
* Скачать архив базы данных, распаковать его в каталог `upload` и
|
* Скачать архив базы данных, распаковать его в каталог `upload` и
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
= CMake: управление проектом
|
= CMake: управление проектом
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Программирование
|
:category: Программирование
|
||||||
:tags: программирование, cmake,
|
:tags: программирование, cmake,
|
||||||
|
|
||||||
:toc:
|
:toc:
|
||||||
|
|
||||||
== Полезные ссылки
|
== Полезные ссылки
|
||||||
@ -40,7 +40,7 @@ Hitchhiker’s Guide to the CMake]
|
|||||||
|
|
||||||
Назначение каталогов приведено в таблице.
|
Назначение каталогов приведено в таблице.
|
||||||
|
|
||||||
[cols=",",options="header",]
|
[cols="1,3",options="header",]
|
||||||
|===
|
|===
|
||||||
|Каталог |Назначение
|
|Каталог |Назначение
|
||||||
|`cmex/_build` |Результаты компиляции
|
|`cmex/_build` |Результаты компиляции
|
||||||
@ -76,6 +76,14 @@ Hitchhiker’s Guide to the CMake]
|
|||||||
|
|
||||||
== Начало проекта
|
== Начало проекта
|
||||||
|
|
||||||
|
Проект, в котором выполнены приведённые ниже действия, можно посмотреть
|
||||||
|
https://git.246060.ru/f1x1t/cmex[здесь] или сделать его копию командой:
|
||||||
|
|
||||||
|
[source,sh]
|
||||||
|
----
|
||||||
|
git clone --recursive https://git.246060.ru/f1x1t/cmex
|
||||||
|
----
|
||||||
|
|
||||||
В каталоге `cmex` нужно создать файл `CMakeLists.txt`:
|
В каталоге `cmex` нужно создать файл `CMakeLists.txt`:
|
||||||
|
|
||||||
[source,cmake]
|
[source,cmake]
|
||||||
@ -91,12 +99,17 @@ project(cmex VERSION 0.2.0 LANGUAGES C CXX)
|
|||||||
Значение версии следует формировать согласно правилам
|
Значение версии следует формировать согласно правилам
|
||||||
https://semver.org/lang/ru/[семантического версионирования].
|
https://semver.org/lang/ru/[семантического версионирования].
|
||||||
|
|
||||||
В каталог `cmake/cmlib` установить субмодуль CMLib, содержащий функции
|
В каталоге `cmex` нужно инициализировать репозиторий и установить
|
||||||
для CMake:
|
подмодули, содержащие функции для CMake:
|
||||||
|
|
||||||
....
|
[source,sh]
|
||||||
git submodule add ssh://git@gitlab-server/root/cmlib cmake/cmlib
|
----
|
||||||
....
|
git init .
|
||||||
|
git submodule add https://git.246060.ru/f1x1t/cmlib cmake/cmlib
|
||||||
|
git submodule add https://git.246060.ru/f1x1t/cmake-find cmake/find
|
||||||
|
git submodule add https://git.246060.ru/f1x1t/cmake-generators cmake/generators
|
||||||
|
git submodule update --remote --init
|
||||||
|
----
|
||||||
|
|
||||||
и подключить в файле `CMakeLists.txt`:
|
и подключить в файле `CMakeLists.txt`:
|
||||||
|
|
||||||
@ -390,7 +403,7 @@ include(ExternalProject)
|
|||||||
|
|
||||||
ExternalProject_Add(cmext
|
ExternalProject_Add(cmext
|
||||||
EXCLUDE_FROM_ALL TRUE
|
EXCLUDE_FROM_ALL TRUE
|
||||||
SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/libcmext
|
SOURCE_DIR ${CMAKE_SOURCE_DIR}/thirdparty/cmext
|
||||||
INSTALL_DIR ${CMAKE_BINARY_DIR}
|
INSTALL_DIR ${CMAKE_BINARY_DIR}
|
||||||
DOWNLOAD_COMMAND ""
|
DOWNLOAD_COMMAND ""
|
||||||
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libcmext.a
|
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libcmext.a
|
||||||
@ -536,7 +549,7 @@ int main(int argc, char **argv) {
|
|||||||
После сборки проекта в каталоге `cmex/l10n` появится файл
|
После сборки проекта в каталоге `cmex/l10n` появится файл
|
||||||
`cmex_app_ru_RU.ts`, в котором нужно отредактировать переводы с помощью
|
`cmex_app_ru_RU.ts`, в котором нужно отредактировать переводы с помощью
|
||||||
программы `linguist`. После сохранения переводов проект нужно
|
программы `linguist`. После сохранения переводов проект нужно
|
||||||
пересобрать, файл переводов в скопилированном виде будет встроен в
|
пересобрать, файл переводов в скомпилированном виде будет встроен в
|
||||||
исполняемый файл `cmex`, а доступ к нему будет осуществляться с помощью
|
исполняемый файл `cmex`, а доступ к нему будет осуществляться с помощью
|
||||||
кода:
|
кода:
|
||||||
|
|
||||||
@ -694,7 +707,7 @@ target_link_libraries(${current_target} Qt5::Widgets)
|
|||||||
----
|
----
|
||||||
|
|
||||||
Во время сборки проекта в файл переводов `cmex/l10n/cmex_app_ru_RU.ts`
|
Во время сборки проекта в файл переводов `cmex/l10n/cmex_app_ru_RU.ts`
|
||||||
будут добавлены повые строки, их нужно перевести с помощью `linguist` и
|
будут добавлены новые строки, их нужно перевести с помощью `linguist` и
|
||||||
снова скомпилировать проект.
|
снова скомпилировать проект.
|
||||||
|
|
||||||
== Удаление установленных файлов
|
== Удаление установленных файлов
|
||||||
@ -704,7 +717,7 @@ target_link_libraries(${current_target} Qt5::Widgets)
|
|||||||
|
|
||||||
== Архивирование проекта
|
== Архивирование проекта
|
||||||
|
|
||||||
Стандарный модуль `CPack` осуществляет архивирование проекта. В файле
|
Стандартный модуль `CPack` осуществляет архивирование проекта. В файле
|
||||||
`cproj/cmake/etc/cpack_ignore.txt` определён список типовых масок файлов
|
`cproj/cmake/etc/cpack_ignore.txt` определён список типовых масок файлов
|
||||||
для исключения из архива:
|
для исключения из архива:
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Intel Parallel Studio: установка в образ для чтения
|
= Intel Parallel Studio: установка в образ для чтения
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Linux/Программы
|
:category: Linux/Программы
|
||||||
:tags: Linux, Intel, компилятор, C++,
|
:tags: Linux, Intel, компилятор, C++,
|
||||||
|
|
||||||
@ -27,7 +28,7 @@ sudo setcap cap_sys_ptrace=eip /opt/intel/vtune_amplifier/bin64/amplxe-perf
|
|||||||
. Создать образ
|
. Создать образ
|
||||||
`mksquashfs /opt/intel/* /home/user/intel.sfs -comp xz -Xbcj x86 -all-root -b 512K`
|
`mksquashfs /opt/intel/* /home/user/intel.sfs -comp xz -Xbcj x86 -all-root -b 512K`
|
||||||
. Удалить содержимое каталога `/opt/intel`.
|
. Удалить содержимое каталога `/opt/intel`.
|
||||||
. Подмонтировать образ:
|
. Примонтировать образ:
|
||||||
`mount -t squashfs /home/user/intel.sfs /opt/intel`
|
`mount -t squashfs /home/user/intel.sfs /opt/intel`
|
||||||
. Добавить в файл `/home/user/.bashrc` строки:
|
. Добавить в файл `/home/user/.bashrc` строки:
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ Analysis, GA). Включить дополнительные правила мо
|
|||||||
....
|
....
|
||||||
|
|
||||||
Выбор типов предупреждений осуществляется на основе побитовой маски из
|
Выбор типов предупреждений осуществляется на основе побитовой маски из
|
||||||
приведенных выше типов. Чтобы выполнить анализ, исключив проверки MISRA,
|
приведённых выше типов. Чтобы выполнить анализ, исключив проверки MISRA,
|
||||||
нужно выполнить
|
нужно выполнить
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
= Построение профиля местности в QGis
|
= Построение профиля местности в Gis
|
||||||
:category: Картография
|
:category: Картография
|
||||||
:tags: картография, qgis, sxf, shp, gdal,
|
:tags: картография, qgis, sxf, shp, gdal,
|
||||||
|
|
||||||
@ -11,11 +11,11 @@
|
|||||||
image:qgis-heights/1.png[Слои карты]
|
image:qgis-heights/1.png[Слои карты]
|
||||||
|
|
||||||
[arabic, start=3]
|
[arabic, start=3]
|
||||||
. На панели *Панель слоёв* правой кнопкой мыши щелкнуть на слое,
|
. На панели *Панель слоёв* правой кнопкой мыши щёлкнуть на слое,
|
||||||
содержащем данные о высотах, и выбрать *Фильтр…*.
|
содержащем данные о высотах, и выбрать *Фильтр…*.
|
||||||
. Построить выражение выбирающие только данные с высотами, например,
|
. Построить выражение выбирающие только данные с высотами, например,
|
||||||
`"CLNAME" ILIKE '%ГОРИЗОНТАЛИ ОСНОВ%'` и нажить *OK*.
|
`"CLNAME" ILIKE '%ГОРИЗОНТАЛИ ОСНОВ%'` и нажить *OK*.
|
||||||
. На панели *Панель слоёв* правой кнопкой мыши щелкнуть на слое,
|
. На панели *Панель слоёв* правой кнопкой мыши щёлкнуть на слое,
|
||||||
содержащем данные о высотах, и выбрать *Сохранить как…*. Появившийся
|
содержащем данные о высотах, и выбрать *Сохранить как…*. Появившийся
|
||||||
новый слой *heights* следует удалить.
|
новый слой *heights* следует удалить.
|
||||||
. В появившемся диалоговом окне выбрать имя выходного файла, например,
|
. В появившемся диалоговом окне выбрать имя выходного файла, например,
|
||||||
@ -27,7 +27,7 @@ image:qgis-heights/2.png[Имя выходного файла]
|
|||||||
. В каталоге `/home/a/work/map` выполнить команду, которая в файле
|
. В каталоге `/home/a/work/map` выполнить команду, которая в файле
|
||||||
`heights.shp` из слоя `heights` берёт данные о высотах из поля `SC_4` и
|
`heights.shp` из слоя `heights` берёт данные о высотах из поля `SC_4` и
|
||||||
генерирует матрицу высот размером 2000 на 2000 в формате BMP. Настойки
|
генерирует матрицу высот размером 2000 на 2000 в формате BMP. Настойки
|
||||||
алгоритма посторения матрицы можно изменять с помощью параметра `-a`:
|
алгоритма построения матрицы можно изменять с помощью параметра `-a`:
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
|
@ -1 +0,0 @@
|
|||||||
{"checksum":"81886ef1b8d31cdb2b865473bbeb2cf9","width":671,"height":550}
|
|
@ -1 +0,0 @@
|
|||||||
{"checksum":"e76d88ee3db613b3f806d8c773281fdc","width":685,"height":363}
|
|
@ -1,4 +1,5 @@
|
|||||||
= Git: автоматическое сохранение в репозиторий
|
= Git: автоматическое сохранение в репозиторий
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Программирование
|
:category: Программирование
|
||||||
:tags: программирование, git,
|
:tags: программирование, git,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Git: замена адреса подмодуля
|
= Git: замена адреса подмодуля
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Программирование
|
:category: Программирование
|
||||||
:tags: программирование, git,
|
:tags: программирование, git,
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
= Git: основные команды
|
= Git: основные команды
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Программирование
|
:category: Программирование
|
||||||
:tags: программирование, git
|
:tags: программирование, git
|
||||||
|
:toc:
|
||||||
|
|
||||||
== Ссылки
|
== Ссылки
|
||||||
|
|
||||||
@ -19,7 +21,7 @@ sudo apt-get install git
|
|||||||
|
|
||||||
== Термины
|
== Термины
|
||||||
|
|
||||||
[width="100%",cols="16%,17%,67%",options="header",]
|
[width="100%",cols="18%,20%,62%",options="header",]
|
||||||
|===
|
|===
|
||||||
|Термин |Англ |Определение
|
|Термин |Англ |Определение
|
||||||
|Рабочий каталог |working tree, working directory |Набор файлов в
|
|Рабочий каталог |working tree, working directory |Набор файлов в
|
||||||
@ -29,7 +31,7 @@ sudo apt-get install git
|
|||||||
файлов проекта
|
файлов проекта
|
||||||
|
|
||||||
|Индекс |index, staging area |Область между рабочим каталогом и
|
|Индекс |index, staging area |Область между рабочим каталогом и
|
||||||
репозиторием, в которой осуществляется подготовка к фиксации
|
репозиторием, в котором осуществляется подготовка к фиксации
|
||||||
|
|
||||||
|SHA-1 |SHA-1 |Уникальный идентификатор, отражающий информацию об
|
|SHA-1 |SHA-1 |Уникальный идентификатор, отражающий информацию об
|
||||||
истории
|
истории
|
||||||
@ -47,16 +49,23 @@ sudo apt-get install git
|
|||||||
== Состояния
|
== Состояния
|
||||||
|
|
||||||
Файлы в рабочем каталоге могут отслеживаться системой контроля версий
|
Файлы в рабочем каталоге могут отслеживаться системой контроля версий
|
||||||
(tracked) или нет (untracked). Отслеживаемые файлы, которые на диаграмме
|
(tracked) или нет (untracked). Отслеживаемые файлы, которые на
|
||||||
|
<<states,диаграмме>>
|
||||||
обозначены зелёным фоном, могут быть неизменёнными (unmodified),
|
обозначены зелёным фоном, могут быть неизменёнными (unmodified),
|
||||||
изменёнными (modified) или подготовленными к фиксации (staged).
|
изменёнными (modified) или подготовленными к фиксации (indexed).
|
||||||
|
|
||||||
|
|
||||||
|
[[states]]
|
||||||
|
[.text-center]
|
||||||
|
.Состояния
|
||||||
[plantuml]
|
[plantuml]
|
||||||
----
|
----
|
||||||
@startuml
|
@startuml
|
||||||
|
skinparam padding 16
|
||||||
|
|
||||||
participant untracked as "Неотслеживамые\n(untracked)"
|
participant untracked as "Неотслеживамые\n(untracked)"
|
||||||
box "Отслеживаемые"
|
box "Отслеживаемые"
|
||||||
participant staged as "Подготовленные к фиксации\n(staged)" #55FF55
|
participant staged as "Подготовленные к фиксации\n(indexed)" #55FF55
|
||||||
participant unmodified as "Неизменённые\n(unmodified)" #99FF99
|
participant unmodified as "Неизменённые\n(unmodified)" #99FF99
|
||||||
participant modified as "Изменённые\n(modified)" #77FF77
|
participant modified as "Изменённые\n(modified)" #77FF77
|
||||||
end box
|
end box
|
||||||
@ -72,12 +81,16 @@ staged -> untracked: git rm --cached
|
|||||||
----
|
----
|
||||||
|
|
||||||
Основные команды, осуществляющие взаимодействие между рабочим каталогом,
|
Основные команды, осуществляющие взаимодействие между рабочим каталогом,
|
||||||
индексом, локальным и удалённым репозиторием, приведены на диаграмме
|
индексом, локальным и удалённым репозиторием, приведены на <<commands,диаграмме>>.
|
||||||
ниже.
|
|
||||||
|
|
||||||
|
[[commands]]
|
||||||
|
[.text-center]
|
||||||
|
.Команды
|
||||||
[plantuml]
|
[plantuml]
|
||||||
----
|
----
|
||||||
@startuml
|
@startuml
|
||||||
|
skinparam padding 16
|
||||||
|
|
||||||
participant workspace as "Рабочий каталог\n(working dir)"
|
participant workspace as "Рабочий каталог\n(working dir)"
|
||||||
participant index as "Индекс\n(index)" #77FF77
|
participant index as "Индекс\n(index)" #77FF77
|
||||||
participant local as "Локальный репозиторий\n(local repository)" #FF7777
|
participant local as "Локальный репозиторий\n(local repository)" #FF7777
|
||||||
@ -104,9 +117,49 @@ index -[#blue]> workspace : git diff
|
|||||||
@enduml
|
@enduml
|
||||||
----
|
----
|
||||||
|
|
||||||
|
Пример последовательности действий, выполняемых пользователем в совместном
|
||||||
|
проекте, приведён на <<workflow,диаграмме>>.
|
||||||
|
|
||||||
|
[[workflow]]
|
||||||
|
[.text-center]
|
||||||
|
.Последовательность действий
|
||||||
|
[plantuml]
|
||||||
|
----
|
||||||
|
@startuml
|
||||||
|
skinparam defaultFontSize 24
|
||||||
|
skinparam padding 16
|
||||||
|
|
||||||
|
participant workspace as "Рабочий каталог\n(working dir)"
|
||||||
|
participant index as "Индекс\n(index)" #77FF77
|
||||||
|
participant local as "Локальный репозиторий\n(local repository)" #FF7777
|
||||||
|
participant remote as "Удалённый репозиторий\n(remote repository)" #7777FF
|
||||||
|
|
||||||
|
[-> workspace : <font color=red>Начало работы</font>
|
||||||
|
activate workspace
|
||||||
|
remote -> local : <font color=red>Получение изменений с сервера</font>\n<b>git fetch</b>
|
||||||
|
remote -> local : <font color=red>Обновление подмодулей</font>\n<b>git submodule update --remote</b>
|
||||||
|
workspace <-> local : <font color=red>Просмотр информации</font>\n<b>git status</b>
|
||||||
|
workspace <-> local : <font color=red>Переход на ветку master</font>\n<b>git checkout master</b>
|
||||||
|
local -> workspace : <font color=red>Слияние с удалённой веткой</font>\n<b>git merge origin/master</b>
|
||||||
|
local <-> workspace : <font color=red>Создание новой ветки</font>\n<b>git branch temp</b>
|
||||||
|
local <-> workspace : <font color=red>Переход на новую ветку</font>\n<b>git checkout temp</b>
|
||||||
|
workspace ->o workspace : <font color=red>Редактирование</font>
|
||||||
|
workspace <-> local : <font color=red>Просмотр изменений</font>\n<b>git diff</b>
|
||||||
|
workspace -> index : <font color=red>Занесение файлов в индекс</font>\n<b>git add</b>
|
||||||
|
index -> local : <font color=red>Фиксация изменений</font>\n<b>git commit</b>
|
||||||
|
local ->o local : <font color=red>Присвоение ветки осмысленного названия</font>\n<b>git branch -m temp branch_name</b>
|
||||||
|
local ->o local : <font color=red>Переход на ветку</font>\n<b>git checkout branch_name</b>
|
||||||
|
remote -> local : <font color=red>Получение изменений с сервера</font>\n<b>git fetch</b>
|
||||||
|
local ->o local : <font color=red>Слияние изменений с сервера в текущую ветку (branch_name)</font>\n<b>git merge origin/master</b>
|
||||||
|
local -> remote : <font color=red>Отправка ветки на сервер</font>\n<b>git push origin branch_name</b>
|
||||||
|
remote ->] : <font color=red>Создание запроса на слияние</font>
|
||||||
|
deactivate workspace
|
||||||
|
@enduml
|
||||||
|
----
|
||||||
|
|
||||||
== Настройка
|
== Настройка
|
||||||
|
|
||||||
[width="100%",cols="16%,38%,46%",options="header",]
|
[width="100%",cols="15%,35%,50%",options="header",]
|
||||||
|===
|
|===
|
||||||
|Команда |Ключи |Описание
|
|Команда |Ключи |Описание
|
||||||
|`git config` |`--global user.name "John Doe"` |Имя текущего
|
|`git config` |`--global user.name "John Doe"` |Имя текущего
|
||||||
@ -122,7 +175,7 @@ index -[#blue]> workspace : git diff
|
|||||||
|
|
||||||
== Инициализация
|
== Инициализация
|
||||||
|
|
||||||
[width="100%",cols="19%,27%,54%",options="header",]
|
[width="100%",cols="15%,35%,50%",options="header",]
|
||||||
|===
|
|===
|
||||||
|Команда |Ключи |Описание
|
|Команда |Ключи |Описание
|
||||||
|`git init` |`<dir>` |Создать пустой репозиторий в каталоге `<dir>`
|
|`git init` |`<dir>` |Создать пустой репозиторий в каталоге `<dir>`
|
||||||
@ -137,11 +190,11 @@ index -[#blue]> workspace : git diff
|
|||||||
|
|
||||||
== Подмодули
|
== Подмодули
|
||||||
|
|
||||||
[width="100%",cols="19%,27%,54%",options="header",]
|
[width="100%",cols="15%,25%,60%",options="header",]
|
||||||
|===
|
|===
|
||||||
|Команда |Ключи |Описание
|
|Команда |Ключи |Описание
|
||||||
|`git submodule` |`add <giturl> <dir>` |Добавить в каталог `<dir>`
|
|`git submodule` |`add <giturl> <dir>` |Добавить в каталог `<dir>`
|
||||||
текущего рапозитория подмодуль, находящийся по адресу `<giturl>`
|
текущего репозитория подмодуль, находящийся по адресу `<giturl>`
|
||||||
|
|
||||||
|`git submodule` |`update --recursive --remote` |Обновить подмодули
|
|`git submodule` |`update --recursive --remote` |Обновить подмодули
|
||||||
|
|
||||||
@ -159,233 +212,135 @@ git rm <path/to/submodule>
|
|||||||
|
|
||||||
== Фиксация
|
== Фиксация
|
||||||
|
|
||||||
[width="100%",cols="19%,27%,54%",options="header",]
|
[width="100%",cols="15%,20%,65%",options="header",]
|
||||||
|===
|
|===
|
||||||
|Команда |Ключи |Описание
|
|Команда |Ключи |Описание
|
||||||
|`git add` |`<filename>` |Подготовить файл `<filename>` к фиксации
|
|`git add` |`<filename>` |Подготовить файл `<filename>` к фиксации
|
||||||
|
|
||||||
|
|
||||||
|`git commit` | |Зафиксировать подготовленные файлы
|
|`git commit` | |Зафиксировать подготовленные файлы
|
||||||
|
|
||||||
|`git commit` |`-a` |Зафиксировать все отслеживаемые файлы, которые были
|
|`git commit` |`-a` |Зафиксировать все отслеживаемые файлы, которые были
|
||||||
изменены
|
изменены
|
||||||
|
|===
|
||||||
|
|
||||||
|
== Удаление
|
||||||
|
|
||||||
|
[width="100%",cols="15%,20%,65%",options="header",]
|
||||||
|
|===
|
||||||
|
|Команда |Ключи |Описание
|
||||||
|`git rm` |`<filename>` |Удалить файл из индекса и рабочего каталога
|
|`git rm` |`<filename>` |Удалить файл из индекса и рабочего каталога
|
||||||
|
|
||||||
|`git rm` |`-f <filename>` |Force deletion of files from disk
|
|`git rm` |`-f <filename>` |Принудительное удаление файла
|
||||||
|
|
||||||
|`git rm` |`--cached <filename>` |Untrack file (without deleting)
|
|`git rm` |`--cached <filename>` |Удаление файла из проекта, но не из
|
||||||
|
рабочего каталога
|
||||||
|===
|
|===
|
||||||
|
|
||||||
== Информация
|
== Информация
|
||||||
|
|
||||||
[width="100%",cols="20%,20%,60%",options="header",]
|
[width="100%",cols="15%,20%,65%",options="header",]
|
||||||
|===
|
|===
|
||||||
|Команда |Ключи |Описание
|
|Команда |Ключи |Описание
|
||||||
|`git status` |`-s` |Вывод информации о рабочем каталоге в
|
|`git status` |`-s` |Вывод информации о рабочем каталоге в краткой форме
|
||||||
краткой форме
|
|
||||||
|
|
||||||
|`git log` |`--oneline` |Вывод журнала изменений в краткой форме
|
|`git log` |`--oneline` |Вывод журнала изменений в краткой форме
|
||||||
|
|
||||||
|`git ls-files` | |Вывод списка отслеживаемых и подготовленных файлов
|
|`git ls-files` | |Вывод списка отслеживаемых и подготовленных файлов
|
||||||
|===
|
|===
|
||||||
|
|
||||||
== $push branches (see tags for pushing tags)
|
== Удалённый репозиторий
|
||||||
|
|
||||||
[cols=",,",options="header",]
|
[width="100%",cols="15%,20%,65%",options="header",]
|
||||||
|===
|
|===
|
||||||
|Команда |Ключи |Описание
|
|Команда |Ключи |Описание
|
||||||
|`git push` |`<remotename> <branchname>` |Push branch to remote
|
|`git remote` |`-v` |Список адресов удалённых репозиториев
|
||||||
|`git push` |`<remotename> --all` |Push all branches to remote
|
|
||||||
|`git push` |`--d <remotename> <branchname>` |`--delete` remote branch
|
|`git branch` |`-r` |Список веток в удалённых репозиториях
|
||||||
|
|
||||||
|
|`git remote` |`add <name> <url>` |Создать ссылку `<name>` на удалённый
|
||||||
|
репозиторий, находящийся по адресу `<url>`
|
||||||
|
|
||||||
|
|`git remote` |`rename <old> <new>` |Переименовать ссылку `<old>` на
|
||||||
|
`<new>`
|
||||||
|
|
||||||
|
|`git remote` |`rm <name>` |Удалить ссылку `<name>`
|
||||||
|===
|
|===
|
||||||
|
|
||||||
== $remote
|
* Обращение к удалённому репозиторию осуществляется по ссылке,
|
||||||
|
создаваемой командой `git remote`
|
||||||
|
* Команда `git clone` автоматически создаёт ссылку `origin`
|
||||||
|
|
||||||
* Remote connections are like bookmarks named after remote repos
|
== Отправка изменений
|
||||||
* `git clone` automatically creates a remote connection usually called
|
|
||||||
`origin`
|
|
||||||
|
|
||||||
[width="100%",cols="36%,26%,38%",options="header",]
|
[width="100%",cols="15%,20%,65%",options="header",]
|
||||||
|===
|
|===
|
||||||
|Команда |Ключи |Описание
|
|Команда |Ключи |Описание
|
||||||
|`git remote` |`-v` |List remote repository endpoints
|
|`git push` |`<remote> <branch>` |Отправить ветку `<branch>` в удалённый
|
||||||
|
репозиторий `<remote>`
|
||||||
|
|
||||||
|`git branch` |`-r` |List remote repository branches
|
|`git push` |`<remote> --all` |Отправить все ветки в удалённый
|
||||||
|
репозиторий `<remote>`
|
||||||
|
|
||||||
|`git remote` |`add <name> <url>` |Create namespaced connection to a
|
|`git push` |`--d <remote> <branch>` |Удалить ветку `<branch>` из
|
||||||
remote repository
|
удалённого репозитория `<remote>`
|
||||||
|
|
||||||
|`git remote` |`rename <oldname> <newname>` |Rename connection
|
|
||||||
|
|
||||||
|`git remote` |`rm <name>` |Remove connection
|
|
||||||
|
|
||||||
|`git remote` |`add origin <url>` |Set remote origin
|
|
||||||
|===
|
|===
|
||||||
|
|
||||||
Reference: https://git-scm.com/docs/git-remote
|
== Получение изменений
|
||||||
|
|
||||||
*Remove remote origin:*
|
[width="100%",cols="15%,20%,65%",options="header",]
|
||||||
|
|
||||||
[source,shell]
|
|
||||||
----
|
|
||||||
# Remove `origin` settings from .git/config
|
|
||||||
git remote rm origin
|
|
||||||
|
|
||||||
# Remove `FETCH_HEAD` which still points to remote
|
|
||||||
git rm .git/FETCH_HEAD
|
|
||||||
----
|
|
||||||
|
|
||||||
== $fetch-pull
|
|
||||||
|
|
||||||
[cols=",,",options="header",]
|
|
||||||
|===
|
|===
|
||||||
|Команда |Ключи |Описание
|
|Команда |Ключи |Описание
|
||||||
|`git fetch` |`<remote>` |Fetch all branches from remote (without merge)
|
|`git fetch` |`<remote>` |Получить изменения из всех веток репозитория
|
||||||
|`git fetch` |`<remote> <branch>` |Fetch specific branch
|
`<remote>`, но не выполнять слияние
|
||||||
|`git merge` |`<remote>/<branch>` |Merge fetched remote
|
|
||||||
|`git pull` |`<remote>` |Fetch and merge in one command
|
|`git fetch` |`<remote> <branch>` |Получить изменения из ветки
|
||||||
|
`<branch>` репозитория `<remote>`, но не выполнять слияние
|
||||||
|
|
||||||
|
|`git merge` |`<remote>/<branch>` |Выполнить слияние с веткой `<branch>`
|
||||||
|
репозитория `<remote>`
|
||||||
|
|
||||||
|
|`git pull` |`<remote>` |Получение и слияние
|
||||||
|===
|
|===
|
||||||
|
|
||||||
Reference: https://git-scm.com/docs/git-fetch,
|
== Ветки
|
||||||
https://git-scm.com/docs/git-pull
|
|
||||||
|
|
||||||
== $branch
|
[width="100%",cols="15%,20%,65%",options="header",]
|
||||||
|
|
||||||
[cols=",,",options="header",]
|
|
||||||
|===
|
|===
|
||||||
|Команда |Ключи |Описание
|
|Команда |Ключи |Описание
|
||||||
|`git branch` | |List branches
|
|`git branch` |`-a` |Список локальных и удалённых веток
|
||||||
|
|
||||||
|`git branch` |`<branchname>` |Create new branch
|
|`git branch` | |Список локальных веток
|
||||||
|
|
||||||
|`git checkout` |`<sha-1>` |Switch to branch, or commit
|
|`git branch` |`<branch>` |Создать ветку `<branch>`
|
||||||
|
|
||||||
|`git branch` |`-m <branchname> <newname>` |Rename branch
|
|`git checkout` |`<sha-1>` |Перейти к фиксации с идентификатором
|
||||||
|
`<sha-1>`
|
||||||
|
|
||||||
|`git merge` |`<branchname>` |Merge changes from `<branchname>` to
|
|`git branch` |`-m <old> <new>` |Переименовать ветку `<old>` в `<new>`
|
||||||
current branch
|
|
||||||
|
|
||||||
|`git branch` |`-d <branchname>` |`--delete` branch
|
|`git merge` |`<branch>` |Слить изменения из ветки `<branch>` в текущую
|
||||||
|
ветку
|
||||||
|
|
||||||
|
|`git branch` |`-d <branch>` |Удалить ветку `<branch>`
|
||||||
|===
|
|===
|
||||||
|
|
||||||
Reference: https://git-scm.com/docs/git-branch
|
== Сравнение
|
||||||
|
|
||||||
== $diff
|
[width="100%",cols="15%,20%,65%",options="header",]
|
||||||
|
|
||||||
[cols=",,",options="header",]
|
|
||||||
|===
|
|===
|
||||||
|Команда |Ключи |Описание
|
|Команда |Ключи |Описание
|
||||||
|`git diff` | |Compare *`working directory`* and *`index`*
|
|`git diff` | |Сравнить рабочий каталог и индекс
|
||||||
| |`–-cached` |Compare *`index`* and *`latest commit`*
|
|
||||||
| |`HEAD` |Compare *`latest commit`* and *`working directory`*
|
|`git diff` |`–-cached` |Сравнить индекс и последнюю фиксацию
|
||||||
| |`--stat` |Optional short format
|
|
||||||
| |`<sha-1> <sha-1>` |2 points in time to compare
|
|`git diff` |`HEAD` |Сравнить последнюю фиксацию и рабочий каталог
|
||||||
| |`<dir> | <file>` |Compare whole directory or limit to file
|
|
||||||
|
|`git diff` |`--stat` |Краткий вывод результатов
|
||||||
|
|
||||||
|
|`git diff` |`<sha-1> <sha-1>` |Сравнить две точки с указанными
|
||||||
|
идентификаторами
|
||||||
|
|
||||||
|
|`git diff` |`<dir>` `<file>` |Сравнивать только указанный каталог
|
||||||
|
`<dir>` или файл `<file>`
|
||||||
|
|
||||||
|
|`git difftool` | |Отобразить результаты сравнения в программе,
|
||||||
|
определяемой переменной `diff.tool`
|
||||||
|===
|
|===
|
||||||
|
|
||||||
Reference: https://git-scm.com/docs/git-diff
|
|
||||||
|
|
||||||
*Examples:*
|
|
||||||
|
|
||||||
[source,shell]
|
|
||||||
----
|
|
||||||
## compare changes made to README.md between working tree (default) and latest commit (HEAD)
|
|
||||||
$ git diff --stat HEAD ./path/README.md
|
|
||||||
|
|
||||||
## compare changes made to README.md between 2 specific points in time (e.g. 2 commits)
|
|
||||||
$ git diff --stat a649900 24bdd58 ./path/README.md
|
|
||||||
----
|
|
||||||
|
|
||||||
== $tag
|
|
||||||
|
|
||||||
[width="100%",cols="36%,26%,38%",options="header",]
|
|
||||||
|===
|
|
||||||
|Команда |Ключи |Описание
|
|
||||||
|`git tag` | |List tags
|
|
||||||
|
|
||||||
|`git tag` |`<v1.0.0>` |Create tag, from latest commit, lightweight
|
|
||||||
|
|
||||||
|`git tag` |`-a <v1.0.0> -m "<msg>"` |Create tag, with `--annotate`,
|
|
||||||
from latest commit
|
|
||||||
|
|
||||||
|`git tag` |`-a <v1.0.0> -m "<msg>" <SHA-1>` |Create tag, with
|
|
||||||
`--annotate`, from specific commit
|
|
||||||
|
|
||||||
|`git tag` |`-d <v1.1.0>` |`--delete` tag
|
|
||||||
|
|
||||||
|`git show` |`<v1.0.0>` |Show tag data and message
|
|
||||||
|
|
||||||
|`git checkout` |`<v1.0.0>` |Switch to specific point tag (not editable)
|
|
||||||
|
|
||||||
|`git push` |`<remote> <tag>` |Push specific tag to `<remote>`
|
|
||||||
(recommended)
|
|
||||||
|
|
||||||
|`git push` |`<remote> --tags` |Push all tags to `<remote>` (only if
|
|
||||||
necessary)
|
|
||||||
|===
|
|
||||||
|
|
||||||
Инициализация репозитория в каталоге `dir`:
|
|
||||||
|
|
||||||
[source,sh]
|
|
||||||
----
|
|
||||||
git init dir
|
|
||||||
----
|
|
||||||
|
|
||||||
Клонирование репозитория `repo`, принадлежащего пользователю `user`, с
|
|
||||||
сервера `gitlab.2` в каталог `dir`:
|
|
||||||
|
|
||||||
[source,sh]
|
|
||||||
----
|
|
||||||
git clone git@gitlab.2:user/repo.git dir
|
|
||||||
----
|
|
||||||
|
|
||||||
Просмотр состояния рабочего каталога и репозитория:
|
|
||||||
|
|
||||||
[source,sh]
|
|
||||||
----
|
|
||||||
git status
|
|
||||||
----
|
|
||||||
|
|
||||||
Краткая форма вывода состояния:
|
|
||||||
|
|
||||||
[source,sh]
|
|
||||||
----
|
|
||||||
git status -s
|
|
||||||
----
|
|
||||||
|
|
||||||
Добавление файла `README.md` под версионный контроль и подготовка к
|
|
||||||
фиксации:
|
|
||||||
|
|
||||||
[source,sh]
|
|
||||||
----
|
|
||||||
git add README.md
|
|
||||||
----
|
|
||||||
|
|
||||||
Удаление файла `README.md` из индекса репозитория:
|
|
||||||
|
|
||||||
[source,sh]
|
|
||||||
----
|
|
||||||
git rm --cached README.md
|
|
||||||
----
|
|
||||||
|
|
||||||
Зафиксировать файлы, подготовленные к фиксации:
|
|
||||||
|
|
||||||
[source,sh]
|
|
||||||
----
|
|
||||||
git commit
|
|
||||||
----
|
|
||||||
|
|
||||||
Зафиксировать все отслеживаемые файлы, которые были изменены:
|
|
||||||
|
|
||||||
[source,sh]
|
|
||||||
----
|
|
||||||
git commit -a
|
|
||||||
----
|
|
||||||
|
|
||||||
Отправить все ветки репозитория на сервер с меткой `origin`:
|
|
||||||
|
|
||||||
[source,sh]
|
|
||||||
----
|
|
||||||
git push origin
|
|
||||||
----
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
= Git: распаковка объекта
|
= Git: распаковка объекта
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Программирование
|
:category: Программирование
|
||||||
:tags: программирование, git,
|
:tags: программирование, git,
|
||||||
|
:toc:
|
||||||
|
|
||||||
В случае повреждения репозитория можно восстановить отдельные объекты,
|
В случае повреждения репозитория можно восстановить отдельные объекты,
|
||||||
которые сохраняются в формате zlib. Пример команды:
|
которые сохраняются в формате zlib. Пример команды:
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Git: репозиторий на переносном устройстве
|
= Git: репозиторий на переносном устройстве
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Программирование
|
:category: Программирование
|
||||||
:tags: программирование, git,
|
:tags: программирование, git,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Git: частичная копия репозитория
|
= Git: частичная копия репозитория
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Программирование
|
:category: Программирование
|
||||||
:tags: программирование, git,
|
:tags: программирование, git,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= GitLab: выполнение по расписанию
|
= GitLab: выполнение по расписанию
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Программирование
|
:category: Программирование
|
||||||
:tags: программирование, gitlab, git,
|
:tags: программирование, gitlab, git,
|
||||||
|
|
||||||
|
38
wiki/Prog/Lang/CPP/Qt/Qt обмен бинарными данными с БД.adoc
Normal file
38
wiki/Prog/Lang/CPP/Qt/Qt обмен бинарными данными с БД.adoc
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
= Qt: обмен бинарными данными с БД
|
||||||
|
:title-separator: {sp}|
|
||||||
|
:category: Программирование
|
||||||
|
:tags: программирование, qt, postgresql, бд
|
||||||
|
|
||||||
|
Таблица, с которой осуществляется обмен:
|
||||||
|
|
||||||
|
[source,sql]
|
||||||
|
----
|
||||||
|
CREATE TABLE example (
|
||||||
|
id INTEGER,
|
||||||
|
bin_data BYTEA
|
||||||
|
);
|
||||||
|
----
|
||||||
|
|
||||||
|
Запись данных:
|
||||||
|
|
||||||
|
[source,cpp]
|
||||||
|
----
|
||||||
|
const char cart[] = {0x04, 0x43, 0x00, 0x9A};
|
||||||
|
QByteArray binDataArray(QByteArray::fromRawData(cart, 4));
|
||||||
|
QSqlQuery query;
|
||||||
|
query.prepare(QString("INSERT INTO example (id, bin_data) VALUES(:id, :bin_data)");
|
||||||
|
query.bindValue(":id", 10, QSql::In);
|
||||||
|
query.bindValue(":bin_data", binDataArray, QSql::In | QSql::Binary);
|
||||||
|
query.exec();
|
||||||
|
----
|
||||||
|
|
||||||
|
Чтение данных:
|
||||||
|
|
||||||
|
[source,cpp]
|
||||||
|
----
|
||||||
|
QSqlQuery query;
|
||||||
|
query.exec("SELECT id, bin_data FROM example LIMIT 1");
|
||||||
|
query.next();
|
||||||
|
QByteArray binDataArray = query.value(query.record().indexOf("bin_data")).toByteArray();
|
||||||
|
----
|
||||||
|
|
@ -19,7 +19,7 @@ https://ru.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms[BLAS]
|
|||||||
* https://github.com/skystrife/cpptoml[cpptoml]: чтение
|
* https://github.com/skystrife/cpptoml[cpptoml]: чтение
|
||||||
https://github.com/toml-lang/toml[TOML]
|
https://github.com/toml-lang/toml[TOML]
|
||||||
* https://github.com/martinmoene/gsl-lite/[gsl-lite]: реализация
|
* https://github.com/martinmoene/gsl-lite/[gsl-lite]: реализация
|
||||||
рекомедаций https://github.com/isocpp/CppCoreGuidelines[C++ Core
|
рекомендаций https://github.com/isocpp/CppCoreGuidelines[C++ Core
|
||||||
Guidelines]
|
Guidelines]
|
||||||
* http://www.holoborodko.com/pavel/mpfr[mpfrc++]: C++ интерфейс для
|
* http://www.holoborodko.com/pavel/mpfr[mpfrc++]: C++ интерфейс для
|
||||||
https://www.mpfr.org/[MPFR]
|
https://www.mpfr.org/[MPFR]
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
= Работа с датами и временем
|
= Работа с датами и временем
|
||||||
:category: Программирование
|
:category: Программирование
|
||||||
:tags: программирование, время, часы, дата,
|
:tags: программирование, время, часы, дата
|
||||||
|
:toc: auto
|
||||||
:toc:
|
|
||||||
|
|
||||||
== Временные шкалы
|
== Временные шкалы
|
||||||
|
|
||||||
В идеале системы учёта времени должны обладать тремя характеристиками:
|
В идеале системы учёта времени должны обладать тремя характеристиками:
|
||||||
|
|
||||||
[arabic]
|
|
||||||
. _точность_ (время базируется на атомном стандарте, каждая секунда
|
. _точность_ (время базируется на атомном стандарте, каждая секунда
|
||||||
отсчитывается как секунда в системе СИ, нет високосных секунд, переводов
|
отсчитывается как секунда в системе СИ, нет високосных секунд, переводов
|
||||||
на зимнее или летнее время и т.п.);
|
на зимнее или летнее время и т.п.);
|
||||||
@ -18,7 +16,6 @@
|
|||||||
На практике есть возможность выбрать шкалу только с двумя
|
На практике есть возможность выбрать шкалу только с двумя
|
||||||
характеристиками из трёх.
|
характеристиками из трёх.
|
||||||
|
|
||||||
[arabic]
|
|
||||||
. точность и календарные дни. Примером такой шкалы является UTC, в
|
. точность и календарные дни. Примером такой шкалы является UTC, в
|
||||||
которой отсчёт дней и секунд ведётся разными методами (секунды
|
которой отсчёт дней и секунд ведётся разными методами (секунды
|
||||||
исчисляются по атомному стандарту, а дни по суточному вращению Земли), а
|
исчисляются по атомному стандарту, а дни по суточному вращению Земли), а
|
||||||
@ -32,7 +29,6 @@ Std 1003.1-1988), в которой день всегда равен 86400 се
|
|||||||
|
|
||||||
Время можно условно поделить на два класса: физическое и гражданское.
|
Время можно условно поделить на два класса: физическое и гражданское.
|
||||||
|
|
||||||
[arabic]
|
|
||||||
. _Физическое_ время представляет собой точки на непрерывной шкале,
|
. _Физическое_ время представляет собой точки на непрерывной шкале,
|
||||||
такую концепцию достаточно точно отражает UTC, если можно пренебречь
|
такую концепцию достаточно точно отражает UTC, если можно пренебречь
|
||||||
_секундой координации_ (дополнительная секунда, добавляемая к UTC 30
|
_секундой координации_ (дополнительная секунда, добавляемая к UTC 30
|
||||||
@ -73,7 +69,6 @@ _секундой координации_ (дополнительная секу
|
|||||||
|
|
||||||
Правила хранения и отображения времени:
|
Правила хранения и отображения времени:
|
||||||
|
|
||||||
[arabic]
|
|
||||||
. Время всегда хранится в UTC. При необходимости дополнительно
|
. Время всегда хранится в UTC. При необходимости дополнительно
|
||||||
сохраняется информация о временной зоне (смещение и/или название).
|
сохраняется информация о временной зоне (смещение и/или название).
|
||||||
. Для вывода на экран время переводится в местное.
|
. Для вывода на экран время переводится в местное.
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: сравнение файлов
|
= Vim: сравнение файлов
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, команды Vim,
|
:tags: Vim, команды Vim,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: замена выделенного блока
|
= Vim: замена выделенного блока
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, команды Vim,
|
:tags: Vim, команды Vim,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: клавиши Leader и LocalLeader
|
= Vim: клавиши Leader и LocalLeader
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, команды Vim,
|
:tags: Vim, команды Vim,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: клавиши PageUp и PageDown
|
= Vim: клавиши PageUp и PageDown
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, команды Vim,
|
:tags: Vim, команды Vim,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: кодировка файла
|
= Vim: кодировка файла
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim,
|
:tags: Vim,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: комментирование кода
|
= Vim: комментирование кода
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, команды Vim,
|
:tags: Vim, команды Vim,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: менеджер плагинов Plug
|
= Vim: менеджер плагинов Plug
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, плагины Vim,
|
:tags: Vim, плагины Vim,
|
||||||
|
|
||||||
@ -14,7 +15,6 @@ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
|
|||||||
|
|
||||||
Чтобы использовать Plug, нужно добавить в `$HOME/.vim/vimrc`:
|
Чтобы использовать Plug, нужно добавить в `$HOME/.vim/vimrc`:
|
||||||
|
|
||||||
[arabic]
|
|
||||||
* Строку `call plug#begin('~/.vim/plugged')`
|
* Строку `call plug#begin('~/.vim/plugged')`
|
||||||
* Список строк, начинающихся с команды `Plug`, для загрузки плагинов
|
* Список строк, начинающихся с команды `Plug`, для загрузки плагинов
|
||||||
* Закончить список командой `call plug#end()`
|
* Закончить список командой `call plug#end()`
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: навигация по тексту с помощью easymotion
|
= Vim: навигация по тексту с помощью easymotion
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, команды Vim,
|
:tags: Vim, команды Vim,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: навигация по буферам
|
= Vim: навигация по буферам
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, команды Vim,
|
:tags: Vim, команды Vim,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: нумерация строк
|
= Vim: нумерация строк
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, команды Vim,
|
:tags: Vim, команды Vim,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: проверка орфографии
|
= Vim: проверка орфографии
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, команды Vim, словарь, орфография,
|
:tags: Vim, команды Vim, словарь, орфография,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: полезные ссылки
|
= Vim: полезные ссылки
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim,
|
:tags: Vim,
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
= Vim: управление окнами
|
= Vim: управление окнами
|
||||||
|
:title-separator: {sp}|
|
||||||
:category: Vim
|
:category: Vim
|
||||||
:tags: Vim, команды Vim,
|
:tags: Vim, команды Vim,
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 39 KiB |
Binary file not shown.
Before Width: | Height: | Size: 32 KiB |
Reference in New Issue
Block a user