Skip to content

Commit e151a93

Browse files
Merge branch 'stable-23.10' into MCOL-4628-SET-DOUBLE_COL-TO-DECIMAL_COL-RETURNS-ERROR
2 parents 3000a2d + 817b092 commit e151a93

File tree

205 files changed

+3103
-21282
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

205 files changed

+3103
-21282
lines changed

.drone.jsonnet

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,16 @@ local platforms_arm = {
1515
"stable-23.10": ["rockylinux:8", "rockylinux:9", "debian:12", "ubuntu:20.04", "ubuntu:22.04", "ubuntu:24.04"],
1616
};
1717

18+
local rewrite_ubuntu_mirror = @"sed -i 's|//\\(us\\.\\)\\?archive\\.ubuntu\\.com|//us.archive.ubuntu.com|g' /etc/apt/sources.list || true; " +
19+
@"sed -i 's|//\\(us\\.\\)\\?archive\\.ubuntu\\.com|//us.archive.ubuntu.com|g' /etc/apt/sources.list.d/ubuntu.sources || true; " +
20+
"cat /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list | grep archive || true; ";
21+
1822
local customEnvCommandsMap = {
1923
// 'clang-18': ['apt install -y clang-18', 'export CC=/usr/bin/clang-18', 'export CXX=/usr/bin/clang++-18'],
2024
"clang-20": [
21-
"apt install -y wget curl lsb-release software-properties-common gnupg",
25+
rewrite_ubuntu_mirror,
26+
"apt-get clean && apt-get update",
27+
"apt-get install -y wget curl lsb-release software-properties-common gnupg",
2228
"wget https://apt.llvm.org/llvm.sh",
2329
"bash llvm.sh 20",
2430
"export CC=/usr/bin/clang",
@@ -114,7 +120,7 @@ local rockylinux9_deps = "dnf install -y 'dnf-command(config-manager)' " +
114120

115121
local rockylinux_common_deps = " && dnf install -y git lz4 lz4-devel cppunit-devel cmake3 boost-devel snappy-devel pcre2-devel";
116122

117-
local deb_deps = "apt update && apt install --yes git libboost-all-dev libcppunit-dev libsnappy-dev cmake libpcre2-dev";
123+
local deb_deps = rewrite_ubuntu_mirror + "apt-get clean && apt-get update && apt-get install --yes git libboost-all-dev libcppunit-dev libsnappy-dev cmake libpcre2-dev";
118124

119125
local testPreparation(platform) =
120126
local platform_map = {
@@ -127,6 +133,10 @@ local testPreparation(platform) =
127133
};
128134
platform_map[platform];
129135

136+
local make_clickable_link(link) = "echo -e '\\e]8;;" + link + "\\e\\\\" + link + "\\e]8;;\\e\\\\'";
137+
local echo_running_on = ["echo running on ${DRONE_STAGE_MACHINE}",
138+
make_clickable_link("https://us-east-1.console.aws.amazon.com/ec2/home?region=us-east-1#Instances:search=:${DRONE_STAGE_MACHINE};v=3;$case=tags:true%5C,client:false;$regex=tags:false%5C,client:false;sort=desc:launchTime")];
139+
130140
local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise", customBootstrapParams="", customBuildEnvCommandsMapKey="") = {
131141
local pkg_format = if (std.split(platform, ":")[0] == "rockylinux") then "rpm" else "deb",
132142
local init = if (pkg_format == "rpm") then "/usr/lib/systemd/systemd" else "systemd",
@@ -154,10 +164,12 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
154164
local server_remote = if (std.endsWith(server, "enterprise")) then "https://github.com/mariadb-corporation/MariaDBEnterprise" else "https://github.com/MariaDB/server",
155165

156166
local sccache_arch = if (arch == "amd64") then "x86_64" else "aarch64",
157-
local get_sccache = "echo getting sccache... && (apt update -y && apt install -y curl || yum install -y curl || true) " +
158-
"&& curl -L -o sccache.tar.gz https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-" + sccache_arch + "-unknown-linux-musl.tar.gz " +
159-
"&& tar xzf sccache.tar.gz " +
160-
"&& install sccache*/sccache /usr/local/bin/ && echo sccache installed",
167+
local get_sccache = ["echo getting sccache...",
168+
rewrite_ubuntu_mirror,
169+
"(apt-get clean && apt-get update -y && apt-get install -y curl || yum install -y curl || true)",
170+
"curl -L -o sccache.tar.gz https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-" + sccache_arch + "-unknown-linux-musl.tar.gz &&",
171+
"tar xzf sccache.tar.gz",
172+
"install sccache*/sccache /usr/local/bin/ && echo sccache installed"],
161173

162174
local pipeline = self,
163175

@@ -182,7 +194,7 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
182194

183195
"aws s3 sync " + result + " s3://cspkg/" + branchp + eventp + "/" + server + "/" + arch + "/" + result + " --only-show-errors",
184196
'echo "Data uploaded to: ' + publish_pkg_url + '"',
185-
197+
make_clickable_link(publish_pkg_url),
186198
"rm -rf " + result + "/*",
187199
],
188200
},
@@ -231,7 +243,7 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
231243
local getContainerName(stepname) = stepname + "$${DRONE_BUILD_NUMBER}",
232244

