LINUX.ORG.RU

Сообщения Xintrea

 

psycopg2 не имеет элемент sql?

Форум — Development

Использую Astra Linux 1.6

Установлен пакет python3-psycopg2 версии 2.6.2-1.

Пишу минимальный код:

#!/usr/bin/python3

import sys
import enum

from psycopg2 import connect
from psycopg2 import sql

И при запуске вижу ошибку:
Traceback (most recent call last):
  File "./sample_import.py", line 7, in <module>
    from psycopg2 import sql
ImportError: cannot import name 'sql'

То есть, connect импортируется нормально, а sql - нет.

Это потому что кривая (старая) библиотека, как у этого товарища: https://github.com/OCA/openupgradelib/issues/193
Похоже, что SQL string composition появилось только в версии 2.7?

А как же тогда раньше генерировали безопасные запросы, которые имеют динамические имена объектов БД? (Имеется в виду именно динамические имена объектов БД а не представление данных, пишущихся в БД).

Получается, что все что написано здесь:
https://www.psycopg.org/docs/usage.html#passing-parameters-to-sql-queries
и здесь:
https://www.psycopg.org/docs/sql.html
в моем случае неприменимо, т. к. система сертифицирована и замена пакетов не допускается.

Получается, что технотролли здесь:
psycopg2 генерирует неправильные команды для комментариев и схем
и здесь
psycopg2 не может работать со схемой «validate»
зря выплясывали, потому что я даже не могу увидеть то о чем идет речь, не говоря уже о том чтобы воспользоваться.

 , , ,

Xintrea
()

psycopg2 генерирует неправильные команды для комментариев и схем

Форум — Development

Продолжаю пытаться использовать библиотеку psycopg2. Проблема подкралась откуда не ждали.

Итак, код написан в соответствии с документацией:

https://www.psycopg.org/docs/usage.html

В которой сказано, что psycopg2 в методе execute() сама делает подстановки в SQL-запрос из переданного кортежа, и делает это правильно. Однако, по факту оказалось, что это не так.

Следующие ошибки демонстрируют, что psycopg2 не понимает где пользовательские данные, а где обращение к объектам. Она просто все подстановки анализирует на переданный базовый Python-тип, и вставляет данные соответственно этому типу. Если это строка - то она будет заключена в одинарные кавычки. Если целое число - будет вставлено число без кавычек.

А что делать, если в кортеже передано имя объекта БД, значение которого не нужно заключать в кавычки? Об этом авторы документации ничего не говорят.

Поэтому, например при использовании комментариев к таблице или при работе со схемами возникают ошибки:

Команды:

cursor.execute( "COMMENT ON TABLE %s IS 'version=%s';", (tableName, tableVersion) )

cursor.execute("CREATE SCHEMA IF NOT EXISTS %s;", (dbSchema,) )


Ошибки:

File "./sample.py", line 205, in setTableVersion
    cursor.execute( "COMMENT ON TABLE %s IS 'version=%s';", (tableName, tableVersion) )
psycopg2.ProgrammingError: ОШИБКА: ошибка синтаксиса at or near "'devices'
LINE 1: COMMENT ON TABLE 'devices' IS 'version=12';
                         ^

File "./sample.py", line 89, in connect
    cursor.execute("CREATE SCHEMA IF NOT EXISTS %s;", (dbSchema,) )
psycopg2.ProgrammingError: ОШИБКА: ошибка синтаксиса at or near "'service'
LINE 1: CREATE SCHEMA IF NOT EXISTS 'service';
                                    ^

В этих командах значения devices и service не должны заключаться в кавычки. Но они заключаются, чем и ломают саму команду.

Вопрос: а как же правильно передавать значения в execute() ?

 , , , ,

Xintrea
()

psycopg2 не может работать со схемой «validate»

Форум — Development

Продолжаю разбираться в связке PostgreSQL+Python+psycopg2.

Вот код, который создает схему our_scheme и создает таблицу в этой схеме:

