Browse Source

Intermediate changes
commit_hash:c09a4eb21fa325c38a3689edd9ad0cb7791b177a

robot-piglet 1 month ago
parent
commit
fbb15f5ab8

+ 41 - 0
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>` обновляется ревизия на текущую
+
+В итоге, документация получает все изменения из путя-источника, произошедшие с момента последнего обновления. В случае конфликтов, они остаются в исходных файлах в виде конфликт-маркеров (`>>>>`/`<<<<`) и должны быть порезолвлены вручную.
+
+### Ограничения
+
+Скрипт не умеет переносить бинарные файлы (картинки и т.д.). Их нужно переносить пока вручную

+ 87 - 0
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

+ 1 - 1
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