Skip to content

Commit b3df2f1

Browse files
committed
Fix typo in svn-migrate-with-git-svn
Signed-off-by: Jiang Xin <[email protected]>
1 parent 6e12747 commit b3df2f1

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

_posts/2014-04-24-svn-migrate-with-git-svn.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
layout: post
3-
title: "使用 git-svn 整理 SVN 版本库"
3+
title: "使用 git-svn 和 git-filter-branch 整理 SVN 版本库"
44
---
55

66
SVN 本身提供了如下版本库整理工具:
@@ -12,19 +12,20 @@ SVN 本身提供了如下版本库整理工具:
1212

1313
其中 `svnadmin dump` 将整个版本库或部分提交导出为一个导出文件; `svndumpfilter`
1414
基于配置项的路径(SVN 1.7的 svndumpfilter 还支持通配符路径)对导出文件进行过滤,
15-
过滤结果保存在为新的导出文件`svnadmin load` 将导出文件导入到另外的版本中
15+
过滤结果保存为新的导出文件`svnadmin load` 将导出文件导入到另外的版本库中
1616
导入过程有两个选择——维持路径不变,或导入到某个路径之下。
1717

18-
相对于Git提供的用于提交整理的 `git filter-branch` 命令,SVN的版本库整理工具能做的实在不多。
19-
而且用SVN的相关工具容错性太差,操作过程经常被中断,实在是步步惊心
18+
相对于Git提供的用于整理提交的 `git filter-branch` 命令,SVN的版本库整理工具能做的实在不多。
19+
而且SVN的相关工具容错性太差,操作过程经常被中断,可谓步步惊心
2020

2121
最近遇到的一个案例,需要将两个 SVN 版本库(bar 和 baz)的全部历史导入到另外一个 SVN 版本库(foo)中。
22-
并要求版本库 bar 和 baz 的目录结构采用 foo 中统一规定的目录结构。
22+
并要求版本库 bar 和 baz 的目录结构统一采用 foo 中规定的目录结构。面对要导入的近 20GB 数据(绝大部分是Word、Excel、PDF文档),
23+
决定采用Git提供的工具集进行SVN版本库整理。整理过程和过程中开发的脚本记录如下。
2324

2425
## 将 bar 和 baz 版本库转换为本地Git库 ##
2526

2627
以 bar 为例,将两个版本库(bar 和 baz)转换为本地的 Git 版本库,以便使用强大的
27-
`git filter-branch` 命令对提交中的文件路径进行逐一的修改
28+
`git filter-branch` 命令对提交逐一进行修改(如修改版本库中的文件路径)
2829

2930
$ git init git/bar
3031
$ cd git/bar
@@ -89,7 +90,7 @@ Windows和Linux下文件名长度限制不同,前者255个Unicode字符,后
8990

9091
## 根据需要对版本库目录重新组织 ##
9192

92-
`git filter-branch` 至少有两个过滤器可以逐一对提交进行重新组织。一个是 `--tree-filter`
93+
`git filter-branch` 至少有两个过滤器可以对提交中的目录和文件进行组织。一个是 `--tree-filter`
9394
一个是 `--index-filter` 。前者的过滤器脚本写起来简单,但执行起来较后者慢至少一个数量级。
9495

9596
根据路径转换的需求,编写过滤器脚本,如脚本 `transform.sh`

0 commit comments

Comments
 (0)