first add
This commit is contained in:
commit
683a4b84a4
24
backUpEs.sh
Executable file
24
backUpEs.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 定义目录和备份文件路径
|
||||
SOURCE_DIR="/var/snap/microk8s/common/mnt/data/elasticsearch-data"
|
||||
BACKUP_DIR="/home/ubuntu/data/tmp/backUp"
|
||||
BACKUP_FILE="$BACKUP_DIR/backup-$(date '+%Y-%m-%d_%H-%M-%S').tar.gz"
|
||||
|
||||
# 创建备份目录(如果不存在)
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# 创建备份(保留elasticsearch-data目录结构)
|
||||
echo "正在备份 $SOURCE_DIR 到 $BACKUP_FILE"
|
||||
tar -czf "$BACKUP_FILE" -C "$(dirname "$SOURCE_DIR")" "$(basename "$SOURCE_DIR")"
|
||||
|
||||
# 检查备份是否成功
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "备份成功: $BACKUP_FILE"
|
||||
else
|
||||
echo "备份失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 保留最新的 8 个备
|
||||
|
22
busybox_default.yaml
Normal file
22
busybox_default.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: ubuntu-deployment
|
||||
namespace: default
|
||||
labels:
|
||||
app: ubuntu
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: ubuntu
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: ubuntu
|
||||
spec:
|
||||
containers:
|
||||
- name: ubuntu
|
||||
image: ubuntu:latest
|
||||
command: ["sh", "-c", "while true; do echo Hello Kubernetes!; sleep 3600; done"]
|
||||
|
34
dockerFiles/vnc/start-vnc.sh
Normal file
34
dockerFiles/vnc/start-vnc.sh
Normal file
@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 更新包列表并升级系统
|
||||
apt-get update && apt-get upgrade -y
|
||||
|
||||
# 设置 VNC 密码
|
||||
if [ -z "$VNC_PASSWORD" ]; then
|
||||
echo "Error: VNC_PASSWORD is not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p ~/.vnc
|
||||
echo "$VNC_PASSWORD" | vncpasswd -f > ~/.vnc/passwd
|
||||
chmod 600 ~/.vnc/passwd
|
||||
|
||||
# 设置环境变量
|
||||
export USER=root
|
||||
export DISPLAY=:1
|
||||
|
||||
# 启动 XFCE 桌面环境和 VNC 服务器
|
||||
unset SESSION_MANAGER
|
||||
unset DBUS_SESSION_BUS_ADDRESS
|
||||
xrdb $HOME/.Xresources
|
||||
startxfce4 &
|
||||
vncserver :1 -geometry 1280x800 -depth 24
|
||||
# 启动 x11vnc 以支持剪切板
|
||||
x11vnc -display :1 -N -forever -shared &
|
||||
|
||||
# 确保 VNC 服务器日志目录存在
|
||||
mkdir -p /root/.vnc
|
||||
|
||||
# 保持容器运行
|
||||
tail -F /root/.vnc/*.log
|
||||
|
32
dockerFiles/vnc/vnc.dockerfile
Normal file
32
dockerFiles/vnc/vnc.dockerfile
Normal file
@ -0,0 +1,32 @@
|
||||
# 基础镜像,使用 Ubuntu 并指定 ARM64 架构
|
||||
FROM ubuntu:20.04
|
||||
|
||||
# 设置环境变量,避免交互式提示
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# 更新系统并安装必要的软件
|
||||
RUN apt-get update && apt-get install -y \
|
||||
xfce4 \
|
||||
xfce4-goodies \
|
||||
tightvncserver \
|
||||
dbus-x11 \
|
||||
x11-xserver-utils \
|
||||
xvfb \
|
||||
xterm \
|
||||
wget \
|
||||
firefox \
|
||||
chromium-browser \
|
||||
vim \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 设置 VNC 服务启动脚本
|
||||
COPY start-vnc.sh /usr/local/bin/start-vnc.sh
|
||||
RUN chmod +x /usr/local/bin/start-vnc.sh
|
||||
|
||||
# 设置容器启动时的命令
|
||||
CMD ["/usr/local/bin/start-vnc.sh"]
|
||||
|
||||
# 暴露 VNC 端口
|
||||
EXPOSE 5901
|
||||
|
65
efk/README.md
Normal file
65
efk/README.md
Normal file
@ -0,0 +1,65 @@
|
||||
## 如何重新创建整个namespace
|
||||
|
||||
先删了 namespace efk,这样里面资源就都没了,除了pv
|
||||
然后 microk8s.kubectl create namespace efk
|
||||
|
||||
|
||||
option1:
|
||||
1. 确保已经把本目录下config内容复制到 /var/snap/microk8s/common/mnt/data/elasticsearch-config
|
||||
- sudo mkdir /var/snap/microk8s/common/mnt/data/elasticsearch-data -p || true
|
||||
- sudo mkdir /var/snap/microk8s/common/mnt/data/elasticsearch-config -p || true
|
||||
2. ekf空间下资源部署,本目录下所有未被禁用的yaml
|
||||
- chmod 777 /var/snap/microk8s/common/mnt/data/elasticsearch-config && chmod 777 /var/snap/microk8s/common/mnt/data/elasticsearch-data
|
||||
- cp config/* /var/snap/microk8s/common/mnt/data/elasticsearch-config -r
|
||||
- 先装elasticsearch相关
|
||||
- 执行./createSecure_passwd.sh
|
||||
此时建议停下来看看elasticsearch的pod的状态是否正常,否则后面的步骤没有意义: microk8s.kubectl get all -n efk
|
||||
- 再装fluentd相关
|
||||
- 执行 ./createFluentdAccoutnIn.sh
|
||||
- 最后装kibana相关
|
||||
|
||||
--------
|
||||
|
||||
option2:
|
||||
|
||||
1. 所有yaml都apply完了再 执行这个
|
||||
|
||||
```
|
||||
./createSecure_passwd.sh
|
||||
```
|
||||
|
||||
创建了
|
||||
账号:elastic
|
||||
密码:your_secure_password
|
||||
|
||||
2. 然后创建服务账号给kibana, 并重新部署
|
||||
|
||||
```
|
||||
./refreshTokenForKibana.sh
|
||||
```
|
||||
3. 确保已经把最新的traefik的loadbalance的ip配置到/etc/nginx/nginx.conf 的upstreeam里
|
||||
--------------
|
||||
上述option 二选一
|
||||
不管怎么样,最后: 浏览:http://kibana.k8s.xunlang.home
|
||||
|
||||
在kibana的dev tool中执行:
|
||||
|
||||
```
|
||||
PUT _index_template/logstash_template
|
||||
{
|
||||
"index_patterns": ["logstash-*"],
|
||||
"template": {
|
||||
"settings": {
|
||||
"number_of_replicas": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
如果已经fluentd已经开始上报log,需删掉已有index:
|
||||
|
||||
```
|
||||
DELETE _template/logstash_template
|
||||
DELETE /logstash-2024.11.09
|
||||
|
||||
```
|
1
efk/_git/COMMIT_EDITMSG
Normal file
1
efk/_git/COMMIT_EDITMSG
Normal file
@ -0,0 +1 @@
|
||||
update README
|
1
efk/_git/HEAD
Normal file
1
efk/_git/HEAD
Normal file
@ -0,0 +1 @@
|
||||
ref: refs/heads/master
|
1
efk/_git/ORIG_HEAD
Normal file
1
efk/_git/ORIG_HEAD
Normal file
@ -0,0 +1 @@
|
||||
a829769ed1d706a7def1e750b9621cc14bf669ff
|
11
efk/_git/config
Normal file
11
efk/_git/config
Normal file
@ -0,0 +1,11 @@
|
||||
[core]
|
||||
repositoryformatversion = 0
|
||||
filemode = true
|
||||
bare = false
|
||||
logallrefupdates = true
|
||||
[remote "origin"]
|
||||
url = baidu:repos/k8s/efk
|
||||
fetch = +refs/heads/*:refs/remotes/origin/*
|
||||
[branch "master"]
|
||||
remote = origin
|
||||
merge = refs/heads/master
|
1
efk/_git/description
Normal file
1
efk/_git/description
Normal file
@ -0,0 +1 @@
|
||||
Unnamed repository; edit this file 'description' to name the repository.
|
15
efk/_git/hooks/applypatch-msg.sample
Executable file
15
efk/_git/hooks/applypatch-msg.sample
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to check the commit log message taken by
|
||||
# applypatch from an e-mail message.
|
||||
#
|
||||
# The hook should exit with non-zero status after issuing an
|
||||
# appropriate message if it wants to stop the commit. The hook is
|
||||
# allowed to edit the commit message file.
|
||||
#
|
||||
# To enable this hook, rename this file to "applypatch-msg".
|
||||
|
||||
. git-sh-setup
|
||||
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
|
||||
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
|
||||
:
|
24
efk/_git/hooks/commit-msg.sample
Executable file
24
efk/_git/hooks/commit-msg.sample
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to check the commit log message.
|
||||
# Called by "git commit" with one argument, the name of the file
|
||||
# that has the commit message. The hook should exit with non-zero
|
||||
# status after issuing an appropriate message if it wants to stop the
|
||||
# commit. The hook is allowed to edit the commit message file.
|
||||
#
|
||||
# To enable this hook, rename this file to "commit-msg".
|
||||
|
||||
# Uncomment the below to add a Signed-off-by line to the message.
|
||||
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
|
||||
# hook is more suited to it.
|
||||
#
|
||||
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
|
||||
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
|
||||
|
||||
# This example catches duplicate Signed-off-by lines.
|
||||
|
||||
test "" = "$(grep '^Signed-off-by: ' "$1" |
|
||||
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
|
||||
echo >&2 Duplicate Signed-off-by lines.
|
||||
exit 1
|
||||
}
|
173
efk/_git/hooks/fsmonitor-watchman.sample
Executable file
173
efk/_git/hooks/fsmonitor-watchman.sample
Executable file
@ -0,0 +1,173 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use IPC::Open2;
|
||||
|
||||
# An example hook script to integrate Watchman
|
||||
# (https://facebook.github.io/watchman/) with git to speed up detecting
|
||||
# new and modified files.
|
||||
#
|
||||
# The hook is passed a version (currently 2) and last update token
|
||||
# formatted as a string and outputs to stdout a new update token and
|
||||
# all files that have been modified since the update token. Paths must
|
||||
# be relative to the root of the working tree and separated by a single NUL.
|
||||
#
|
||||
# To enable this hook, rename this file to "query-watchman" and set
|
||||
# 'git config core.fsmonitor .git/hooks/query-watchman'
|
||||
#
|
||||
my ($version, $last_update_token) = @ARGV;
|
||||
|
||||
# Uncomment for debugging
|
||||
# print STDERR "$0 $version $last_update_token\n";
|
||||
|
||||
# Check the hook interface version
|
||||
if ($version ne 2) {
|
||||
die "Unsupported query-fsmonitor hook version '$version'.\n" .
|
||||
"Falling back to scanning...\n";
|
||||
}
|
||||
|
||||
my $git_work_tree = get_working_dir();
|
||||
|
||||
my $retry = 1;
|
||||
|
||||
my $json_pkg;
|
||||
eval {
|
||||
require JSON::XS;
|
||||
$json_pkg = "JSON::XS";
|
||||
1;
|
||||
} or do {
|
||||
require JSON::PP;
|
||||
$json_pkg = "JSON::PP";
|
||||
};
|
||||
|
||||
launch_watchman();
|
||||
|
||||
sub launch_watchman {
|
||||
my $o = watchman_query();
|
||||
if (is_work_tree_watched($o)) {
|
||||
output_result($o->{clock}, @{$o->{files}});
|
||||
}
|
||||
}
|
||||
|
||||
sub output_result {
|
||||
my ($clockid, @files) = @_;
|
||||
|
||||
# Uncomment for debugging watchman output
|
||||
# open (my $fh, ">", ".git/watchman-output.out");
|
||||
# binmode $fh, ":utf8";
|
||||
# print $fh "$clockid\n@files\n";
|
||||
# close $fh;
|
||||
|
||||
binmode STDOUT, ":utf8";
|
||||
print $clockid;
|
||||
print "\0";
|
||||
local $, = "\0";
|
||||
print @files;
|
||||
}
|
||||
|
||||
sub watchman_clock {
|
||||
my $response = qx/watchman clock "$git_work_tree"/;
|
||||
die "Failed to get clock id on '$git_work_tree'.\n" .
|
||||
"Falling back to scanning...\n" if $? != 0;
|
||||
|
||||
return $json_pkg->new->utf8->decode($response);
|
||||
}
|
||||
|
||||
sub watchman_query {
|
||||
my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
|
||||
or die "open2() failed: $!\n" .
|
||||
"Falling back to scanning...\n";
|
||||
|
||||
# In the query expression below we're asking for names of files that
|
||||
# changed since $last_update_token but not from the .git folder.
|
||||
#
|
||||
# To accomplish this, we're using the "since" generator to use the
|
||||
# recency index to select candidate nodes and "fields" to limit the
|
||||
# output to file names only. Then we're using the "expression" term to
|
||||
# further constrain the results.
|
||||
if (substr($last_update_token, 0, 1) eq "c") {
|
||||
$last_update_token = "\"$last_update_token\"";
|
||||
}
|
||||
my $query = <<" END";
|
||||
["query", "$git_work_tree", {
|
||||
"since": $last_update_token,
|
||||
"fields": ["name"],
|
||||
"expression": ["not", ["dirname", ".git"]]
|
||||
}]
|
||||
END
|
||||
|
||||
# Uncomment for debugging the watchman query
|
||||
# open (my $fh, ">", ".git/watchman-query.json");
|
||||
# print $fh $query;
|
||||
# close $fh;
|
||||
|
||||
print CHLD_IN $query;
|
||||
close CHLD_IN;
|
||||
my $response = do {local $/; <CHLD_OUT>};
|
||||
|
||||
# Uncomment for debugging the watch response
|
||||
# open ($fh, ">", ".git/watchman-response.json");
|
||||
# print $fh $response;
|
||||
# close $fh;
|
||||
|
||||
die "Watchman: command returned no output.\n" .
|
||||
"Falling back to scanning...\n" if $response eq "";
|
||||
die "Watchman: command returned invalid output: $response\n" .
|
||||
"Falling back to scanning...\n" unless $response =~ /^\{/;
|
||||
|
||||
return $json_pkg->new->utf8->decode($response);
|
||||
}
|
||||
|
||||
sub is_work_tree_watched {
|
||||
my ($output) = @_;
|
||||
my $error = $output->{error};
|
||||
if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
|
||||
$retry--;
|
||||
my $response = qx/watchman watch "$git_work_tree"/;
|
||||
die "Failed to make watchman watch '$git_work_tree'.\n" .
|
||||
"Falling back to scanning...\n" if $? != 0;
|
||||
$output = $json_pkg->new->utf8->decode($response);
|
||||
$error = $output->{error};
|
||||
die "Watchman: $error.\n" .
|
||||
"Falling back to scanning...\n" if $error;
|
||||
|
||||
# Uncomment for debugging watchman output
|
||||
# open (my $fh, ">", ".git/watchman-output.out");
|
||||
# close $fh;
|
||||
|
||||
# Watchman will always return all files on the first query so
|
||||
# return the fast "everything is dirty" flag to git and do the
|
||||
# Watchman query just to get it over with now so we won't pay
|
||||
# the cost in git to look up each individual file.
|
||||
my $o = watchman_clock();
|
||||
$error = $output->{error};
|
||||
|
||||
die "Watchman: $error.\n" .
|
||||
"Falling back to scanning...\n" if $error;
|
||||
|
||||
output_result($o->{clock}, ("/"));
|
||||
$last_update_token = $o->{clock};
|
||||
|
||||
eval { launch_watchman() };
|
||||
return 0;
|
||||
}
|
||||
|
||||
die "Watchman: $error.\n" .
|
||||
"Falling back to scanning...\n" if $error;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub get_working_dir {
|
||||
my $working_dir;
|
||||
if ($^O =~ 'msys' || $^O =~ 'cygwin') {
|
||||
$working_dir = Win32::GetCwd();
|
||||
$working_dir =~ tr/\\/\//;
|
||||
} else {
|
||||
require Cwd;
|
||||
$working_dir = Cwd::cwd();
|
||||
}
|
||||
|
||||
return $working_dir;
|
||||
}
|
8
efk/_git/hooks/post-update.sample
Executable file
8
efk/_git/hooks/post-update.sample
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to prepare a packed repository for use over
|
||||
# dumb transports.
|
||||
#
|
||||
# To enable this hook, rename this file to "post-update".
|
||||
|
||||
exec git update-server-info
|
14
efk/_git/hooks/pre-applypatch.sample
Executable file
14
efk/_git/hooks/pre-applypatch.sample
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to verify what is about to be committed
|
||||
# by applypatch from an e-mail message.
|
||||
#
|
||||
# The hook should exit with non-zero status after issuing an
|
||||
# appropriate message if it wants to stop the commit.
|
||||
#
|
||||
# To enable this hook, rename this file to "pre-applypatch".
|
||||
|
||||
. git-sh-setup
|
||||
precommit="$(git rev-parse --git-path hooks/pre-commit)"
|
||||
test -x "$precommit" && exec "$precommit" ${1+"$@"}
|
||||
:
|
49
efk/_git/hooks/pre-commit.sample
Executable file
49
efk/_git/hooks/pre-commit.sample
Executable file
@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to verify what is about to be committed.
|
||||
# Called by "git commit" with no arguments. The hook should
|
||||
# exit with non-zero status after issuing an appropriate message if
|
||||
# it wants to stop the commit.
|
||||
#
|
||||
# To enable this hook, rename this file to "pre-commit".
|
||||
|
||||
if git rev-parse --verify HEAD >/dev/null 2>&1
|
||||
then
|
||||
against=HEAD
|
||||
else
|
||||
# Initial commit: diff against an empty tree object
|
||||
against=$(git hash-object -t tree /dev/null)
|
||||
fi
|
||||
|
||||
# If you want to allow non-ASCII filenames set this variable to true.
|
||||
allownonascii=$(git config --type=bool hooks.allownonascii)
|
||||
|
||||
# Redirect output to stderr.
|
||||
exec 1>&2
|
||||
|
||||
# Cross platform projects tend to avoid non-ASCII filenames; prevent
|
||||
# them from being added to the repository. We exploit the fact that the
|
||||
# printable range starts at the space character and ends with tilde.
|
||||
if [ "$allownonascii" != "true" ] &&
|
||||
# Note that the use of brackets around a tr range is ok here, (it's
|
||||
# even required, for portability to Solaris 10's /usr/bin/tr), since
|
||||
# the square bracket bytes happen to fall in the designated range.
|
||||
test $(git diff --cached --name-only --diff-filter=A -z $against |
|
||||
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
|
||||
then
|
||||
cat <<\EOF
|
||||
Error: Attempt to add a non-ASCII file name.
|
||||
|
||||
This can cause problems if you want to work with people on other platforms.
|
||||
|
||||
To be portable it is advisable to rename the file.
|
||||
|
||||
If you know what you are doing you can disable this check using:
|
||||
|
||||
git config hooks.allownonascii true
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# If there are whitespace errors, print the offending file names and fail.
|
||||
exec git diff-index --check --cached $against --
|
13
efk/_git/hooks/pre-merge-commit.sample
Executable file
13
efk/_git/hooks/pre-merge-commit.sample
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to verify what is about to be committed.
|
||||
# Called by "git merge" with no arguments. The hook should
|
||||
# exit with non-zero status after issuing an appropriate message to
|
||||
# stderr if it wants to stop the merge commit.
|
||||
#
|
||||
# To enable this hook, rename this file to "pre-merge-commit".
|
||||
|
||||
. git-sh-setup
|
||||
test -x "$GIT_DIR/hooks/pre-commit" &&
|
||||
exec "$GIT_DIR/hooks/pre-commit"
|
||||
:
|
53
efk/_git/hooks/pre-push.sample
Executable file
53
efk/_git/hooks/pre-push.sample
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
|
||||
# An example hook script to verify what is about to be pushed. Called by "git
|
||||
# push" after it has checked the remote status, but before anything has been
|
||||
# pushed. If this script exits with a non-zero status nothing will be pushed.
|
||||
#
|
||||
# This hook is called with the following parameters:
|
||||
#
|
||||
# $1 -- Name of the remote to which the push is being done
|
||||
# $2 -- URL to which the push is being done
|
||||
#
|
||||
# If pushing without using a named remote those arguments will be equal.
|
||||
#
|
||||
# Information about the commits which are being pushed is supplied as lines to
|
||||
# the standard input in the form:
|
||||
#
|
||||
# <local ref> <local oid> <remote ref> <remote oid>
|
||||
#
|
||||
# This sample shows how to prevent push of commits where the log message starts
|
||||
# with "WIP" (work in progress).
|
||||
|
||||
remote="$1"
|
||||
url="$2"
|
||||
|
||||
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
|
||||
|
||||
while read local_ref local_oid remote_ref remote_oid
|
||||
do
|
||||
if test "$local_oid" = "$zero"
|
||||
then
|
||||
# Handle delete
|
||||
:
|
||||
else
|
||||
if test "$remote_oid" = "$zero"
|
||||
then
|
||||
# New branch, examine all commits
|
||||
range="$local_oid"
|
||||
else
|
||||
# Update to existing branch, examine new commits
|
||||
range="$remote_oid..$local_oid"
|
||||
fi
|
||||
|
||||
# Check for WIP commit
|
||||
commit=$(git rev-list -n 1 --grep '^WIP' "$range")
|
||||
if test -n "$commit"
|
||||
then
|
||||
echo >&2 "Found WIP commit in $local_ref, not pushing"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
exit 0
|
169
efk/_git/hooks/pre-rebase.sample
Executable file
169
efk/_git/hooks/pre-rebase.sample
Executable file
@ -0,0 +1,169 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2006, 2008 Junio C Hamano
|
||||
#
|
||||
# The "pre-rebase" hook is run just before "git rebase" starts doing
|
||||
# its job, and can prevent the command from running by exiting with
|
||||
# non-zero status.
|
||||
#
|
||||
# The hook is called with the following parameters:
|
||||
#
|
||||
# $1 -- the upstream the series was forked from.
|
||||
# $2 -- the branch being rebased (or empty when rebasing the current branch).
|
||||
#
|
||||
# This sample shows how to prevent topic branches that are already
|
||||
# merged to 'next' branch from getting rebased, because allowing it
|
||||
# would result in rebasing already published history.
|
||||
|
||||
publish=next
|
||||
basebranch="$1"
|
||||
if test "$#" = 2
|
||||
then
|
||||
topic="refs/heads/$2"
|
||||
else
|
||||
topic=`git symbolic-ref HEAD` ||
|
||||
exit 0 ;# we do not interrupt rebasing detached HEAD
|
||||
fi
|
||||
|
||||
case "$topic" in
|
||||
refs/heads/??/*)
|
||||
;;
|
||||
*)
|
||||
exit 0 ;# we do not interrupt others.
|
||||
;;
|
||||
esac
|
||||
|
||||
# Now we are dealing with a topic branch being rebased
|
||||
# on top of master. Is it OK to rebase it?
|
||||
|
||||
# Does the topic really exist?
|
||||
git show-ref -q "$topic" || {
|
||||
echo >&2 "No such branch $topic"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Is topic fully merged to master?
|
||||
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
|
||||
if test -z "$not_in_master"
|
||||
then
|
||||
echo >&2 "$topic is fully merged to master; better remove it."
|
||||
exit 1 ;# we could allow it, but there is no point.
|
||||
fi
|
||||
|
||||
# Is topic ever merged to next? If so you should not be rebasing it.
|
||||
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
|
||||
only_next_2=`git rev-list ^master ${publish} | sort`
|
||||
if test "$only_next_1" = "$only_next_2"
|
||||
then
|
||||
not_in_topic=`git rev-list "^$topic" master`
|
||||
if test -z "$not_in_topic"
|
||||
then
|
||||
echo >&2 "$topic is already up to date with master"
|
||||
exit 1 ;# we could allow it, but there is no point.
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
|
||||
/usr/bin/perl -e '
|
||||
my $topic = $ARGV[0];
|
||||
my $msg = "* $topic has commits already merged to public branch:\n";
|
||||
my (%not_in_next) = map {
|
||||
/^([0-9a-f]+) /;
|
||||
($1 => 1);
|
||||
} split(/\n/, $ARGV[1]);
|
||||
for my $elem (map {
|
||||
/^([0-9a-f]+) (.*)$/;
|
||||
[$1 => $2];
|
||||
} split(/\n/, $ARGV[2])) {
|
||||
if (!exists $not_in_next{$elem->[0]}) {
|
||||
if ($msg) {
|
||||
print STDERR $msg;
|
||||
undef $msg;
|
||||
}
|
||||
print STDERR " $elem->[1]\n";
|
||||
}
|
||||
}
|
||||
' "$topic" "$not_in_next" "$not_in_master"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
<<\DOC_END
|
||||
|
||||
This sample hook safeguards topic branches that have been
|
||||
published from being rewound.
|
||||
|
||||
The workflow assumed here is:
|
||||
|
||||
* Once a topic branch forks from "master", "master" is never
|
||||
merged into it again (either directly or indirectly).
|
||||
|
||||
* Once a topic branch is fully cooked and merged into "master",
|
||||
it is deleted. If you need to build on top of it to correct
|
||||
earlier mistakes, a new topic branch is created by forking at
|
||||
the tip of the "master". This is not strictly necessary, but
|
||||
it makes it easier to keep your history simple.
|
||||
|
||||
* Whenever you need to test or publish your changes to topic
|
||||
branches, merge them into "next" branch.
|
||||
|
||||
The script, being an example, hardcodes the publish branch name
|
||||
to be "next", but it is trivial to make it configurable via
|
||||
$GIT_DIR/config mechanism.
|
||||
|
||||
With this workflow, you would want to know:
|
||||
|
||||
(1) ... if a topic branch has ever been merged to "next". Young
|
||||
topic branches can have stupid mistakes you would rather
|
||||
clean up before publishing, and things that have not been
|
||||
merged into other branches can be easily rebased without
|
||||
affecting other people. But once it is published, you would
|
||||
not want to rewind it.
|
||||
|
||||
(2) ... if a topic branch has been fully merged to "master".
|
||||
Then you can delete it. More importantly, you should not
|
||||
build on top of it -- other people may already want to
|
||||
change things related to the topic as patches against your
|
||||
"master", so if you need further changes, it is better to
|
||||
fork the topic (perhaps with the same name) afresh from the
|
||||
tip of "master".
|
||||
|
||||
Let's look at this example:
|
||||
|
||||
o---o---o---o---o---o---o---o---o---o "next"
|
||||
/ / / /
|
||||
/ a---a---b A / /
|
||||
/ / / /
|
||||
/ / c---c---c---c B /
|
||||
/ / / \ /
|
||||
/ / / b---b C \ /
|
||||
/ / / / \ /
|
||||
---o---o---o---o---o---o---o---o---o---o---o "master"
|
||||
|
||||
|
||||
A, B and C are topic branches.
|
||||
|
||||
* A has one fix since it was merged up to "next".
|
||||
|
||||
* B has finished. It has been fully merged up to "master" and "next",
|
||||
and is ready to be deleted.
|
||||
|
||||
* C has not merged to "next" at all.
|
||||
|
||||
We would want to allow C to be rebased, refuse A, and encourage
|
||||
B to be deleted.
|
||||
|
||||
To compute (1):
|
||||
|
||||
git rev-list ^master ^topic next
|
||||
git rev-list ^master next
|
||||
|
||||
if these match, topic has not merged in next at all.
|
||||
|
||||
To compute (2):
|
||||
|
||||
git rev-list master..topic
|
||||
|
||||
if this is empty, it is fully merged to "master".
|
||||
|
||||
DOC_END
|
24
efk/_git/hooks/pre-receive.sample
Executable file
24
efk/_git/hooks/pre-receive.sample
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to make use of push options.
|
||||
# The example simply echoes all push options that start with 'echoback='
|
||||
# and rejects all pushes when the "reject" push option is used.
|
||||
#
|
||||
# To enable this hook, rename this file to "pre-receive".
|
||||
|
||||
if test -n "$GIT_PUSH_OPTION_COUNT"
|
||||
then
|
||||
i=0
|
||||
while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
|
||||
do
|
||||
eval "value=\$GIT_PUSH_OPTION_$i"
|
||||
case "$value" in
|
||||
echoback=*)
|
||||
echo "echo from the pre-receive-hook: ${value#*=}" >&2
|
||||
;;
|
||||
reject)
|
||||
exit 1
|
||||
esac
|
||||
i=$((i + 1))
|
||||
done
|
||||
fi
|
42
efk/_git/hooks/prepare-commit-msg.sample
Executable file
42
efk/_git/hooks/prepare-commit-msg.sample
Executable file
@ -0,0 +1,42 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to prepare the commit log message.
|
||||
# Called by "git commit" with the name of the file that has the
|
||||
# commit message, followed by the description of the commit
|
||||
# message's source. The hook's purpose is to edit the commit
|
||||
# message file. If the hook fails with a non-zero status,
|
||||
# the commit is aborted.
|
||||
#
|
||||
# To enable this hook, rename this file to "prepare-commit-msg".
|
||||
|
||||
# This hook includes three examples. The first one removes the
|
||||
# "# Please enter the commit message..." help message.
|
||||
#
|
||||
# The second includes the output of "git diff --name-status -r"
|
||||
# into the message, just before the "git status" output. It is
|
||||
# commented because it doesn't cope with --amend or with squashed
|
||||
# commits.
|
||||
#
|
||||
# The third example adds a Signed-off-by line to the message, that can
|
||||
# still be edited. This is rarely a good idea.
|
||||
|
||||
COMMIT_MSG_FILE=$1
|
||||
COMMIT_SOURCE=$2
|
||||
SHA1=$3
|
||||
|
||||
/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
|
||||
|
||||
# case "$COMMIT_SOURCE,$SHA1" in
|
||||
# ,|template,)
|
||||
# /usr/bin/perl -i.bak -pe '
|
||||
# print "\n" . `git diff --cached --name-status -r`
|
||||
# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
|
||||
# *) ;;
|
||||
# esac
|
||||
|
||||
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
|
||||
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
|
||||
# if test -z "$COMMIT_SOURCE"
|
||||
# then
|
||||
# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
|
||||
# fi
|
78
efk/_git/hooks/push-to-checkout.sample
Executable file
78
efk/_git/hooks/push-to-checkout.sample
Executable file
@ -0,0 +1,78 @@
|
||||
#!/bin/sh
|
||||
|
||||
# An example hook script to update a checked-out tree on a git push.
|
||||
#
|
||||
# This hook is invoked by git-receive-pack(1) when it reacts to git
|
||||
# push and updates reference(s) in its repository, and when the push
|
||||
# tries to update the branch that is currently checked out and the
|
||||
# receive.denyCurrentBranch configuration variable is set to
|
||||
# updateInstead.
|
||||
#
|
||||
# By default, such a push is refused if the working tree and the index
|
||||
# of the remote repository has any difference from the currently
|
||||
# checked out commit; when both the working tree and the index match
|
||||
# the current commit, they are updated to match the newly pushed tip
|
||||
# of the branch. This hook is to be used to override the default
|
||||
# behaviour; however the code below reimplements the default behaviour
|
||||
# as a starting point for convenient modification.
|
||||
#
|
||||
# The hook receives the commit with which the tip of the current
|
||||
# branch is going to be updated:
|
||||
commit=$1
|
||||
|
||||
# It can exit with a non-zero status to refuse the push (when it does
|
||||
# so, it must not modify the index or the working tree).
|
||||
die () {
|
||||
echo >&2 "$*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Or it can make any necessary changes to the working tree and to the
|
||||
# index to bring them to the desired state when the tip of the current
|
||||
# branch is updated to the new commit, and exit with a zero status.
|
||||
#
|
||||
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
|
||||
# in order to emulate git fetch that is run in the reverse direction
|
||||
# with git push, as the two-tree form of git read-tree -u -m is
|
||||
# essentially the same as git switch or git checkout that switches
|
||||
# branches while keeping the local changes in the working tree that do
|
||||
# not interfere with the difference between the branches.
|
||||
|
||||
# The below is a more-or-less exact translation to shell of the C code
|
||||
# for the default behaviour for git's push-to-checkout hook defined in
|
||||
# the push_to_deploy() function in builtin/receive-pack.c.
|
||||
#
|
||||
# Note that the hook will be executed from the repository directory,
|
||||
# not from the working tree, so if you want to perform operations on
|
||||
# the working tree, you will have to adapt your code accordingly, e.g.
|
||||
# by adding "cd .." or using relative paths.
|
||||
|
||||
if ! git update-index -q --ignore-submodules --refresh
|
||||
then
|
||||
die "Up-to-date check failed"
|
||||
fi
|
||||
|
||||
if ! git diff-files --quiet --ignore-submodules --
|
||||
then
|
||||
die "Working directory has unstaged changes"
|
||||
fi
|
||||
|
||||
# This is a rough translation of:
|
||||
#
|
||||
# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
|
||||
if git cat-file -e HEAD 2>/dev/null
|
||||
then
|
||||
head=HEAD
|
||||
else
|
||||
head=$(git hash-object -t tree --stdin </dev/null)
|
||||
fi
|
||||
|
||||
if ! git diff-index --quiet --cached --ignore-submodules $head --
|
||||
then
|
||||
die "Working directory has staged changes"
|
||||
fi
|
||||
|
||||
if ! git read-tree -u -m "$commit"
|
||||
then
|
||||
die "Could not update working tree to new HEAD"
|
||||
fi
|
128
efk/_git/hooks/update.sample
Executable file
128
efk/_git/hooks/update.sample
Executable file
@ -0,0 +1,128 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to block unannotated tags from entering.
|
||||
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
|
||||
#
|
||||
# To enable this hook, rename this file to "update".
|
||||
#
|
||||
# Config
|
||||
# ------
|
||||
# hooks.allowunannotated
|
||||
# This boolean sets whether unannotated tags will be allowed into the
|
||||
# repository. By default they won't be.
|
||||
# hooks.allowdeletetag
|
||||
# This boolean sets whether deleting tags will be allowed in the
|
||||
# repository. By default they won't be.
|
||||
# hooks.allowmodifytag
|
||||
# This boolean sets whether a tag may be modified after creation. By default
|
||||
# it won't be.
|
||||
# hooks.allowdeletebranch
|
||||
# This boolean sets whether deleting branches will be allowed in the
|
||||
# repository. By default they won't be.
|
||||
# hooks.denycreatebranch
|
||||
# This boolean sets whether remotely creating branches will be denied
|
||||
# in the repository. By default this is allowed.
|
||||
#
|
||||
|
||||
# --- Command line
|
||||
refname="$1"
|
||||
oldrev="$2"
|
||||
newrev="$3"
|
||||
|
||||
# --- Safety check
|
||||
if [ -z "$GIT_DIR" ]; then
|
||||
echo "Don't run this script from the command line." >&2
|
||||
echo " (if you want, you could supply GIT_DIR then run" >&2
|
||||
echo " $0 <ref> <oldrev> <newrev>)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
|
||||
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# --- Config
|
||||
allowunannotated=$(git config --type=bool hooks.allowunannotated)
|
||||
allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch)
|
||||
denycreatebranch=$(git config --type=bool hooks.denycreatebranch)
|
||||
allowdeletetag=$(git config --type=bool hooks.allowdeletetag)
|
||||
allowmodifytag=$(git config --type=bool hooks.allowmodifytag)
|
||||
|
||||
# check for no description
|
||||
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
|
||||
case "$projectdesc" in
|
||||
"Unnamed repository"* | "")
|
||||
echo "*** Project description file hasn't been set" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# --- Check types
|
||||
# if $newrev is 0000...0000, it's a commit to delete a ref.
|
||||
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
|
||||
if [ "$newrev" = "$zero" ]; then
|
||||
newrev_type=delete
|
||||
else
|
||||
newrev_type=$(git cat-file -t $newrev)
|
||||
fi
|
||||
|
||||
case "$refname","$newrev_type" in
|
||||
refs/tags/*,commit)
|
||||
# un-annotated tag
|
||||
short_refname=${refname##refs/tags/}
|
||||
if [ "$allowunannotated" != "true" ]; then
|
||||
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
|
||||
echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
refs/tags/*,delete)
|
||||
# delete tag
|
||||
if [ "$allowdeletetag" != "true" ]; then
|
||||
echo "*** Deleting a tag is not allowed in this repository" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
refs/tags/*,tag)
|
||||
# annotated tag
|
||||
if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
|
||||
then
|
||||
echo "*** Tag '$refname' already exists." >&2
|
||||
echo "*** Modifying a tag is not allowed in this repository." >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
refs/heads/*,commit)
|
||||
# branch
|
||||
if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
|
||||
echo "*** Creating a branch is not allowed in this repository" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
refs/heads/*,delete)
|
||||
# delete branch
|
||||
if [ "$allowdeletebranch" != "true" ]; then
|
||||
echo "*** Deleting a branch is not allowed in this repository" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
refs/remotes/*,commit)
|
||||
# tracking branch
|
||||
;;
|
||||
refs/remotes/*,delete)
|
||||
# delete tracking branch
|
||||
if [ "$allowdeletebranch" != "true" ]; then
|
||||
echo "*** Deleting a tracking branch is not allowed in this repository" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Anything else (is there anything else?)
|
||||
echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# --- Finished
|
||||
exit 0
|
BIN
efk/_git/index
Normal file
BIN
efk/_git/index
Normal file
Binary file not shown.
6
efk/_git/info/exclude
Normal file
6
efk/_git/info/exclude
Normal file
@ -0,0 +1,6 @@
|
||||
# git ls-files --others --exclude-from=.git/info/exclude
|
||||
# Lines that start with '#' are comments.
|
||||
# For a project mostly in C, the following would be a good set of
|
||||
# exclude patterns (uncomment them if you want to use them):
|
||||
# *.[oa]
|
||||
# *~
|
11
efk/_git/logs/HEAD
Normal file
11
efk/_git/logs/HEAD
Normal file
@ -0,0 +1,11 @@
|
||||
0000000000000000000000000000000000000000 5ab8067b9f81af0270a90c12bcfcc7f071d685dd zhangkun <zhangkun> 1727151229 +0800 commit (initial): fluentd almost done
|
||||
5ab8067b9f81af0270a90c12bcfcc7f071d685dd 6e2d38a87357e2767c21dc7e2d482ac46eef6d42 zhangkun <zhangkun> 1727151284 +0800 commit: remove tar
|
||||
6e2d38a87357e2767c21dc7e2d482ac46eef6d42 3fe1c4b81d79fc517c95dc32299bfa67841e58a4 zhangkun <zhangkun> 1734359708 +0800 commit: up
|
||||
3fe1c4b81d79fc517c95dc32299bfa67841e58a4 0dab4baba98695bc8ffbce60283bb5d7111290c6 zhangkun <zhangkun> 1734855389 +0800 commit: fluentd设置为东8区
|
||||
0dab4baba98695bc8ffbce60283bb5d7111290c6 d895728b90c5cd39f496bc80f8089c2728de8720 zhangkun <zhangkun> 1734918087 +0800 commit: fluentd强制使用东八区
|
||||
d895728b90c5cd39f496bc80f8089c2728de8720 32f2a58edd56f35d6d2689b8cab7cc347b12bddf zhangkun <zhangkun> 1734925200 +0800 commit: hash散列进行日志分组,不再使用日期分组
|
||||
32f2a58edd56f35d6d2689b8cab7cc347b12bddf 72ec36fc335eb7fc761df63f3231aecb4b1048d1 zhangkun <zhangkun> 1734944524 +0800 commit: fluentd 改成 1秒钟一刷新,防止堆砌请求不发
|
||||
72ec36fc335eb7fc761df63f3231aecb4b1048d1 a829769ed1d706a7def1e750b9621cc14bf669ff phyer <phyer@sina.com> 1735051930 +0800 commit: fluentd恢复到以日为单位index
|
||||
a829769ed1d706a7def1e750b9621cc14bf669ff a829769ed1d706a7def1e750b9621cc14bf669ff phyer <phyer@sina.com> 1735093625 +0800 reset: moving to HEAD
|
||||
a829769ed1d706a7def1e750b9621cc14bf669ff 6e401b3546099e5e9a231979ec967b5d2f92c844 phyer <phyer@sina.com> 1735093967 +0800 commit: fluentd works fine with es
|
||||
6e401b3546099e5e9a231979ec967b5d2f92c844 1a146cad3fb1f6d08e44e811c747b658b62fb85e phyer <phyer@sina.com> 1735263819 +0800 commit: update README
|
10
efk/_git/logs/refs/heads/master
Normal file
10
efk/_git/logs/refs/heads/master
Normal file
@ -0,0 +1,10 @@
|
||||
0000000000000000000000000000000000000000 5ab8067b9f81af0270a90c12bcfcc7f071d685dd zhangkun <zhangkun> 1727151229 +0800 commit (initial): fluentd almost done
|
||||
5ab8067b9f81af0270a90c12bcfcc7f071d685dd 6e2d38a87357e2767c21dc7e2d482ac46eef6d42 zhangkun <zhangkun> 1727151284 +0800 commit: remove tar
|
||||
6e2d38a87357e2767c21dc7e2d482ac46eef6d42 3fe1c4b81d79fc517c95dc32299bfa67841e58a4 zhangkun <zhangkun> 1734359708 +0800 commit: up
|
||||
3fe1c4b81d79fc517c95dc32299bfa67841e58a4 0dab4baba98695bc8ffbce60283bb5d7111290c6 zhangkun <zhangkun> 1734855389 +0800 commit: fluentd设置为东8区
|
||||
0dab4baba98695bc8ffbce60283bb5d7111290c6 d895728b90c5cd39f496bc80f8089c2728de8720 zhangkun <zhangkun> 1734918087 +0800 commit: fluentd强制使用东八区
|
||||
d895728b90c5cd39f496bc80f8089c2728de8720 32f2a58edd56f35d6d2689b8cab7cc347b12bddf zhangkun <zhangkun> 1734925200 +0800 commit: hash散列进行日志分组,不再使用日期分组
|
||||
32f2a58edd56f35d6d2689b8cab7cc347b12bddf 72ec36fc335eb7fc761df63f3231aecb4b1048d1 zhangkun <zhangkun> 1734944524 +0800 commit: fluentd 改成 1秒钟一刷新,防止堆砌请求不发
|
||||
72ec36fc335eb7fc761df63f3231aecb4b1048d1 a829769ed1d706a7def1e750b9621cc14bf669ff phyer <phyer@sina.com> 1735051930 +0800 commit: fluentd恢复到以日为单位index
|
||||
a829769ed1d706a7def1e750b9621cc14bf669ff 6e401b3546099e5e9a231979ec967b5d2f92c844 phyer <phyer@sina.com> 1735093967 +0800 commit: fluentd works fine with es
|
||||
6e401b3546099e5e9a231979ec967b5d2f92c844 1a146cad3fb1f6d08e44e811c747b658b62fb85e phyer <phyer@sina.com> 1735263819 +0800 commit: update README
|
9
efk/_git/logs/refs/remotes/origin/master
Normal file
9
efk/_git/logs/refs/remotes/origin/master
Normal file
@ -0,0 +1,9 @@
|
||||
0000000000000000000000000000000000000000 6e2d38a87357e2767c21dc7e2d482ac46eef6d42 zhangkun <zhangkun> 1727151307 +0800 update by push
|
||||
6e2d38a87357e2767c21dc7e2d482ac46eef6d42 3fe1c4b81d79fc517c95dc32299bfa67841e58a4 zhangkun <zhangkun> 1734359709 +0800 update by push
|
||||
3fe1c4b81d79fc517c95dc32299bfa67841e58a4 0dab4baba98695bc8ffbce60283bb5d7111290c6 zhangkun <zhangkun> 1734855389 +0800 update by push
|
||||
0dab4baba98695bc8ffbce60283bb5d7111290c6 d895728b90c5cd39f496bc80f8089c2728de8720 zhangkun <zhangkun> 1734918087 +0800 update by push
|
||||
d895728b90c5cd39f496bc80f8089c2728de8720 32f2a58edd56f35d6d2689b8cab7cc347b12bddf zhangkun <zhangkun> 1734925202 +0800 update by push
|
||||
32f2a58edd56f35d6d2689b8cab7cc347b12bddf 72ec36fc335eb7fc761df63f3231aecb4b1048d1 zhangkun <zhangkun> 1734944525 +0800 update by push
|
||||
72ec36fc335eb7fc761df63f3231aecb4b1048d1 a829769ed1d706a7def1e750b9621cc14bf669ff phyer <phyer@sina.com> 1735051931 +0800 update by push
|
||||
a829769ed1d706a7def1e750b9621cc14bf669ff 6e401b3546099e5e9a231979ec967b5d2f92c844 phyer <phyer@sina.com> 1735093968 +0800 update by push
|
||||
6e401b3546099e5e9a231979ec967b5d2f92c844 1a146cad3fb1f6d08e44e811c747b658b62fb85e phyer <phyer@sina.com> 1735263819 +0800 update by push
|
BIN
efk/_git/objects/02/26110dde255c6ffc43198f84d4a40707dfa731
Normal file
BIN
efk/_git/objects/02/26110dde255c6ffc43198f84d4a40707dfa731
Normal file
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
xUŽ±Â0D™óV˜iCÅ‚7ÄÌÊ‚ÜÆ<C39C>¨mR%¦O•Šy»÷Nçvˆ-4æ°¡É_9e¼W½áÃÃ?/4©‘…, ¡42Bï[
|
||||
´ëŠ¢~lM«÷8 | sš9U.fAЦ*§â<>²ø.3¥Î##Ü´™°®ÿ(cô½Ô¶p²¢8N°Î¿Éòy†%b¥¾r•Cî
|
BIN
efk/_git/objects/08/2ca72b26e5f03b39cfbc723a0a382bf7ac0c24
Normal file
BIN
efk/_git/objects/08/2ca72b26e5f03b39cfbc723a0a382bf7ac0c24
Normal file
Binary file not shown.
BIN
efk/_git/objects/0d/ab4baba98695bc8ffbce60283bb5d7111290c6
Normal file
BIN
efk/_git/objects/0d/ab4baba98695bc8ffbce60283bb5d7111290c6
Normal file
Binary file not shown.
BIN
efk/_git/objects/14/8e119ea3e465654425462f676813feb488274e
Normal file
BIN
efk/_git/objects/14/8e119ea3e465654425462f676813feb488274e
Normal file
Binary file not shown.
BIN
efk/_git/objects/16/2ffba9f7f394d9096e247dc8019aa34d0fb50d
Normal file
BIN
efk/_git/objects/16/2ffba9f7f394d9096e247dc8019aa34d0fb50d
Normal file
Binary file not shown.
BIN
efk/_git/objects/17/84319c10616bd78f08424ac592f7f9e808035b
Normal file
BIN
efk/_git/objects/17/84319c10616bd78f08424ac592f7f9e808035b
Normal file
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
x<01><>=
|
||||
1Fs<C2AD>τ‚$™L’·΄ρΩΙ,k±?Δlαν]<<3C>Υ<07>χΰγe<CEB3>^M;<>h$1υΩqφ™ {<7B>…ƒ5ƒkXµζ*sΣAΌ±= †HP(;°I<>Bμ±Έ<C2B1>'οUήΪΈT½<54>©ϊό›λϋ5η/ΣEΫθ$Kϊh’1j§ϋ―¶»<C2B6>j[KnΆ<6E>ένώθΤΜβ>ο
|
BIN
efk/_git/objects/1e/248cb28bfcf76da1b673e8a86dde4f36fc8ed4
Normal file
BIN
efk/_git/objects/1e/248cb28bfcf76da1b673e8a86dde4f36fc8ed4
Normal file
Binary file not shown.
BIN
efk/_git/objects/24/9b7c4d501705786d1da2a66962be16eb8501ce
Normal file
BIN
efk/_git/objects/24/9b7c4d501705786d1da2a66962be16eb8501ce
Normal file
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
xMŒÁ
|
||||
Â0D=ç+öæP…={ïÓd•Ð6Y’¥Ð¿7o3o3Îe$wÖZI®-•ìiufJ9zºs]S`³°"Bá
QÆž¦4"ã[› tÆÏÉ4á°[Rª¶=ØOô4œŽ®W"E}±Þúþƒ<C3BE>gZêîAäï_7é×ׂxÁŒ¸š7c8"
|
BIN
efk/_git/objects/2b/dba40924cf6a146385204a07cc44f78bb57f3b
Normal file
BIN
efk/_git/objects/2b/dba40924cf6a146385204a07cc44f78bb57f3b
Normal file
Binary file not shown.
BIN
efk/_git/objects/2f/30e89cd818accfadc9a3a54e4234a5027555e7
Normal file
BIN
efk/_git/objects/2f/30e89cd818accfadc9a3a54e4234a5027555e7
Normal file
Binary file not shown.
BIN
efk/_git/objects/31/a1de8d8dc287c4581ab226e973a8d1248cede9
Normal file
BIN
efk/_git/objects/31/a1de8d8dc287c4581ab226e973a8d1248cede9
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
x<01>’MkQ†]Ο―8f¦]Μ<> ‹"D;‚TΫbE‘pgζ΄η“ΉWc<57>]i›Ά¤ι"µβ~b%µλ<>Ι<EFBFBD>Iώ…“™”b6ξχάϋΎΟyο1άΐ€…‹—Ξ‰η5Γφ5ƒΠ² <20>0Ψ=δΝ6 K(³M<C2B3>$2Λΐ;οϊ'/“7Οa5°€ο5’o]A_+®,¥9Ο6£ΐY <59>σΘ@“Ή°<CE89>ΒΐΆ ψ€λ(.<2E>0,Nj*<¤<>V.Κ5ΥfθΡϋ¨2bFT<46>xΈ)Οh–(δn— Υςr3£ύ³Ο·Ύ€>A›1υ’Φϋxg/~Ϋΰ/>Ύςζ!°ΐA_<41>βΕ'h<>²JΉ:(
|
||||
<EFBFBD>b™`V(F<>m•L‡‚….2<ΝJslƒψΌjήξ¬,ιΛ<CEB9>ΚηύΜΙl?x
|
||||
† ―ι·οήΈ¦—29=&δZΩ>iωϊ(Τq<CEA4>>V »–›Ui®Σ <09>'µ0tƒ<74>‡©ΞxΨό‡Σ½‰χβv–ςΟ.ή»zλ&Δνz<CEBD>WO0-<2D>ζΒ<CEB6>5<EFBFBD>>ΰένό?`Π9I~wϊ?<3F>“έόΣ3ή|5¬7<05>¨&<26>•(jRVh…±µr£V‰η–<CEB7>Β•Ν‘ίΞ‡αλΟό¨7¬7RR~άJZί§y§gOWΧ‚²>KZψ<0C>Ag
|
BIN
efk/_git/objects/32/f2a58edd56f35d6d2689b8cab7cc347b12bddf
Normal file
BIN
efk/_git/objects/32/f2a58edd56f35d6d2689b8cab7cc347b12bddf
Normal file
Binary file not shown.
BIN
efk/_git/objects/34/fd91d9f157c5281ee844d0a0306c7284cb9764
Normal file
BIN
efk/_git/objects/34/fd91d9f157c5281ee844d0a0306c7284cb9764
Normal file
Binary file not shown.
BIN
efk/_git/objects/39/161d1a6c2d395061d45a1d66f0c141a5cbe423
Normal file
BIN
efk/_git/objects/39/161d1a6c2d395061d45a1d66f0c141a5cbe423
Normal file
Binary file not shown.
BIN
efk/_git/objects/3b/f9821d6441c0a9785cd45b9972cf1d65707d4f
Normal file
BIN
efk/_git/objects/3b/f9821d6441c0a9785cd45b9972cf1d65707d4f
Normal file
Binary file not shown.
BIN
efk/_git/objects/3c/74311865061a6fa0ec256773eac72236acd496
Normal file
BIN
efk/_git/objects/3c/74311865061a6fa0ec256773eac72236acd496
Normal file
Binary file not shown.
BIN
efk/_git/objects/3f/e1c4b81d79fc517c95dc32299bfa67841e58a4
Normal file
BIN
efk/_git/objects/3f/e1c4b81d79fc517c95dc32299bfa67841e58a4
Normal file
Binary file not shown.
BIN
efk/_git/objects/47/74604e47751b7807fb1d3d19d322926036f970
Normal file
BIN
efk/_git/objects/47/74604e47751b7807fb1d3d19d322926036f970
Normal file
Binary file not shown.
BIN
efk/_git/objects/50/b154702b9419377321d231c4a476eab3a60e07
Normal file
BIN
efk/_git/objects/50/b154702b9419377321d231c4a476eab3a60e07
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
xeOÍ‚0öĚSôÂDŤ‰&„řžČ`Ő-<2D>mY»¨oď<6F>H<EFBFBD>öÖďkżźn°vÇMM6ř€ŕÂ/‡ <E280A1>ÝgŐ´q<C2B4>ŰrÖ3śâ¤w áĄ6XöžŐŰY-«GÁ˝Z“k±î …ŹGÉ9ZŮŔ“×?©,1üŔÓS
|
||||
sŢWU’ ^á¸J=܆€†e›–ô#<23>ÖË…q_
|
||||
j#ńŮebbAŞ<41>űůµĚÇ2—±dęÖdoşh1
|
@ -0,0 +1,2 @@
|
||||
xuQ»nÃ0ìì¯à’%@<40>¤KSÃtîZ “ÁHt,D¶‰n _ù!Ãmâ<1D>äÝI›ìw¯OhÕ'9¯L“Á÷.¹¨FfðnšR<C5A1>?Ð&51JdÌ€kÊ Ô-5,ŸEÏËÞ¢•—$²^ÚÑ2ø<€Ü›Ö :ô€#_-AÅlcAIP<49>m¹˜qûðFã<:©Jµ9ÇV<C387>'Òp¬Q5})ßÄaÃw†Çùy<C3B9>,ª¹XDânÂØë8 Ûž<C39B>›–ïî <20>ž•ð„NT; áÓrwÎ#Je<Ã#°?üíe»<65>izQQ½ð¬Û£õäb.E÷™uXôþÇ89á±0ã=£¯ŠÒ¸à °kél•ê"ý%¤O£Êê+]ÕéJN´ÉÒÁGŽz–Á¸©oaå
v£™oúL‡óMú!é•Æ´×ëò<>ÞBoÙP/Pë¡;
|
||||
'ÿVëë®
|
BIN
efk/_git/objects/57/9f79191ecd0b484aae1c868f42b607d01934d3
Normal file
BIN
efk/_git/objects/57/9f79191ecd0b484aae1c868f42b607d01934d3
Normal file
Binary file not shown.
BIN
efk/_git/objects/59/434558ba2ca4acd35c457dc610e3fe011c3631
Normal file
BIN
efk/_git/objects/59/434558ba2ca4acd35c457dc610e3fe011c3631
Normal file
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
x<01>ֽ=
|
||||
1@aכ<61>bz›<7A>
I@¼ֻ0™¸ג&<26>uׂליֱ<>מ<<3C>½?ז‹"א[°’׳ל217×\(F‰>DBכ"J2´t›<07><1B>ַk
¸ך.שה׀y_אj³µ†¿•?¹i<C2B9>’¡hןףPחף"°3¶
|
@ -0,0 +1,2 @@
|
||||
x<01><>AkÂ@…=ï¯xÕ€õ£b¡ÞÔ“ÕBÛsÙM&qÉfwÉ®XQÿ{#‰Ðš‹ÇÞ7ß<¡ŒÀt4íôž"!u$¸Û1Vȸ4ù«æ{A±WHH‘'ÄF§2{ã©Ú“öIXojPš·9n:"LïòՅᑪ
4¢„Saôùø¸¡FùÚà‘Å[¿–›ÏÅ÷ûv1ž[³JeMâÎÈÊŠkjV#?äèŸl)µG0¾ôŒâ<C592>AWÓá
|
||||
BººN<—v=e2‡k>úŸ¼Õ«¿<C2AB>0ú‘ž±_\u<>
|
BIN
efk/_git/objects/5b/b63ce18966acd771ae1100ad3840b087e86c11
Normal file
BIN
efk/_git/objects/5b/b63ce18966acd771ae1100ad3840b087e86c11
Normal file
Binary file not shown.
BIN
efk/_git/objects/5c/4dd98964594e7e48d09a6e3c4c02859e982ecd
Normal file
BIN
efk/_git/objects/5c/4dd98964594e7e48d09a6e3c4c02859e982ecd
Normal file
Binary file not shown.
BIN
efk/_git/objects/5e/0e9ca55b8c8983c3c428a71465f21587185c38
Normal file
BIN
efk/_git/objects/5e/0e9ca55b8c8983c3c428a71465f21587185c38
Normal file
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
x]ŹÁ
|
||||
Â0†=÷)rŮuŠCPâkxµÍÖ¶–$E}{;Ůć0·ü_’˙ĎŁ¨ŞÓ®ć<C2AE>ČŕUÜäśHśoÁŹ1I31<>Ŕ9W†˘;`MÖŹXöˇSő~ą˘ęA‹q[ú;Ť˝fń†Q“qłGH2™ü#Xŕ_üF¸‡ĽËĆá°¦MŚmźpŰLMž<4D>šůČ®ú"d–CłhvM(ˇ„[9¶ţµŽm‘Ő‚óVq/‹ˇ,lţ˙űőU©jĎu
|
BIN
efk/_git/objects/62/b6e0e63492a7362a69bc0b9fef5871acc5721b
Normal file
BIN
efk/_git/objects/62/b6e0e63492a7362a69bc0b9fef5871acc5721b
Normal file
Binary file not shown.
BIN
efk/_git/objects/64/818921420de580c202c0a127708a4c6a0898b4
Normal file
BIN
efk/_git/objects/64/818921420de580c202c0a127708a4c6a0898b4
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
x…Ź˝j1„SßSľÖ.‚<01>W)R䂬Ű;‰HZˇěĽ}V>Lr! B»šůftr|ÂĂăö®Ç+;‚W1Ú0AsíT“*–F+Ogcµ<63>QäT.VgRI6I|˛~§ŹÜő(F•ĆAap p‚çD¨™R¦Ä5b°‚SµŮĐ€ <ĺ®ëë°b3䨰<C2A8>&!ŘĚśĂćřrŁţ~cyË<¶F÷WŔw^1„±:7·ý]R:F>SzkŢÝŚYé°W<C2B0>·!Ż˝§‹ňŃQ»jö«®˙ˇl㲰}ęÖ—ä™MŔ‘i-Ń,ťÓµď"ö5Á ¦
|
@ -0,0 +1,2 @@
|
||||
xU<>1<0E>0DQ<44><51>b<EFBFBD><62>AT<41><54>)`M<><4D>J<EFBFBD>7Z۠<5A>h<><68><EFBFBD>qA<0E><><EFBFBD><EFBFBD>mb쩄<0C><> ^Cx^<5E>
|
||||
J<EFBFBD>u<EFBFBD>{6<>3<>I<07>ߘD<DF98><44><EFBFBD>Ijں5-<2D><>1<EFBFBD>k<EFBFBD><6B><EFBFBD>.[<5B>Q<EFBFBD><51><EFBFBD>@<40>(<28>} <09><><EFBFBD>UCzp$MxM7_k<5F><6B>gZ5<>1<EFBFBD>I<12><05><>7<EFBFBD><F<>
|
@ -0,0 +1 @@
|
||||
x<01>Ž1Â0E™sŠì,všÄŽ„¸‹ã$¡¶(J8=;ÛžÞûº-Ë}XLt½V‹Ä~¤c.Ä
Ø;/’kÔRe`˜B6Oéu6Hfˆ”Sc”Ž@(º¬M•–È¡#û˜·nß³¬·Ç¾ÚËo]<5D>¦#èØÛóa£ßS£þ‰›^—íUí<55>n>«ª=5
|
@ -0,0 +1,2 @@
|
||||
x<01>Ž[
|
||||
à Eûí*æ¿PÔ¨“<C2A8>Rº£3$´y`¡»¯týºp¸NZçyª`
]ja†nêÉÁ9“t$ì}ÊÎDh“4îQcv¢¶Xx©{Kˆ³É¨CÄÌb½(X“’qƒ„@"*u\lã‡Üóܧ%ÞÒ:?À`ç5u®º×Z5Úºjûþk(y(ù–×2-çTGà]}´Ej
|
@ -0,0 +1,2 @@
|
||||
xUЋM
|
||||
ѓ0…»О)‚{Sґ”JС…Bчг8mѓљHfфьMЉ.Ь=ЮПЗл§Рлє~\`q/Љм‚·zt=x0cГ†&`qh0\·JЌОVw„‘DН$0ЂЂUZ{<7B>йШ•у2‘в…0gЫЃmLu7Ur0¬^¬ѕ%№у™ в·ҐwёвоШ"<15>pЌФ‘€уО“2{йФуфгo•јчФпMN_
|
@ -0,0 +1,2 @@
|
||||
x<01>οNB1€qç>ÅÙYzOÛÛÞÄø.íi+F¹˜›Þ…‰8ˆBˆq“¸8ÿ,`âãpL¾‚ÆÄÝí¾áGÃÁà,Ju”š€$«ÑaT䉊¢#<23>Âr+º¨-qBÉ.mê#Ze‚÷ªŒBùÒci*gÈ:M$¤v:ï#³mêõm}zÞÖpüW'Ph!+)JèqÃ9£_T
|
||||
ÿÜY¼h,òò#On¡Ø=-‹‡ífÜMÖùîõësz¸ÏÏ<C38F>Ýêz·šî_Öùíj»™u7sö
À¾`e
|
BIN
efk/_git/objects/77/4992a80975f8041464330fe1a2ff3e6b76dde7
Normal file
BIN
efk/_git/objects/77/4992a80975f8041464330fe1a2ff3e6b76dde7
Normal file
Binary file not shown.
BIN
efk/_git/objects/77/70b74377b67eb34d9b0a6d9393004b05f45370
Normal file
BIN
efk/_git/objects/77/70b74377b67eb34d9b0a6d9393004b05f45370
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
xeͱ‚0…aç>ÅIÐA !qC'£:
|
||||
hZ[BK<18>w<07>ãIΟ<C38E>+ÃÅÑbµ¹Ð!ÏlÍØñt?œoéãzI÷þú)òÖÈØîdÇ)w
|
||||
94¦°ØjP)ñBÕRƒRu¤]1ͬ—†¦ÚÁ<C39A>Æ`Ã(¯
<MýBØüáËÙ£L5å\„¿ßÌÞoL<–
|
BIN
efk/_git/objects/82/65b2ab66bf22ea7b1e5925264f6779a0c0bd84
Normal file
BIN
efk/_git/objects/82/65b2ab66bf22ea7b1e5925264f6779a0c0bd84
Normal file
Binary file not shown.
BIN
efk/_git/objects/89/d69648bf39783a07f167d335a82c7df3198ff3
Normal file
BIN
efk/_git/objects/89/d69648bf39783a07f167d335a82c7df3198ff3
Normal file
Binary file not shown.
BIN
efk/_git/objects/93/54ef48fad93ef15b67f8e425c00a451fe13760
Normal file
BIN
efk/_git/objects/93/54ef48fad93ef15b67f8e425c00a451fe13760
Normal file
Binary file not shown.
@ -0,0 +1,4 @@
|
||||
x¥‘_oÚ0Å÷̧°xo™¨º¼eÁZ)4Aùì%º·±âØ‘m˜úígPiS¥úŹ'×çw®½år‹Æ~pÿzVQ¥™!‚¾×£ÃxÐ2±Ñ”ö\¾uT˜AG
ìÀ@8@H@GCÔ²-8•ºb5úÒZ<C392>Örí:‘3üÛª{Jœª¬-# C4¶•¦œ#Õ±¿CšÅ•ÁB†v=COíW±îýïês÷M¤0À„ýèå´»÷Ã9Ñ-ÖÁ«p'IK•G9hÈGäèx
§-|ð<ÿÏàÇc½TæÊÞ‰wðÒþ
ÑäÞw÷p^T.yœx΄Q^ÌâGYüX?¦y‘_s<>à{rØÓ‡£Ñ)¥¦ HãÙ·ñôÁfæ{mì\àá·À÷‡76gÜzÅó:Çq™ÍŠM<C5A0>“8Û,‹YšÌñææÀ…µ¦d¯h@ìdWk£˜xåKý5¨I
|
||||
ˆ%ëÿñN<Í£
|
||||
OÓïO8.ò<>Á…4
UŸ<55><C5B8>áeš³äLJ°oÔÔðyôíãæ8«f1Žâ8-“¢Hç8ùÇ•GŽ¢U¥7ëćÕóÎ6«I³Æ“Å:³uµOEi Ø
|
||||
OXYþœ>·ä×6xâ»5ŸW-~Iu*
|
BIN
efk/_git/objects/9c/7dad304d827d2fc3b0b1c5f6cf01323d8ccda2
Normal file
BIN
efk/_git/objects/9c/7dad304d827d2fc3b0b1c5f6cf01323d8ccda2
Normal file
Binary file not shown.
BIN
efk/_git/objects/a5/40c2b59f1bbdd8a5251132d1fe71e52267886d
Normal file
BIN
efk/_git/objects/a5/40c2b59f1bbdd8a5251132d1fe71e52267886d
Normal file
Binary file not shown.
BIN
efk/_git/objects/a6/b25727bfc8569b3d15e06755090ff99e433888
Normal file
BIN
efk/_git/objects/a6/b25727bfc8569b3d15e06755090ff99e433888
Normal file
Binary file not shown.
BIN
efk/_git/objects/a8/29769ed1d706a7def1e750b9621cc14bf669ff
Normal file
BIN
efk/_git/objects/a8/29769ed1d706a7def1e750b9621cc14bf669ff
Normal file
Binary file not shown.
BIN
efk/_git/objects/a9/9d80c7f41ac091ddf72f57ed7df279726cc7d4
Normal file
BIN
efk/_git/objects/a9/9d80c7f41ac091ddf72f57ed7df279726cc7d4
Normal file
Binary file not shown.
BIN
efk/_git/objects/ab/21c3d09c4ef95c83011996e69ac0c63e15f7e0
Normal file
BIN
efk/_git/objects/ab/21c3d09c4ef95c83011996e69ac0c63e15f7e0
Normal file
Binary file not shown.
BIN
efk/_git/objects/ab/ad64efcfda92e24af88a2300cb9151761ab526
Normal file
BIN
efk/_git/objects/ab/ad64efcfda92e24af88a2300cb9151761ab526
Normal file
Binary file not shown.
BIN
efk/_git/objects/b6/874e915feecf6d779b8950af2991931f59b57d
Normal file
BIN
efk/_git/objects/b6/874e915feecf6d779b8950af2991931f59b57d
Normal file
Binary file not shown.
BIN
efk/_git/objects/bd/ca028be8249bf77ee84873c18aec28add30aef
Normal file
BIN
efk/_git/objects/bd/ca028be8249bf77ee84873c18aec28add30aef
Normal file
Binary file not shown.
BIN
efk/_git/objects/bf/a019c84bc156683905e689a26c2cec72f86eb1
Normal file
BIN
efk/_git/objects/bf/a019c84bc156683905e689a26c2cec72f86eb1
Normal file
Binary file not shown.
BIN
efk/_git/objects/c0/d67c8e81403b8a31201ec3ef650775074bb440
Normal file
BIN
efk/_git/objects/c0/d67c8e81403b8a31201ec3ef650775074bb440
Normal file
Binary file not shown.
BIN
efk/_git/objects/c1/3e6e0364723145970834e4e3963c388dfc4f54
Normal file
BIN
efk/_git/objects/c1/3e6e0364723145970834e4e3963c388dfc4f54
Normal file
Binary file not shown.
BIN
efk/_git/objects/c1/d4da54a9ee5bb3cffa788d2a258ebe979afab6
Normal file
BIN
efk/_git/objects/c1/d4da54a9ee5bb3cffa788d2a258ebe979afab6
Normal file
Binary file not shown.
BIN
efk/_git/objects/c2/7bfe3fe397a427d6e763825ad940792e07f135
Normal file
BIN
efk/_git/objects/c2/7bfe3fe397a427d6e763825ad940792e07f135
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
x=‹1В0©эЉC©¬С@‘џ EзcC,;1єіс{RDt«™ЩђK лнqєњыЧ>°НО-Qґ¤»QjR3‰‚+И°ЏJo¬Р(„МVЈXeц‡ф+aJфtDЮOZџc…rЋ|ь°ЩVф5tЯТtЬMс§ќы»O4<4F>
|
BIN
efk/_git/objects/cd/d91eb008f1bedde561e99c7918cf56dd17a965
Normal file
BIN
efk/_git/objects/cd/d91eb008f1bedde561e99c7918cf56dd17a965
Normal file
Binary file not shown.
BIN
efk/_git/objects/d8/95728b90c5cd39f496bc80f8089c2728de8720
Normal file
BIN
efk/_git/objects/d8/95728b90c5cd39f496bc80f8089c2728de8720
Normal file
Binary file not shown.
BIN
efk/_git/objects/de/fa5502b2f0bd8bec5e5c9f68d0a4c7924150b6
Normal file
BIN
efk/_git/objects/de/fa5502b2f0bd8bec5e5c9f68d0a4c7924150b6
Normal file
Binary file not shown.
BIN
efk/_git/objects/e2/f71555ad60cbb1606ed56c8a85a5fd28a284ce
Normal file
BIN
efk/_git/objects/e2/f71555ad60cbb1606ed56c8a85a5fd28a284ce
Normal file
Binary file not shown.
BIN
efk/_git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
Normal file
BIN
efk/_git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
Normal file
Binary file not shown.
BIN
efk/_git/objects/e6/a3542a05059fda266d892caa0bd85c5f888413
Normal file
BIN
efk/_git/objects/e6/a3542a05059fda266d892caa0bd85c5f888413
Normal file
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
x¥‘_oÚ0Å÷̧°xoLT]ÞÒà®– $üÉ^¢‹qǶlCÕo?{À€J›*Õ/Î=¹>¿sí5—kÔ·_@±Õ†I!PÊôöýΖ‰M„FTqùÖRa;-µ°Q!-<2D>ЖAÀ±4
|
||||
ˆÓèÓÖ Ö”ß‰¼áßV£(ñªv¶Œ€‰PßU†rJ¬Ô‡þ,i¦×YÚ*–Û/byÜ%ú=Þקþ›Ha<48> 7úÁËk7ï‡ó¢_¬…g7àF’-Õå`,#‘½Ã5·è.¸Â?ƒŽ)©í…½oÎà™û¡ámèïᴨ؟óxñ” Oã¢'Žóä±~ÌŠ²¸8æ;÷Àw.d·±VE½Þ1¥¡ I¸· ÌÞeæ;cÝ\àÑ·Av¯lN¸Õ,N&u<>“y>.«§I^ÍÊq–NpuuàÌ…ÚP²Ó´Ö 6²<C2B2>ÕL<×ò©þ:¨Iˆ#›ÿñŽ<*âe÷?pRƒiª?!dz,/Çé÷aߨáóèëÇ-p¾'8N’lž–e6Áé?®<Žq/¦Z¥!,îaÀYµ6ÓA8]å®^ì²—‡‡b®B9›‡ÃUµT÷Å˯Wp/»q·ó<§)o
|
BIN
efk/_git/objects/f9/4affba1b4f5265a4a88cd7ebd71d755622e2ba
Normal file
BIN
efk/_git/objects/f9/4affba1b4f5265a4a88cd7ebd71d755622e2ba
Normal file
Binary file not shown.
1
efk/_git/refs/heads/master
Normal file
1
efk/_git/refs/heads/master
Normal file
@ -0,0 +1 @@
|
||||
1a146cad3fb1f6d08e44e811c747b658b62fb85e
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user