# Подключение к БД с заданными параметрами
connection = psycopg2.connect(**pgConnectionParameters)
cursor = connection.cursor()

# Переключение на заданную схему
dbSchema = 'our_schema'
cursor.execute("CREATE SCHEMA IF NOT EXISTS %s" % dbSchema)
cursor.execute("SET search_path TO %s" % dbSchema)

# Проверка текущей схемы
cursor.execute("SHOW search_path;")
result = cursor.fetchone()
print( result )

# Создание таблицы
cursor.execute("CREATE TABLE IF NOT EXISTS our_table (id varchar(128) UNIQUE, name varchar(128))")

Все прекрасно работает. Но теперь берем и меняем название схемы:
dbSchema = 'our_schema'
на
dbSchema = 'validate'

И код резко перестает работать. Появляется ошибка:
$ ./sample.py
('validate',)
Traceback (most recent call last):
  File "./sample.py", line 31, in <module>
    cursor.execute("CREATE TABLE IF NOT EXISTS our_table (id varchar(128) UNIQUE, name varchar(12
8))")

psycopg2.ProgrammingError: ОШИБКА: схема для создания объектов не выбрана
LINE 1: CREATE TABLE IF NOT EXISTS our_table (id varchar(128) UNIQUE...

Я проверяю те же самые команды в чистой консоли psql - все работает, схема validate создается, в ней создается таблица.

Но почему-то эти же команды через psycopg2 выдают ошибку.

Почему так?

 , ,

Xintrea
()

psycopg2 не может вернуть текущую схему через команду «SHOW search_path;»

Форум — Development

1. Создаю собственную схему,
2. переключаюсь на нее,
3. и сразу хочу посмотреть какая схема используется.

Делаю это следующим кодом:

# Подключение к БД с заданными параметрами
connection = psycopg2.connect(**pgConnectionParameters)
cursor = connection.cursor()

# Переключение на заданную схему
dbSchema = 'our_schema'
cursor.execute("CREATE SCHEMA IF NOT EXISTS %s" % dbSchema)
cursor.execute("SET search_path TO %s" % dbSchema)

# Проверка текущей схемы
result = cursor.execute("SHOW search_path;")
print( result )

А результат None. Соответственно, даже fetchone/fetchall от результата вызвать не могу.

Вопрос: почему переменная result равна None?

 , , ,

Xintrea
()

Понять структуру бинарного файла прошивки - получить максимальную информацию

Форум — Talks

Привет, народ.

Имеется вот такая прошивка для гитарного процессора BOSS GT-1:

https://static.roland.com/assets/media/zip/gt1_sys_v109.zip

В архиве лежит незашифрованный бинарник.

Нужно понять две вещи:

1. Что за структура у этого бинарника? Похоже, что вначале идет нечто вроде таблицы разделов какой-то файловой системы. Но какой - по сигнатуре нагуглить не могу. Или это какие-то таблицы смещений? Или еще что-то?

2. Надо понять, где начинается код. И какой архитектуры этот код. ARM? MIPS? Что-то еще? Каким инструментарием смотреть?

Свои мысли я начал записывать здесь: https://webhamster.ru/mytetrashare/index/mtb0/17186974979qcubc1ew5 , хочу расширить понимание как устроена эта прошивка.

 ,

Xintrea
()

Представлен МП21 — одноплатный компьютер на базе процессора «Эльбрус-2С3»

Новости — Hardware and Drivers
Группа Hardware and Drivers

ИНЭУМ им. Брука (входит в холдинг «Росэлектроника» Госкорпорации Ростех) выложил в разделе промышленных компьютеров информацию о новом одноплатном компьютере на базе процессора «Эльбрус-2С3». Материнская плата имеет размеры менее 10x10 см.

Данная разработка маркируется как МП21 (ТЕГР.467144.004). Работает на базе полноценного двухъядерного процессора «Эльбрус-2С3» с тактовой частотой 1600 МГц. Оперативная память стандарта DDR4 (ECC) объёмом 8 ГБ распаяна прямо на плате, и использует один канал SDRAM. Для удешевления, под нужды заказчика, имеется возможность поставки платы с 4 Гб ОЗУ.

( читать дальше... )

>>> Подробности

 , ,

Xintrea
()

А вы знали, что в глубинах Firefox используется протокол chrome:// ?

Форум — Talks

Запускаем Firefox, на новой странице нажимаем ПКМ на логотипе или на надписи Firefox. И получаем следующее:

chrome://branding/content/about-logo.png
chrome://branding/content/firefox-wordmark.svg

Как вам?

 , ,

Xintrea
()

Новая Unix-like ОС Bunnix, дошедшая до релиза меньше чем за месяц

Новости — Linux General
Группа Linux General

Дрю ДеВолт (Drew DeVault), автор пользовательского окружения Sway, почтового клиента Aerc, платформы совместной разработки SourceHut и языка программирования Hare, сообщил, что он смог написать собственную реализацию клона UNIX всего за 27 дней. Автор назвал свою операционную систему Bunnix.

Система является монолитной Unix-like операционной системой, написанной на Hare с небольшими включениями языка C.

( читать дальше... )

>>> Подробности

 ,

Xintrea
()

Как любители Linux выводят копеюшечки из Binance наиболее выгодно в 2024 году?

Форум — Talks

Знаю, что тут есть специалисты по крипте. Я просто не успеваю разбираться в вечноменяющемся интерфейсе и вечно меняющихся правилах и ограничениях на Binance.

Сейчас хочу вывести эквивалент двухсотпятидесяти $ из валюты ETH в рубли. Начал разбираться, везде информация разная, включая официальные страницы Binance, которые явно устарели.

Пишут что можно через P2P биржу, которая есть в Binance, вывести на рублевую карточку, указав Зеленый или Желтый банк. Начинаю искать где это и как. Ничего похожего не нахожу. В P2P - интерфейсе подсовывается соглашение на суточные ограничения для C2C. Я ничего не понимаю, при чем тут C2C. Потом не могу найти в этом P2P вывод в рубли RUR или RUB. Даже вывода в USD нет. Зато в EUR есть. Почему так - непонятно. Можно ли эти EUR на валютный счет в Сбере или в ВТБ перевести - нигде информации нет. Какой курс и комиссии при этом будет - тоже невозможно выяснить.

В общем, сейчас вижу только одну схему - конвертнуть в пределах Binance ETH в USDT, вывести на WebMoney кошелек WMT, а из него уже на ихней бирже Exchanger получить за WMT рубли. Но я не знаю насколько это выгодно. Может, есть какой другой более простой или более выгодный способ?

 , ,

Xintrea
()

Почему не обновляется значение поля через триггер и функцию в PostgreSQL? (Отладочный вывод в наличии)

Форум — Development

Имеется таблица our_table с полем change_time типа TIMESTAMP DEFAULT CURRENT_TIMESTAMP.

Необходимо менять поле change_time при действиях INSERT и UPDATE.

Для этого в базе создан триггер со следующим кодом:

CREATE TRIGGER our_table_update_change_time
AFTER INSERT OR UPDATE
ON our_table 
FOR EACH ROW EXECUTE PROCEDURE update_change_time_column();

Этот триггер использует следующую функцию, в которой есть отладочное сообщение:
CREATE OR REPLACE FUNCTION public.update_change_time_column()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
  RAISE NOTICE 'Trigger our_table_update_change_time is run'
  NEW.change_time: = now();
  RETURN NEW;
END;
$function$;

Изменение значения в таблице приводит к вызову триггера, а из него и кода функции. Это видно из вывода:
UPDATE our_table SET about='Any new text' WHERE id='1';
ЗАМЕЧАНИЕ:  Trigger our_table_update_change_time is run
UPDATE 1

Казалось бы, все работает? Нет. Изменения значение поля change_time не происходит.

Что здесь сделано неправильно? Как заставить изменяться поле change_time?

 , , ,

Xintrea
()

Блокировка частых запросов с одного IP средствами nginx

Форум — Admin

Делаю блокировку примерно как в пункте 5 вот этой статьи:

https://cloud.vk.com/blog/zaschita-ot-ddos-atak-sredstvami-nginx

Заодно читаю официальную документацию:

https://cloud.vk.com/blog/zaschita-ot-ddos-atak-sredstvami-nginx

И в моем случае конфигурирующие опции прописаны такие:

# Файл /etc/nginx/sites-available/mysite

limit_req_zone $binary_remote_addr zone=ipAddrZone:10m rate=5r/m;
...
server {
    ...
    location /punbb/register.php {
        limit_req zone=ipAddrZone;
    }

Nginx перезагружен.

И ничего эти настройки не блокируют. Я захожу на страницу /punbb/register.php, обновляю ее хоть каждую секунду по 20 раз непрерывно, ответ от сервера всегда нормально приходит.

Вопрос 1: Почему не работает блокировка?

Вопрос 2: Что должно происходить с запросом, когда он по заданным условиям превысил лимит? Он по-умолчанию просто не обрабатывается и выбрасывается? На него выдается ответ с кодом ошибки 503? Он ставится в очередь и будет обработан по истечении периода проверки? Что конкретно?

 , , ,

Xintrea
()

Как установить библиотеку psycopg2 в древней Astra 1.3 (без pip и без интернета) ?

Форум — Development

Имеется древний дистриб Astra Linux 1.3 Смоленск

В нем есть Python 3.2 и некоторое количество библиотек.
Но в нем нет pyhon-библиотеки psycopg2.
И нужно эту библиотеку установить, чтобы заработали python3-скрипты, которые работают с PostgreSQL.

Проблема 1 - в том, что в Astra 1.3 нет pip, и я не могу сделать установки из выкачанного заранее whl-файла.

Проблема 2 - попытка сборки psycopg2 из исходников через команду

python3 setup.py build
...приводит к тому, что появляется ошибка на f-строках, так как они появились в Python 3.6, а в системе стоит Python 3.2.

Вопрос: как можно извратиться, и установить psycopg2 в Astra 1.3?

 , , ,

Xintrea
()

Стоит ли покупать гитару у перекупа с МегаМаркета?

Форум — Talks

Linux тут при том, что я с него пишу.

В общем, оказывается, сейчас люди заморачиваются с тем, что покупают вещи на Мегамаркете с большими кешбкеми в виде бонусов Спасибо, которые фиг поймешь где можно потратить и в каком количестве. Но расчет (в моем случае) примерно следующий:

- Покупается вещь за 60000
- На него дается кешбек 34%, то есть 20400
- Вещь выставляется на авито за 60000-20400+2000(навар)=41600
- Нигде, ни на Ozon, ни на Яндекс.Маркет такой цены нет, в лучшем случае 49000-51000

Плюс в том, что в отличие от заказа в онлайн-магазине, вещь можно прийти и посмотреть.

Каковы минусы такой покупки? Какие подводные камни?

 , ,

Xintrea
()

Подскажите российский аналог GitHub/GitLab без ограничений для открытых проектов

Форум — Talks

1.

Заглянул сейчас на GitFlic.ru, думал перенести на него проекты с буржуйского GitHub. Смотрю на ограничения, а там размер репо не более 4Gb. А у меня куча реп, и одно из них 4.3Gb.

Так что GitFlic.ru не для меня.


2.

Решил зайти на hub.mos.ru, а там регистрация в департаменте с полным указанием ФИО, сотового телефона и электронной почтой. А если хочешь зайти через Госуслуги, то будут переданы данные:

* Просмотр данных вашего военного билета
* Проведение входа в систему
* Просмотр вашего ИНН
* Просмотр номера вашего мобильного телефона
* Просмотр СНИЛС ребёнка
* Просмотр фамилии, имени, отчества (при наличии) ребёнка
* Просмотр пола ребёнка
* Просмотр вашей фамилии, имени и отчества
* Просмотр ИНН ребенка
* Просмотр вашего места рождения
* Просмотр данных вашего заграничного паспорта
* Просмотр вашего СНИЛС
* Просмотр ваших контактных данных (номер мобильного телефона адрес электронной почты), адресов регистрации и проживания
* Просмотр данных вашего свидетельства о рождении
* Просмотр даты вашего рождения
* Просмотр вашего пола
* Просмотр данных ваших транспортных средств
* Просмотр данных вашего вида на жительство
* Просмотр данных о вашем документе, удостоверяющем личность
* Просмотр списка ваших организаций
* Просмотр даты рождения ребёнка
* Доступ к данным вашего личного кабинета на портале гос. услуг (интерактивные формы)
* Просмотр вашего адреса электронной почты
* Просмотр данных вашего разрешения на временное проживание
* Просмотр данных вашего водительского удостоверения
* Получение сведений о свидетельстве о рождении ребенка

Которые, естественно, будут скопированы и аккуратно сложены туда, где они лежать не должны.

Как-то не адекватно передавать такие данные чтобы сделать удаленный репозитарий.


3.

Подскажите хотя бы один бесплатный российский репозитарий, в котором нет ограничений для Open Source и который не страдает синдромом вахтера.

 , , ,

Xintrea
()

Я стал больше понимать, зачем нужны словари синонимов

Форум — Talks

... после того, как увидел информацию о текстовых запросах. Синонимы каких слов и выражений ищут пользователи?

Вот вам свежие данные с synonyms.su:

Последние синонимы пользователей

вот это да, ничосе  [ Дарьядесит ]
теребить стручок    [ Софья ]
вы мне не интересны [ Mary ]
писечка бритая      [ gusorus1 ]
точить шпагу        [ Артём ]
рукотворчество      [ Яна ]
одно дно            [ Жак ]
надрачивать         [ Софья ]
наяривать           [ Софья ]
блаженство          [ Наталья ]
Софья с gusorus1 явно чем-то озабочены. А Жак, как всегда, прав.

 ,

Xintrea
()

Да что вы знаете - 2: Разработчик взломал компилятор C++ 28-летней давности, чтобы проект поддерживал исключения

Форум — Talks

Разработчик Начо Мелладо (Nacho Mellado) рассказал, что он взломал компилятор C++ 28-летней давности (Watcom C++32 версии 11.0 1996 года от Sybase Inc.), чтобы проект поддерживал исключения. Фактически это произошло за два года до того, как исключения стали частью первого стандарта C++.

В 1998 году Мелладо с друзьями выпустили библиотеку The DarkRising Library (TDL) обработки графики и аудио в реальном времени для DOS, в основном для игр и создания проектов типа demoscene. Проект Watcom уже тогда опередил своё время, но поддержки исключений там ещё не было.

Спустя годы Мелладо возобновил работу с библиотекой. Код для обработки в реальном времени в основном писался на ассемблере, но он начал добавлять поддержку C++ для более быстрой интеграции. Однако из-за повсеместной проверки ошибок код стал выглядеть слишком пространным.

Там было множество шаблонов типа «do this or fail gracefully», которые с помощью использования исключений+RAII можно было бы упростить, но при этом дать программе возможность исправить некритическую ошибку. Мелладо написал код с класами для RAII, которые игнорировали ошибки, но его исключения не перехватывались нигде в программе.

Оказалось, что Watcom компилирует try, catch и throw, но сгенерированный код вызывает хуки, которых нет ни в одной библиотеке, поставляемой с компилятором. Поиск по ретрофоруму этого проекта оказался безрезультатным. Судя по всему, команда Sybase готовила поддержку исключений, но тогда разработчики не выпустили её полностью в открытом виде.

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

Эта доработанная модель компилятора позволила Мелладо кодировать хуки и иметь исключения! С исключениями+RAII приведённый выше код теперь выглядит намного лучше.

Платформа оборачивает всё во внешний try-catch и автоматически обрабатывает ошибки и освобождение ресурсов. Мелладо пояснил, что итоговый код станет более кратким, поскольку класс Image будет включать в себя большую часть базовой простой структуры SLI.

https://habr.com/ru/news/806239/

 , , ,

Xintrea
()

PostgreSQL не хочет слушать порт на второй сети при загрузке. При старте сервиса все OK.

Форум — Admin

Имеется комп с PostgreSQL.

У него на eth0 несколько подсетей (далее нужна будет подсеть 222):

> ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 1c:6f:65:96:54:bc brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.95/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
...
    inet 192.168.222.95/24 brd 192.168.222.255 scope global eth0:7
       valid_lft forever preferred_lft forever

Чтобы PostgreSQL слушал порт на 222 подсети, сделана настройка:
Файл: /etc/postgresql/9.6/main/postgresql.conf
listen_addresses = 'localhost,192.168.222.95'

и
Файл: /etc/postgresql/9.6/main/pg_hba.conf
host    all             all              192.168.222.0/24        md5

Если после внесения этих настроек перезапустить сервис postgresql, то все стартует без ошибок, а порт 5432 слушается на IP-шниках 127.0.0.1 и на 192.168.222.95.

Но если перезагрузить компьютер, то порт 5432 на IP 192.168.222.95 не поднимается.

В логах следующие ошибки:
СООБЩЕНИЕ:  не удалось привязаться к сокету IPv6: Невозможно назначить запрошенный адрес
ПОДСКАЗКА:  Возможно порт 5432 занят другим процессом postmaster? Если нет, повторите попытку через несколько секунд.
СООБЩЕНИЕ:  не удалось привязаться к сокету IPv4: Невозможно назначить запрошенный адрес
ПОДСКАЗКА:  Возможно порт 5432 занят другим процессом postmaster? Если нет, повторите попытку через несколько секунд.
ПРЕДУПРЕЖДЕНИЕ:  не удалось создать принимающий сокет для "192.168.222.95"
СООБЩЕНИЕ:  передача вывода в протокол процессу сбора протоколов
ПОДСКАЗКА:  В дальнейшем протоколы будут выводиться в каталог "pg_log".


Вот здесь я нашел возможную причину: говорят что сервис postgresql стартует раньше, чем инитится сеть, поэтому не на локальном IP PostgreSQL не может подняться.

Тогда я проверяю зависимости сервиса postgresql:
# systemctl list-dependencies postgresql
postgresql.service
● ├─postgresql@9.6-main.service
● ├─postgresql@9.6-main.service
● ├─system.slice
● ├─network-online.target
● │ ├─connman-wait-online.service
● │ └─networking.service
● └─sysinit.target
●   ├─dev-hugepages.mount
●   ├─dev-mqueue.mount
●   ├─keyboard-setup.service
...

Видно, что postgresql@9.6-main.service и network-online.target запускаются в параллель, а надо сделать зависимую загрузку.

Поэтому создаю файл /etc/systemd/system/postgresql.service.d/override.conf следующего содержания:
[Unit]
Requires=network-online.target
After=network-online.target

Потом выполняю:
systemctl daemon-reload
systemctl restart postgresql

И смотрю зависимости через list-dependencies, а они не изменились. Перезагружаюсь - то же самое, зависимости все те же, и PostgreSQL не поднимает свой сокет на 192.168.222.95.

Вопрос: где что еще надо крутить?

 , , ,

Xintrea
()

Не могу найти микросхему ST VIPer K41612 и понять есть ли аналог

Форум — Talks

Привет, народ.

На стиральной машинке при визуальном осмотре найдена сгоревшая микросхема.

На ней написано:

ST
VIPer
K41612
На микросхеме 8 ног. Рядом с микросхемой есть обозначение IC101. Судя по расположению, микросхема как-то связана с питанием.

Найти даташит не могу, не могу понять что это вообще за микросхема.

Где найти информацию по этой микросхеме? Где купить новую?

Linux тут при том, что я с него пишу.



Перемещено Dimez из linux-hardware

 , микросхема

Xintrea
()

Какой ваш самый НЕлюбимый язык/языки программирования?

Голосования — Голосования

Недавно состоялся опрос по самым любимым языкам программирования. Для правильного понимания ситуации в языках, необходимо провести такой же опрос, только в обратную сторону. Может оказаться, что один и тот же язык будет в одном опросе одним из самых любимых, а в другом опросе — одним из самых нелюбимых. Это нужно проверить!

  1. JavaScript 170 (29%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. 162 (28%)

    ****************************************************************************************************************************************************************************************************************************************************************************************************************

  3. Python 111 (19%)

    ****************************************************************************************************************************************************************************************************************

  4. Java 108 (19%)

    ***********************************************************************************************************************************************************************************************************

  5. PHP 108 (19%)

    ***********************************************************************************************************************************************************************************************************

  6. C++ 90 (15%)

    *************************************************************************************************************************************************************************

  7. C# 86 (15%)

    *****************************************************************************************************************************************************************

  8. Rust 85 (15%)

    ****************************************************************************************************************************************************************

  9. Visual Basic 83 (14%)

    ************************************************************************************************************************************************************

  10. Shell (bash, sh, zsh и тд.) 71 (12%)

    *************************************************************************************************************************************

  11. GO 65 (11%)

    **************************************************************************************************************************

  12. Perl 63 (11%)

    **********************************************************************************************************************

  13. TypeScript 62 (11%)

    ********************************************************************************************************************

  14. BASIC классический 57 (10%)

    ***********************************************************************************************************

  15. Pascal (включая fpc, Delphi и др.) 56 (10%)

    *********************************************************************************************************

  16. Objective-C 46 (8%)

    **************************************************************************************

  17. Ruby 46 (8%)

    **************************************************************************************

  18. Brainfuck 46 (8%)

    **************************************************************************************

  19. C 39 (7%)

    *************************************************************************

  20. Swift 33 (6%)

    **************************************************************

  21. Другой (напишу в комментариях) 31 (5%)

    **********************************************************

  22. РАЯ (язык академика Ершова) 30 (5%)

    ********************************************************

  23. Awk 29 (5%)

    ******************************************************

  24. COBOL 26 (4%)

    ************************************************

  25. Scala 24 (4%)

    *********************************************

  26. Common LISP 24 (4%)

    *********************************************

  27. Haskell 20 (3%)

    *************************************

  28. Tcl 20 (3%)

    *************************************

  29. Erlang 19 (3%)

    ***********************************

  30. Assembler 19 (3%)

    ***********************************

  31. Kotlin 18 (3%)

    *********************************

  32. D 16 (3%)

    ******************************

  33. Fortran 15 (3%)

    ****************************

  34. Lua 15 (3%)

    ****************************

  35. Clojure 14 (2%)

    **************************

  36. Forth 14 (2%)

    **************************

  37. Nim 13 (2%)

    ************************

  38. QCL 11 (2%)

    ********************

  39. Ada 10 (2%)

    ******************

  40. Julia 10 (2%)

    ******************

Всего голосов: 1965, всего проголосовавших: 583

 

Xintrea
()

Как в Git сделать Tag или Notes в момент коммита, а не после?

Форум — Development

Никак не могу понять.

Такое впечатление, что в Git невозможно сделать коммит, который был бы помечен тегом или имел заданную Notes.

Вот например, мне нужно пометить создаваемый в данный момент коммит тегом с номером версии. Или написать Notes с номером версии в момент создания коммита. Чтобы быть уверенным что в этом коммите находится нужная версия ПО.

Получается, что так сделать нельзя? Надо вначале закоммитить изменения, потом выяснить ID этого коммита, а потом отдельной командой создать Tag или Notes? В момент коммита создать Tag или Notes невозможно?

 , , ,

Xintrea
()

RSS подписка на новые темы