233245
local installCmapi(containerName, pkg_format) =
234-
if (pkg_format == "deb") then execInnerDocker('bash -c "apt update -y && apt install -y mariadb-columnstore-cmapi"', containerName)
246+
if (pkg_format == "deb") then execInnerDocker('bash -c "apt-get clean && apt-get update -y && apt-get install -y mariadb-columnstore-cmapi"', containerName)
235247
else execInnerDocker('bash -c "yum update -y && yum install -y MariaDB-columnstore-cmapi"', containerName),
236248

237249
local prepareTestStage(containerName, result, do_setup) =
@@ -606,8 +618,9 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
606618
SERVER_REMOTE: "${SERVER_REMOTE:-" + server_remote + "}",
607619
SERVER_SHA: "${SERVER_SHA:-" + server + "}",
608620
},
609-
commands: [
610-
"echo $$SERVER_REF",
621+
commands: echo_running_on +
622+
[
623+
"echo $$SERVER_REF",
611624
"echo $$SERVER_REMOTE",
612625
"mkdir -p /mdb/" + builddir + " && cd /mdb/" + builddir,
613626
'git config --global url."https://github.com/".insteadOf [email protected]:',
@@ -626,9 +639,6 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
626639
volumes: [pipeline._volumes.mdb],
627640
environment: {
628641
DEBIAN_FRONTEND: "noninteractive",
629-
DEB_BUILD_OPTIONS: "parallel=4",
630-
DH_BUILD_DDEBS: "1",
631-
BUILDPACKAGE_FLAGS: "-b", // Save time and produce only binary packages, not source
632642
AWS_ACCESS_KEY_ID: {
633643
from_secret: "aws_access_key_id",
634644
},
@@ -644,14 +654,14 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
644654
},
645655
commands: [
646656
"mkdir /mdb/" + builddir + "/" + result,
647-
get_sccache,
648657
]
658+
+ get_sccache
649659
+ customEnvCommands(customBuildEnvCommandsMapKey, builddir) +
650660
[
651-
'bash -c "set -o pipefail && bash /mdb/' + builddir + "/storage/columnstore/columnstore/build/bootstrap_mcs.sh " +
661+
'bash -c "set -o pipefail && bash /mdb/' + builddir + "/storage/columnstore/columnstore/build/bootstrap_mcs.sh " +
652662
"--build-type RelWithDebInfo " +
653663
"--distro " + platform + " " +
654-
"--build-packages --sccache " +
664+
"--build-packages --install-deps --sccache " +
655665
" " + customBootstrapParams +
656666
" " + customBootstrapParamsForExisitingPipelines(platform) + " | " +
657667
"/mdb/" + builddir + "/storage/columnstore/columnstore/build/ansi2txt.sh " +
@@ -728,19 +738,6 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
728738
] +
729739
[pipeline.publish("cmapi build")] +
730740
[pipeline.publish()] +
731-
[
732-
{
733-
name: "publish pkg url",
734-
depends_on: ["publish pkg"],
735-
image: "alpine/git",
736-
commands: [
737-
"echo -e '\\e]8;;" + publish_pkg_url + "\\e\\\\" + publish_pkg_url + "\\e]8;;\\e\\\\'",
738-
"echo 'for installation run:'",
739-
"echo 'export OS=" + result + "'",
740-
"echo 'export PACKAGES_URL=" + packages_url + "'",
741-
],
742-
},
743-
] +
744741
(if (event == "cron") then [pipeline.publish("pkg latest", "latest")] else []) +
745742
[pipeline.smoke] +
746743
[pipeline.smokelog] +

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ oam/install_scripts/mcs-workernode.service
153153
oam/install_scripts/mcs-writeengineserver.service
154154
oam/install_scripts/mcs-loadbrm.py
155155
oam/install_scripts/mcs-savebrm.py
156+
oam/install_scripts/mcssavebrm.py
156157
oam/install_scripts/mcs-storagemanager.service
157158
oam/install_scripts/mcs_module_installer.sh
158159
oam/install_scripts/slave-rep-columnstore.sh
@@ -186,4 +187,3 @@ versioning/BRM/shmkeys.cpp
186187
obj/
187188
build/build
188189

189-

build/bootstrap_mcs.sh

Lines changed: 83 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ CONFIG_DIR=$RPM_CONFIG_DIR
1919

2020
SCRIPT_LOCATION=$(dirname "$0")
2121
MDB_SOURCE_PATH=$(realpath "$SCRIPT_LOCATION"/../../../..)
22+
COLUMSNTORE_SOURCE_PATH=$(realpath "$SCRIPT_LOCATION"/../)
23+
24+
DEFAULT_MARIA_BUILD_PATH=$(realpath "$MDB_SOURCE_PATH"/../BuildOf_$(basename "$MDB_SOURCE_PATH"))
2225

2326
BUILD_TYPE_OPTIONS=("Debug" "RelWithDebInfo")
2427
DISTRO_OPTIONS=("ubuntu:20.04" "ubuntu:22.04" "ubuntu:24.04" "debian:11" "debian:12" "rockylinux:8" "rockylinux:9")
@@ -28,21 +31,10 @@ MDB_CMAKE_FLAGS=()
2831

2932
source "$SCRIPT_LOCATION"/utils.sh
3033

31-
if [ "$EUID" -ne 0 ]; then
32-
error "Please run script as root to install MariaDb to system paths"
33-
exit 1
34-
fi
35-
36-
cd $SCRIPT_LOCATION
37-
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
38-
message "Columnstore will be built from $color_yellow$CURRENT_BRANCH$color_cyan branch"
39-
cd - >/dev/null
40-
4134
echo "Arguments received: $@"
42-
message "Building Mariadb Server from $color_yellow$MDB_SOURCE_PATH$color_normal"
4335

4436
optparse.define short=A long=asan desc="Build with ASAN" variable=ASAN default=false value=true
45-
optparse.define short=a long=build-path variable=MARIA_BUILD_PATH default=$(realpath "$MDB_SOURCE_PATH"/../BuildOf_$(basename "$MDB_SOURCE_PATH"))
37+
optparse.define short=a long=build-path desc="Path for build output" variable=MARIA_BUILD_PATH default=$DEFAULT_MARIA_BUILD_PATH
4638
optparse.define short=B long=run-microbench desc="Compile and run microbenchmarks " variable=RUN_BENCHMARKS default=false value=true
4739
optparse.define short=c long=cloud desc="Enable cloud storage" variable=CLOUD_STORAGE_ENABLED default=false value=true
4840
optparse.define short=C long=force-cmake-reconfig desc="Force cmake reconfigure" variable=FORCE_CMAKE_CONFIG default=false value=true
@@ -68,10 +60,13 @@ optparse.define short=T long=tsan desc="Build with TSAN" variable=TSAN default=f
6860
optparse.define short=u long=skip-unit-tests desc="Skip UnitTests" variable=SKIP_UNIT_TESTS default=false value=true
6961
optparse.define short=U long=ubsan desc="Build with UBSAN" variable=UBSAN default=false value=true
7062
optparse.define short=v long=verbose desc="Verbose makefile commands" variable=MAKEFILE_VERBOSE default=false value=true
63+
optparse.define short=V long=add-branch-name-to-outdir desc="Add branch name to build output directory" variable=BRANCH_NAME_TO_OUTDIR default=false value=true
7164
optparse.define short=W long=without-core-dumps desc="Do not produce core dumps" variable=WITHOUT_COREDUMPS default=false value=true
7265

7366
source $(optparse.build)
7467

68+
message "Building MariaDB Server from $color_yellow$MDB_SOURCE_PATH$color_normal"
69+
7570
if [[ ! " ${BUILD_TYPE_OPTIONS[*]} " =~ " ${MCS_BUILD_TYPE} " ]]; then
7671
getChoice -q "Select your Build Type" -o BUILD_TYPE_OPTIONS
7772
MCS_BUILD_TYPE=$selectedChoice
@@ -87,24 +82,19 @@ if [[ "$OS" == *"rocky"* ]]; then
8782
pkg_format="rpm"
8883
fi
8984

90-
disable_git_restore_frozen_revision() {
91-
cd $MDB_SOURCE_PATH
92-
git config submodule.storage/columnstore/columnstore.update none
93-
cd - >/dev/null
94-
}
95-
96-
DEP_GRAPH_PATH="$MARIA_BUILD_PATH/dependency_graph/mariadb.dot"
97-
9885
install_deps() {
86+
if [[ $INSTALL_DEPS = false ]]; then
87+
return
88+
fi
9989
message_split
100-
90+
prereq=""
10191
RPM_BUILD_DEPS="dnf install -y lz4 lz4-devel systemd-devel git make libaio-devel openssl-devel boost-devel bison \
10292
snappy-devel flex libcurl-devel libxml2-devel ncurses-devel automake libtool policycoreutils-devel \
10393
rpm-build lsof iproute pam-devel perl-DBI cracklib-devel expect createrepo python3 checkpolicy \
10494
cppunit-devel cmake3 libxcrypt-devel xz-devel zlib-devel libzstd-devel glibc-devel"
10595

10696
DEB_BUILD_DEPS="apt-get -y update && apt-get -y install build-essential automake libboost-all-dev \
107-
bison cmake libncurses5-dev libaio-dev libsystemd-dev libpcre2-dev libperl-dev libssl-dev libxml2-dev \
97+
bison cmake libncurses5-dev python3 libaio-dev libsystemd-dev libpcre2-dev libperl-dev libssl-dev libxml2-dev \
10898
libkrb5-dev flex libpam-dev git libsnappy-dev libcurl4-openssl-dev libgtest-dev libcppunit-dev googletest \
10999
libjemalloc-dev liblz-dev liblzo2-dev liblzma-dev liblz4-dev libbz2-dev libbenchmark-dev libdistro-info-perl \
110100
graphviz devscripts ccache equivs eatmydata curl"
@@ -113,22 +103,54 @@ install_deps() {
113103
command="dnf install -y curl 'dnf-command(config-manager)' && dnf config-manager --set-enabled powertools && \
114104
dnf install -y gcc-toolset-${GCC_VERSION} libarchive cmake && . /opt/rh/gcc-toolset-${GCC_VERSION}/enable && \
115105
${RPM_BUILD_DEPS}"
116-
117-
elif [[ "$OS" == "rockylinux:9"* || "$OS" == "rocky:9"* ]]; then
106+
elif
107+
[[ "$OS" == "rockylinux:9"* || "$OS" == "rocky:9"* ]]
108+
then
118109
command="dnf install -y 'dnf-command(config-manager)' && dnf config-manager --set-enabled crb && \
119110
dnf install -y pcre2-devel gcc gcc-c++ curl-minimal && ${RPM_BUILD_DEPS}"
120111

121112
elif [[ "$OS" == "debian:11"* ]] || [[ "$OS" == "debian:12"* ]] || [[ "$OS" == "ubuntu:20.04"* ]] || [[ "$OS" == "ubuntu:22.04"* ]] || [[ "$OS" == "ubuntu:24.04"* ]]; then
122113
command="${DEB_BUILD_DEPS}"
123-
124114
else
125115
echo "Unsupported OS: $OS"
126116
exit 17
127117
fi
128118

119+
if [[ $OS == 'ubuntu:22.04' || $OS == 'ubuntu:24.04' ]]; then
120+
if [ -f /.dockerenv ]; then
121+
change_ubuntu_mirror us
122+
fi
123+
command="${command} lto-disabled-list"
124+
fi
125+
126+
eval "$prereq"
129127
message "Installing dependencies for $OS"
130-
eval "$command"
128+
retry_eval 5 "$command"
131129
}
130+
131+
install_deps
132+
133+
cd $COLUMSNTORE_SOURCE_PATH
134+
COLUMNSTORE_BRANCH=$(git rev-parse --abbrev-ref HEAD)
135+
message "Columnstore will be built from $color_yellow$COLUMNSTORE_BRANCH$color_cyan branch"
136+
137+
cd $MDB_SOURCE_PATH
138+
MARIADB_BRANCH=$(git rev-parse --abbrev-ref HEAD)
139+
message "MariaDB will be built from $color_yellow$MARIADB_BRANCH$color_cyan branch"
140+
cd - >/dev/null
141+
142+
if [[ ${BRANCH_NAME_TO_OUTDIR} = true ]]; then
143+
MARIA_BUILD_PATH="${MARIA_BUILD_PATH}_${MARIADB_BRANCH}_${COLUMNSTORE_BRANCH}"
144+
fi
145+
146+
disable_git_restore_frozen_revision() {
147+
cd $MDB_SOURCE_PATH
148+
git config submodule.storage/columnstore/columnstore.update none
149+
cd - >/dev/null
150+
}
151+
152+
DEP_GRAPH_PATH="$MARIA_BUILD_PATH/dependency_graph/mariadb.dot"
153+
132154
stop_service() {
133155
message_split
134156
message "Stopping MariaDB services"
@@ -198,10 +220,9 @@ modify_packaging() {
198220

199221
#disable LTO for 22.04 for now
200222
if [[ $OS == 'ubuntu:22.04' || $OS == 'ubuntu:24.04' ]]; then
201-
apt install -y lto-disabled-list &&
202-
for i in mariadb-plugin-columnstore mariadb-server mariadb-server-core mariadb mariadb-10.6; do
203-
echo "$i any" >>/usr/share/lto-disabled-list/lto-disabled-list
204-
done &&
223+
for i in mariadb-plugin-columnstore mariadb-server mariadb-server-core mariadb mariadb-10.6; do
224+
echo "$i any" >>/usr/share/lto-disabled-list/lto-disabled-list
225+
done &&
205226
grep mariadb /usr/share/lto-disabled-list/lto-disabled-list
206227
fi
207228

@@ -259,8 +280,9 @@ construct_cmake_flags() {
259280
-DWITH_WSREP=NO
260281
)
261282

262-
if [[ MAINTAINER_MODE = true ]]; then
283+
if [[ $MAINTAINER_MODE = true ]]; then
263284
MDB_CMAKE_FLAGS+=(-DCOLUMNSTORE_MAINTAINER=YES)
285+
message "Columnstore maintainer mode on"
264286
else
265287
warn "Maintainer mode is disabled, be careful, alien"
266288
fi
@@ -368,6 +390,11 @@ construct_cmake_flags() {
368390
MDB_CMAKE_FLAGS+=(-DDEB=${CODENAME})
369391
fi
370392

393+
if [[ "$NO_CLEAN" == true ]]; then
394+
message "Skipping Columnstore.etc config installation"
395+
MDB_CMAKE_FLAGS+=(-DSKIP_CONFIG_INSTALLATION=ON)
396+
fi
397+
371398
MDB_CMAKE_FLAGS+=($CUSTOM_CMAKE_FLAGS)
372399

373400
message "Building with flags"
@@ -406,9 +433,15 @@ generate_svgs() {
406433
}
407434

408435
build_package() {
436+
cd $MDB_SOURCE_PATH
437+
409438
if [[ $pkg_format == "rpm" ]]; then
410439
command="cmake ${MDB_CMAKE_FLAGS[@]} && make -j\$(nproc) package"
411440
else
441+
export DEBIAN_FRONTEND="noninteractive"
442+
export DEB_BUILD_OPTIONS="parallel=$(nproc)"
443+
export DH_BUILD_DDEBS="1"
444+
export BUILDPACKAGE_FLAGS="-b"
412445
command="mk-build-deps debian/control -t 'apt-get -y -o Debug::pkgProblemResolver=yes --no-install-recommends' -r -i && \
413446
CMAKEFLAGS=\"${MDB_CMAKE_FLAGS[@]}\" debian/autobake-deb.sh"
414447
fi
@@ -420,6 +453,14 @@ build_package() {
420453
check_errorcode
421454
}
422455

456+
check_debian_install_file() {
457+
message "checking debian/mariadb-plugin-columnstore.install"
458+
message_split
459+
python3 $COLUMSNTORE_SOURCE_PATH/build/debian_install_file_compare.py \
460+
${COLUMSNTORE_SOURCE_PATH}/debian/mariadb-plugin-columnstore.install \
461+
$MARIA_BUILD_PATH/mariadb-plugin-columnstore.install.generated
462+
}
463+
423464
build_binary() {
424465
MARIA_BUILD_PATH=$(realpath "$MARIA_BUILD_PATH")
425466
message_split
@@ -438,7 +479,7 @@ build_binary() {
438479
message "Configuring cmake silently"
439480
${CMAKE_BIN_NAME} "${MDB_CMAKE_FLAGS[@]}" -S"$MDB_SOURCE_PATH" -B"$MARIA_BUILD_PATH" | spinner
440481
message_split
441-
482+
check_debian_install_file
442483
generate_svgs
443484

444485
${CMAKE_BIN_NAME} --build "$MARIA_BUILD_PATH" -j "$CPUS" | onelinearizator &&
@@ -553,6 +594,12 @@ make_dir() {
553594

554595
install() {
555596
if [[ $RECOMPILE_ONLY = false ]]; then
597+
598+
if [ "$EUID" -ne 0 ]; then
599+
error "Please run script as root to install MariaDb to system paths"
600+
exit 1
601+
fi
602+
556603
message_split
557604
message "Installing MariaDB"
558605
disable_plugins_for_bootstrap
@@ -577,8 +624,10 @@ install() {
577624

578625
make_dir /etc/columnstore
579626

580-
cp "$MDB_SOURCE_PATH"/storage/columnstore/columnstore/oam/etc/Columnstore.xml /etc/columnstore/Columnstore.xml
581-
cp "$MDB_SOURCE_PATH"/storage/columnstore/columnstore/storage-manager/storagemanager.cnf /etc/columnstore/storagemanager.cnf
627+
if [[ "$NO_CLEAN" == false ]]; then
628+
cp "$MDB_SOURCE_PATH"/storage/columnstore/columnstore/oam/etc/Columnstore.xml /etc/columnstore/Columnstore.xml
629+
cp "$MDB_SOURCE_PATH"/storage/columnstore/columnstore/storage-manager/storagemanager.cnf /etc/columnstore/storagemanager.cnf
630+
fi
582631

583632
cp "$MDB_SOURCE_PATH"/storage/columnstore/columnstore/oam/install_scripts/*.service /lib/systemd/system/
584633

@@ -636,10 +685,6 @@ smoke() {
636685
fi
637686
}
638687

639-
if [[ $INSTALL_DEPS = true || $BUILD_PACKAGES = true ]]; then
640-
install_deps
641-
fi
642-
643688
if [[ $DO_NOT_FREEZE_REVISION = false ]]; then
644689
disable_git_restore_frozen_revision
645690
fi

0 commit comments

Comments
 (0)