Задать вопрос
  • Что значит "Merge remote-tracking branch"?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Слияние происходит в вашей ветке, другие ветки не меняются.
    git pull для branch - это грубо говоря, git fetch для branch (выборка изменений), производимая в специальную ветку отслеживания refs/remotes/origin/branch (в ней список комммитов совпадает с таковым в ветке branch в удаленном репозитории origin) плюс последующий git merge этой ветки отслеживания в вашу ветку branch в репозитории. Вот именно об этом git вам и пишет. Ваша ветка (т.е. указатель на последний коммит в ней) после этого будет включать те коммиты, которые вы получили через git pull + изменения, сделанные в процессе слияния. А ветка в удаленном репозитории (на ее последний известный в вашем репозитории коммит указывает ветка отслеживания) от выполнения git pull не поменяется.
    Ответ написан
    7 комментариев
  • Как освободить место на диске облачного сервера Ubuntu 24.04 LTS 64-bit?

    Попробуйте docker system prune для удаления неиспользуемых докером контейнеров, имиджей и пр. Документация.
    Ответ написан
    1 комментарий
  • Как освободить место на диске облачного сервера Ubuntu 24.04 LTS 64-bit?

    Adamos
    @Adamos
    du -hd1 /var
    Покажет, что жрет место в конкретном каталоге. Потом du -hd1 /var/log и т.д.
    Ответ написан
    Комментировать
  • Как освободить место на диске облачного сервера Ubuntu 24.04 LTS 64-bit?

    @pfg21
    ex-турист
    Обычно хлам складывают в /var. К примеру почистить /var/log от старых файлов

    На будущее поставить ncdu
    Запускать sudo ncdu -x /

    /dev/sda1 это виртуальный файл, представляющий себя раздел на носителе, содержащий файловую структуру корня системы (прописано в Mounted on)

    п.с. а Линукс необходимо изучать....
    Ответ написан
    Комментировать
  • Как отключить navigator.geolocation.watchPosition()?

    @madismad
    Вынеси id из функции
    let id;
    const getContinuousPosition = () => {
      id = navigator.geolocation.watchPosition((position) => {
        const { latitude, longitude } = position.coords;
    
        continousCoordinates.value = [
          longitude,
          latitude
        ]
      }, error, options);
    };
    
    ...
    
    onUnmounted(() => {
      if(id){
        navigator.geolocation.clearWatch(id);
      }
    })
    Ответ написан
    1 комментарий
  • Как удалить строку из одной таблицы и добавить эту же строку в другую таблицу?

    @alexalexes
    Вот такие проектировщики плодят кучу таблиц под одну сущность.
    Яркий пример, под каждый год отчетности создают таблицы <название_таблицы>_<год_отчетности>.
    Не надо так, пожалуйста.
    В вашем случае, ситуация ровно таже самая.
    Добавьте в существующий статус задачи еще одно значение - "Архивный", либо создайте отдельный атрибут под этот признак. И, обязательно, проиндексируйте его.
    В бизнес-логике очень легко отсеять записи с неподходящим статусом.
    Если не хотите, чтобы бизнес-логика видела ненужные записи, делайте для нее свое view.
    Есть, конечно, случай, когда таблица становится очень большой, и нужно облегчить накладные расходы по ее хранению, то в этом случае настраивают партиции таблицы. Но это тонкое администрирование.
    PS: Если задача требует переноса данных в один присест и это не ошибка проектирования архитектуры, то это выполняется как любое неэлементарное действие с помощью транзакций в процедурном режиме выполнения SQL:
    - открываем транзакцию;
    - делаем insert с select;
    - делаем delete;
    - закрываем транзакцию.
    Только имейте ввиду, что в транзакции не должны прогонятся длинные выборки ни в insert-е, ни в delete. Это влияет на время блокировки таблиц, и сильно затратно по производительности, так как существенно перестраиваются индексы. Нужно аккуратно использовать такие процедуры (по правилу: "семь раз селекть, один раз делеть"), иначе получите залочивание на длительный период.
    Ответ написан
    Комментировать
  • Почему не подтягиваются изменения стилей для https?

    @Refguser
    Решения для бизнеса: от создания ИМ до...
    Вангуя (без пациента и нужных деталей): потому что браузерное кеширование.
    Ответ написан
    1 комментарий
  • Почему Google и Yandex не распознают favicon и description?

    @ludvigruno
    Фулстэк-разработчик
    Скорее всего, у тебя два разных нюанса.

    С Google понятно — он часто игнорит и берет кусок текста со страницы, который, по его мнению, лучше подходит под запрос. Это нормальная практика, ничего с этим не сделаешь. Проверь, чтобы description вообще был в и имел нормальную длину (около 150-160 символов), без ошибок в коде. Если всё ок, то просто забей — у Google свои алгоритмы, иногда они видят текст так, как нам не нравится.

    С Яндексом и favicon сложнее. SVG — не лучший выбор для favicon, у Яндекса он может некорректно отображаться. То, что ты сменил формат на .ico, правильно, но обновления в поиске требуют времени (до нескольких недель). Проверь, чтобы файл был доступен по адресу /favicon.ico, и в была прописана ссылка вроде:

    <link rel="icon" type="image/x-icon" href="/favicon.ico">


    Если не видишь изменений, можно попробовать проверить всё через Яндекс.Вебмастер — там видно, как бот видит сайт.

    Кстати, обновление favicon может зависеть от кеша как в браузерах, так и у самих поисковиков. Иногда помогает, если поменять имя файла (например, /favicon-v2.ico).

    В общем, просто жди — скорее всего, через пару апдейтов Яндекс всё подтянет.
    Ответ написан
    1 комментарий
  • Как исправить ошибку "cannot load certificate" после удаления сертификата letsencrypt?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Это ошибка nginx, а не let's encrypt. Нужно удалить блок https в коныиге nginx.
    Ответ написан
    8 комментариев
  • Как исправить ошибку "cannot load certificate" после удаления сертификата letsencrypt?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Отключите временно HTTPS-сервер, выпустите сертификат и верните обратно.
    Ответ написан
    1 комментарий
  • Как исправить ошибку 500 Internal Server Error nginx/1.26.2?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    500 (ровно) это в 99% случаев необработанное исключение - в логе приложения можно найти подробности о том, где именно оно произошло.
    Ответ написан
    3 комментария
  • Как сделать липкий элемент через position: fixed?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Предположу, что событие скролла не вызывается на каждый проскролленный пиксель. А значит ваш код просто "проскакивает" нужную точку. Используйте сравнение >= или <=, в зависимости от вашей логики.
    Ответ написан
    2 комментария
  • Как правильно отобразить компоненты в Components Tree Nuxt 3?

    @null_object
    Это стандартное поведение компонента <NuxtPage /> и не является проблемой, он внутри себя использует <RouterView /> из vue-router в который добавляется внутренняя логика Nuxt (например добавление Transitions если они указаны в настройках). Anonymous Component на самом деле - компонент RouteProvider, который занимается перерисовкой страниц. В общем, просто обертка фреймворка для роутинга.

    RouteProvider добавляется тут. Код самого провайдера можно тут посмотреть.
    Ответ написан
    Комментировать
  • Как отфильтровать таблицу по первому и последнему символам в ms sql?

    @alexalexes
    Так попробуйте:
    select id, name from testtable where trim(replace(Name, char(9), ' ')) like 'S%n';
    select id, name from testtable where trim(replace(Name, char(9), ' ')) like '%n';
    Ответ написан
    3 комментария
  • Как составить динамический маршрут в Nuxt 3?

    kossmos
    @kossmos
    Frontend разработчик
    Через квадратные скобки. ProductView переименуйте в /pages/product-[id].vue - тогда в браузере вы получите адрес карточки товара //www.ru/product-123/

    В компоненте product-[id].vue id будет доступен в $route.params.id
    Ответ написан
    3 комментария
  • Как отрендерить календарь, чтобы числа дней выводились в соответствии с днями недели?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Отдельные циклы для чисел за текущий и предыдущий месяцы (кстати, а где у вас следующий?) не нужны. Чтобы получить число, надо не на счётчик цикла смотреть, а на дату - начальным значением будет первое число месяца минус количество дней, прошедших с последнего понедельника. Цикл крутить надо не до конца месяца, а немного дальше - чтобы общее количество чисел было кратно семи (т.е., чтобы в последней неделе не было отсутствующих дней) и всегда одно и то же (чтобы размер календаря не зависел от отображаемого месяца). Вот так.
    Ответ написан
    Комментировать
  • Как сохранить начальное состояние объекта в обход реактивности vue?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    Просто сохранить копию объекта. Самое простое сделать так:
    const mySourceCopy = JSON.parse(JSON.stringify(objectOrArray));
    Ответ написан
    2 комментария
  • Как убрать scroll у body при открытии модальных окон через vue watch?

    Anastasia2306
    @Anastasia2306
    PHP-разработчик.
    export default {
      data() {
        return {
          isModalAddVisible: false,
          activeId: null,
        };
      },
      watch: {
        isModalAddVisible(newValue) {
          if (newValue || this.activeId) {
            document.body.style.overflow = 'hidden';
          } else {
            document.body.style.overflow = 'auto';
          }
        },
        activeId(newValue) {
          if (this.isModalAddVisible || newValue) {
            document.body.style.overflow = 'hidden';
          } else {
            document.body.style.overflow = 'auto';
          }
        },
      },
    };


    Только не забудь удостовериться, что isModalAddVisible и activeId являются реактивными свойствами в компоненте. Иначе работать не будет
    Ответ написан
    Комментировать
  • Как убрать scroll у body при открытии модальных окон через vue watch?

    0xD34F
    @0xD34F Куратор тега Vue.js
    .no-overflow {
      overflow: hidden;
    }

    mounted() {
      this.$watch(
        () => this.isModalAddVisible || this.activeId,
        val => document.body.classList.toggle('no-overflow', val),
        { immediate: true }
      );
    },

    Одно непонятно - зачем отслеживать несколько разных свойств, если наличием скролла может управлять само модальное окно? Открылось - убирает скролл, закрылось - возвращает. Разные окна для разных задача? - сделайте общий компонент, а разницу для конкретных экземпляров определяйте через слоты.
    Ответ написан
    Комментировать
  • Как получить свойство из props drilling по открытию модального окна?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Не надо никаких v-model, кого показывать в модальном окне - отправляйте наверх эту информацию вместе с событием. Свойство, управляющее видимостью модального окна - пусть оно вместо логического значения хранит id или объект или что там у вас должно показываться в окне, если не null, значит открываем окно. Вот так всё просто.

    UPD. Вот вариант с v-model, конечно только на уровне таблицы, в строках всё по-прежнему.

    UPD. А вообще, можно полностью отказаться от прокидывания событий наверх. Таблицу исполняем в более общем виде - пусть принимает массив с описанием столбцов, а содержимое ячеек задаётся через слоты, имена которых определяются на основе имён столбцов (по умолчанию выводят данных как есть). В этом случае кнопку можно определить там же, где создаётся экземпляр таблицы. Как это может выглядеть - ваш вариант с отдельным компонентом строки (и, соответственно, прокидыванием в него слотов из компонента таблицы), или, без ненужного усложнения.
    Ответ написан
    1 комментарий