Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
ed857dd
feat: docker proxy
ramwin Feb 7, 2025
969a81b
feat: tail head
ramwin Feb 11, 2025
1c19d5c
fix: add iptables
ramwin Feb 9, 2025
2beefe7
fix: 函数添加注释的方法
ramwin Feb 15, 2025
3401791
fix: nginx
ramwin Feb 15, 2025
cee4dee
fix: nginx
ramwin Feb 15, 2025
1b00cf9
script
ramwin Feb 16, 2025
611eacc
fix: htop
ramwin Feb 16, 2025
eaa4b13
agava
ramwin Feb 18, 2025
c9779a1
fix:fix: ignore tmp
ramwin Feb 20, 2025
fc9ffa3
redis
ramwin Feb 23, 2025
baca628
fix: nothing
ramwin Feb 25, 2025
a6cd893
ncdu
ramwin Feb 25, 2025
a6a7cc2
fix: nothing
ramwin Feb 25, 2025
cc155ce
ignore django apps
ramwin Mar 2, 2025
b817afc
feat: sorted_set
ramwin Mar 2, 2025
de4a1b0
swap & 内存
ramwin Mar 10, 2025
3dc2109
feat: strikethrought
ramwin Mar 10, 2025
15617ad
add anchor
ramwin Mar 10, 2025
155f1b0
fix: 不需要bat了
ramwin Mar 9, 2025
68219f8
docs: 计算机组成原理
ramwin Mar 13, 2025
139705f
计算机组成原理
ramwin Mar 17, 2025
ebca193
feat: 我的笔记
ramwin Mar 18, 2025
cd6a7c0
feat: madadm
ramwin Mar 19, 2025
d571a19
计算机组成原理
ramwin Mar 20, 2025
c077626
feat: update
ramwin Mar 23, 2025
febf1dd
海明码
ramwin Mar 24, 2025
b7608b3
HPCA
ramwin Mar 26, 2025
6b4dfd9
nothing
ramwin Mar 26, 2025
9a7e16f
feat: redis scan_iter
ramwin Mar 26, 2025
8cab04d
feat: 前100个数据
ramwin Apr 7, 2025
e8478c1
内存
ramwin Apr 17, 2025
35a1833
nginx
ramwin Apr 17, 2025
cf8779f
feat: 合并视频音频
ramwin Apr 20, 2025
9926abb
feat: nothing
ramwin Apr 21, 2025
bcbe911
markdown
ramwin Apr 21, 2025
531886a
feat: redis-cluster
ramwin Apr 28, 2025
6bcc227
mysql dump
ramwin Apr 28, 2025
a8cb08a
feat: postgres
ramwin Apr 28, 2025
515e903
nothing
ramwin Apr 28, 2025
daa8f33
feat: redis
ramwin Apr 28, 2025
ee8be52
feat: ddr
ramwin Mar 21, 2025
198d7f6
redis cluster
ramwin Apr 30, 2025
f387481
redis
ramwin Apr 30, 2025
472e236
feat: 关闭protected-mode
ramwin Apr 30, 2025
c0856f0
redis: cluster
ramwin May 4, 2025
d88bbe5
fix: 不加prefix
ramwin May 5, 2025
2f5707d
restructed
ramwin May 7, 2025
f4c685b
git.openRepositoryInParentFolders
ramwin May 8, 2025
7b9c6fb
feat: 目录配置
ramwin May 10, 2025
91a6e76
feat: supervisor
ramwin May 10, 2025
546fb0a
feat: redis
ramwin May 14, 2025
196bd66
restructed
ramwin May 14, 2025
a700893
include
ramwin May 14, 2025
03cb4d1
mac
ramwin May 15, 2025
cea9f36
feat: 下载shadowsocks
May 15, 2025
290cb66
bashrc
ramwin May 17, 2025
e9409a4
feat: zshrc
ramwin May 17, 2025
09d0889
feat: linux-reference
ramwin May 17, 2025
5288971
bashrc
ramwin May 19, 2025
6133bbf
article: 多个列表组合的链表
ramwin May 19, 2025
3bddb63
requirements
ramwin May 19, 2025
f12d829
zshrc
ramwin May 19, 2025
ff7f4df
baserc
ramwin May 21, 2025
2286890
feat: no proxy
ramwin May 21, 2025
524f95a
fix: supervisor配置
ramwin May 22, 2025
fab098c
feat: proxy
ramwin May 23, 2025
3bc791f
feat: zoomlevel设置菜单大小
ramwin May 24, 2025
b339a5b
supervisor
ramwin May 23, 2025
7db77a7
feat: ps1
ramwin May 30, 2025
71b70df
update
ramwin May 30, 2025
4046a9d
fix: vscode设置scale后减少fontsize
ramwin May 31, 2025
5f4783a
nothing
ramwin Jun 2, 2025
49750cb
feat: 自动挂载
ramwin Jun 4, 2025
4523c98
feat: 本地mermaid
ramwin Jun 4, 2025
62f27df
feat: 默认有保存行为
ramwin Jun 7, 2025
68defdd
feat: 都用linux的git
ramwin Jun 10, 2025
83431fd
fix: 适配mac
ramwin Jun 16, 2025
dc5bd95
feat: 计算机组成原理
ramwin Jun 17, 2025
ce26641
fix: ipython3
ramwin Jun 17, 2025
6c74253
fix: 多进程配置
ramwin Jun 19, 2025
5381fc1
vscode autofetch
ramwin Jun 20, 2025
172f57f
prox
ramwin Jun 20, 2025
a380314
feat: for循环
ramwin Jun 30, 2025
74c6e2f
feat: postgresql
ramwin Jul 7, 2025
142429c
fix: order
ramwin Jul 7, 2025
9192311
feat: redis
ramwin Jul 17, 2025
7eb1914
feat: 发布包
ramwin Jul 16, 2025
29d44db
fix: 配置
ramwin Jul 27, 2025
153e688
fix: learn
ramwin Jul 28, 2025
ec33dc8
terminal 配置
ramwin Jul 29, 2025
1acc7f2
fix: nothing
ramwin Jul 29, 2025
14fd614
fix: windows 5800配置
ramwin Jul 29, 2025
ca4ca02
feat: rbc cpc
ramwin Jul 29, 2025
e5b18dd
feat: 通过schema打开excel的操作
ramwin Jul 31, 2025
4769d79
fix: set -o history mac下用不了
ramwin Aug 4, 2025
5818e91
Add Git bundle solution for incremental code synchronization
cursoragent Aug 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ __pycache__
.vscode
.env
\~\$*.xlsx
node_modules
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# linux笔记
* [system 系统 优化](./linux/system.md)
* [user & group 用户和组](./linux/user_group.md)
* [markdown](./markdown.md)
* [linux命令搜索网站](https://wangchujiang.com/linux-command/)

## shell编程
Expand All @@ -10,6 +10,7 @@
./shellprogramming/README.md
```


## [cache](./cache.md)

## 操作系统
Expand Down Expand Up @@ -249,7 +250,9 @@ chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile none swap sw 0 0" >> /etc/fstab
# 0尽量不使用swap交换空间, 100积极得使用交换空间 0会OOM(out of memory). 10代表内存仅剩10%时,开始使用交换分区
echo "vm.swappiness=10" >> /etc/sysctl.conf
sudo sysctl -p
```

## sysctl
Expand Down
188 changes: 188 additions & 0 deletions README_bundle_solution.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
# Git Bundle 增量同步完整解决方案

## 问题背景

你遇到的场景:
1. 分支 `inner` 基于 master 的 A0 节点,开发了 A1, A2, A3, A4
2. 已经将 A1-A3 打包成 `bundle_A123` 给同事C
3. 同事B开发了B1并合并到master
4. 你将A4 rebase到B1后变成:A0 → B1 → A1' → A2' → A3' → A4'
5. 现在需要给同事C发送A4',但要避免重新传输A1', A2', A3'

## 解决方案概述

**核心思路**:创建增量bundle,只包含A4'这个新提交,充分利用同事C已有的bundle_A123。

## 具体操作步骤

### 第一步:你的操作(创建增量bundle)

```bash
# 1. 确保你在inner分支上
git checkout inner

# 2. 找到A3'的commit hash
git log --oneline -5
# 假设A3'的hash是 abc123

# 3. 使用脚本创建增量bundle
./create_incremental_bundle.sh -b abc123 -t inner -c

# 或者手动创建
git bundle create bundle_A4_only.bundle abc123..inner
```

### 第二步:发送给同事C

将生成的 `bundle_A4_only.bundle`(或压缩后的 `.gz` 文件)发送给同事C。

### 第三步:同事C的操作(应用增量bundle)

```bash
# 方法1:使用提供的脚本(推荐)
./apply_incremental_bundle.sh bundle_A4_only.bundle

# 方法2:手动操作
# 2.1 首先确保已经应用了之前的bundle_A123
git fetch bundle_A123.bundle refs/heads/inner:inner_base

# 2.2 应用新的增量bundle
git fetch bundle_A4_only.bundle refs/heads/inner:inner_updated

# 2.3 切换到更新后的分支
git checkout inner_updated
```

## 提供的工具脚本

### 1. `create_incremental_bundle.sh` - 创建增量bundle

**功能特点**:
- 自动验证提交点存在性
- 显示将要打包的提交列表
- 支持压缩输出
- 提供详细的操作指导

**使用示例**:
```bash
# 基本用法
./create_incremental_bundle.sh -b HEAD~1

# 指定目标分支和输出文件
./create_incremental_bundle.sh -b abc123 -t inner -o my_bundle.bundle

# 创建压缩的bundle
./create_incremental_bundle.sh -b abc123 -c
```

### 2. `apply_incremental_bundle.sh` - 应用增量bundle

**功能特点**:
- 自动验证bundle完整性
- 支持预览模式查看内容
- 可创建新分支或更新现有分支
- 自动处理压缩文件

**使用示例**:
```bash
# 基本用法
./apply_incremental_bundle.sh bundle_A4_only.bundle

# 预览bundle内容
./apply_incremental_bundle.sh --preview bundle_A4_only.bundle

# 创建新分支而不是更新现有分支
./apply_incremental_bundle.sh -n bundle_A4_only.bundle
```

## 高级技巧

### 1. 使用Git标签标记关键点

```bash
# 在创建bundle_A123时打标签
git tag -a sync_point_A123 A3_commit_hash -m "Sync point for bundle_A123"

# 基于标签创建增量bundle
./create_incremental_bundle.sh -b sync_point_A123
```

### 2. 验证bundle大小对比

```bash
# 创建完整bundle(对比用)
git bundle create bundle_full.bundle master..inner

# 创建增量bundle
./create_incremental_bundle.sh -b A3_hash

# 对比大小
ls -lh *.bundle
```

### 3. 处理复杂的rebase情况

如果rebase后的A1', A2', A3'与原来的A1, A2, A3差异很大:

```bash
# 方案1:基于共同祖先创建bundle
COMMON_ANCESTOR=$(git merge-base A3_original_hash A3_new_hash)
git bundle create bundle_from_common.bundle $COMMON_ANCESTOR..inner

# 方案2:使用cherry-pick方式
# 让同事C基于bundle_A123创建分支,然后应用A4'
git bundle create bundle_A4_cherry.bundle A4_hash^..A4_hash
```

## 故障排除

### 问题1:同事C应用bundle后出现冲突
```bash
# 检查当前状态
git status

# 查看冲突的文件
git diff

# 解决冲突后继续
git add .
git commit -m "Resolve conflicts from incremental bundle"
```

### 问题2:bundle验证失败
```bash
# 重新创建bundle
git bundle create new_bundle.bundle base_commit..target_branch

# 验证bundle
git bundle verify new_bundle.bundle
```

### 问题3:找不到基础提交点
```bash
# 查看详细的提交历史
git log --oneline --graph -20

# 或者使用reflog查找
git reflog show inner
```

## 最佳实践建议

1. **记录同步点**:每次创建bundle时记录base commit hash
2. **使用描述性文件名**:包含日期、分支名和版本信息
3. **验证操作**:在本地模拟同事的操作流程
4. **备份重要分支**:在应用bundle前创建备份分支
5. **压缩传输**:对于大文件使用压缩选项
6. **文档化流程**:团队内部建立标准的bundle同步流程

## 总结

这个解决方案通过创建增量bundle,有效解决了rebase后避免重复传输的问题。关键优势:

- ✅ **大幅减少传输大小**:只传输新的提交A4'
- ✅ **保持完整历史**:同事C可以完整重建分支历史
- ✅ **操作简单**:提供自动化脚本,减少人为错误
- ✅ **灵活性高**:支持多种应用方式和验证选项

通过这种方式,你可以高效地与内网同事同步代码,避免重复传输大量已同步的内容。
7 changes: 7 additions & 0 deletions _static/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"dependencies": {
"@mermaid-js/layout-elk": "^0.1.7",
"d3": "^7.9.0",
"mermaid": "^11.6.0"
}
}
Loading