diff options
author | robot-piglet <robot-piglet@yandex-team.com> | 2025-01-16 18:02:46 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2025-01-16 18:14:47 +0300 |
commit | fbb15f5ab8a61fc7c50500e2757af0b47174d825 (patch) | |
tree | c938d50f8d45426d685621a91d9c92d058928935 | |
parent | b97da5f54c0edb261f74824aa9a8a643a4ae75f6 (diff) | |
download | ydb-fbb15f5ab8a61fc7c50500e2757af0b47174d825.tar.gz |
Intermediate changes
commit_hash:c09a4eb21fa325c38a3689edd9ad0cb7791b177a
-rw-r--r-- | yql/essentials/docs/scripts/README.md | 41 | ||||
-rwxr-xr-x | yql/essentials/docs/scripts/doc_upgrade_git.sh | 87 | ||||
-rw-r--r-- | yt/yt/library/profiling/solomon/ya.make | 2 |
3 files changed, 129 insertions, 1 deletions
diff --git a/yql/essentials/docs/scripts/README.md b/yql/essentials/docs/scripts/README.md new file mode 100644 index 0000000000..57541957d7 --- /dev/null +++ b/yql/essentials/docs/scripts/README.md @@ -0,0 +1,41 @@ +# Скрипты для переноса изменений в документации + +## Как использовать + +### Первичная инициализация + +```bash +./yql/essentials/docs/scripts/doc_upgrade_arc.sh <dst_path>/<src.cfg> <doc_source_dir> +``` + +Создает файл `<src.cfg>` (название может быть произвольным) в директории `<dst_path>` и прописывает в него текущую ревизию репозитория и путь-источник. Одна и таже документация может наполняться из разных источников с разными базовыми ревизиями. Для каждого такого источника нужно создать свой файл. + + +Пример: + +```bash +./yql/essentials/docs/scripts/doc_upgrade_arc.sh yql/docs_yfm/docs/ru/essentials.base_rev yql/essentials/docs/ru +``` + +В примере выше путем-источником для документации в yql/docs_yfm/docs/ru будет yql/essentials/docs/ru. + +Аналогичный скрипт для git-репозитория находится по пути `yql/essentials/docs/scripts/doc_upgrade_git.sh` + +### Обновление документаци + +```bash +./yql/essentials/docs/scripts/doc_upgrade_arc.sh <dst_path>/<src.cfg> +``` + +Скрипт последовательно выполняет следующие действия: +1. Читает базовую ревизию (rSRC) и путь-источник из `<dst_path>/<src.cfg>` +2. Строит diff для ревизии rSRC между `<dst_path>` и путем-источником +3. На место `<dst_path>` копируется содержимое из путя-источника с текущей ревизией +4. На `<dst_path>` накладывается патч из п.2 +5. В `<dst_path>/<src.cfg>` обновляется ревизия на текущую + +В итоге, документация получает все изменения из путя-источника, произошедшие с момента последнего обновления. В случае конфликтов, они остаются в исходных файлах в виде конфликт-маркеров (`>>>>`/`<<<<`) и должны быть порезолвлены вручную. + +### Ограничения + +Скрипт не умеет переносить бинарные файлы (картинки и т.д.). Их нужно переносить пока вручную diff --git a/yql/essentials/docs/scripts/doc_upgrade_git.sh b/yql/essentials/docs/scripts/doc_upgrade_git.sh new file mode 100755 index 0000000000..75573c5b63 --- /dev/null +++ b/yql/essentials/docs/scripts/doc_upgrade_git.sh @@ -0,0 +1,87 @@ +#!/bin/bash +set -eux + +TARGET_INFO_FILE="$(realpath $1)" + +if [ ! -f $TARGET_INFO_FILE ]; then + echo "File $TARGET_INFO_FILE doesn't exist. Creating new one" + + if [ "$2" == "" ]; then + echo "Expected source folder as the second argument" >&2 + exit + fi + + if [ ! -d "$2" ]; then + echo "Expected $2 to be a directory" >&2 + exit + fi + + FROM=$(realpath $2) + GIT_ROOT=$(cd $FROM; git rev-parse --show-toplevel) + HEAD=$(cd $FROM; git rev-parse HEAD) + # Normalize FROM relativly to the git root + FROM=${FROM#$GIT_ROOT/} + echo "$HEAD;$FROM" > $TARGET_INFO_FILE + echo "Filled in $TARGET_INFO_FILE" + exit +fi + +IFS=';' read -r BASE_REV INFO_FROM < "$TARGET_INFO_FILE" +TO=$(dirname $(realpath "$TARGET_INFO_FILE")) +HEAD_REV=$(cd $TO; git rev-parse HEAD) +GIT_ROOT=$(cd $TO; git rev-parse --show-toplevel) +FROM="$GIT_ROOT/$INFO_FROM" + +echo "Base revision: $BASE_REV" +echo "Head revision: $HEAD_REV" +echo "Git root: $GIT_ROOT" +echo "Source: $FROM" +echo "Target: $TO" + +if [ "$(cd $TO; git status -s -u | wc -l)" != "0" ]; then + echo "Target $TO has uncommited changes" >&2 + exit +fi + +cd $GIT_ROOT + +CURRENT_BRANCH=$(git branch --show-current) +PATCH_FILE=$(mktemp) +BRANCH=upgrade-$(date '+%Y-%m-%d-%H-%M-%S') + +clean_up () { + ARG=$? + echo "Deleting patch file" + rm $PATCH_FILE + exit $ARG +} +trap clean_up EXIT + +echo "Use $BRANCH temporary branch, $PATCH_FILE patch file" +git checkout -b $BRANCH $BASE_REV +rsync -r --delete --filter='. -' -v $TO/ $FROM << EOF ++ /*/ ++ *.md ++ toc_*.yaml +- /* +EOF + +git add -A $INFO_FROM + +git diff --cached --binary --relative=$INFO_FROM > $PATCH_FILE +git reset --hard +git clean -d -f +git status +git checkout "$CURRENT_BRANCH" +git branch -D $BRANCH +rsync -r --delete --filter='. -' -v $FROM/ $TO << EOF ++ /*/ ++ *.md ++ toc_*.yaml +- /* +EOF + +patch -d $TO -p1 -N -E --no-backup-if-mismatch --merge -i $PATCH_FILE -t +#git apply --whitespace=nowarn --directory=$TO --reject $PATCH_FILE + +echo "$HEAD_REV;$INFO_FROM" > $TARGET_INFO_FILE diff --git a/yt/yt/library/profiling/solomon/ya.make b/yt/yt/library/profiling/solomon/ya.make index 0eb54db10e..3d53febe4f 100644 --- a/yt/yt/library/profiling/solomon/ya.make +++ b/yt/yt/library/profiling/solomon/ya.make @@ -10,7 +10,7 @@ SRCS( percpu.cpp producer.cpp proxy.cpp - registry.cpp + GLOBAL registry.cpp remote.cpp sensor.cpp sensor_service.cpp |