aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2025-01-16 18:02:46 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2025-01-16 18:14:47 +0300
commitfbb15f5ab8a61fc7c50500e2757af0b47174d825 (patch)
treec938d50f8d45426d685621a91d9c92d058928935
parentb97da5f54c0edb261f74824aa9a8a643a4ae75f6 (diff)
downloadydb-fbb15f5ab8a61fc7c50500e2757af0b47174d825.tar.gz
Intermediate changes
commit_hash:c09a4eb21fa325c38a3689edd9ad0cb7791b177a
-rw-r--r--yql/essentials/docs/scripts/README.md41
-rwxr-xr-xyql/essentials/docs/scripts/doc_upgrade_git.sh87
-rw-r--r--yt/yt/library/profiling/solomon/ya.make2
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