1

这是我第一次尝试制作 git-svn 项目。我有直接访问的 Debian 服务器。

信息:-本地 SVN 是一个分支,我不会进行任何本地或远程提交

我要存档的内容:

  1. 创建真正的 GIT 本地存储库。这很容易 :-]

  2. 创建http://miranda.googlecode.com/svn/trunk/ (一个分支)的SVN本地副本(或git-svn repo?我不知道在这种情况下女巫会更好),然后通过自动获取所有更改一些检测远程更改并在之后运行“svn update”的脚本。

  3. 不知何故,从本地 SVN 存储库到本地 GIT 存储库和一个名为“Miranda-svn”的分支一一获取所有“更改”(文件和提交消息)。因此,当您查看此特定分支的提交/日志时,您将看到与http://code.google.com/p/miranda/source/list相同的消息。

  4. 将“Miranda-svn”分支推送到远程github.com账号,项目名称“Test”,分支名称“Miranda-svn”

  5. 将分支“Miranda-svn”与“master”合并

有人可以帮助我吗?有没有这种设置的例子?

4

1 回答 1

3

这对于 Git 来说非常简单。

首先使用 git svn “克隆”远程存储库

git svn init --trunk=trunk http://miranda.googlecode.com/svn miranda
cd miranda
git svn fetch
git checkout -b Miranda-svn remotes/trunk 

注意:您可能希望通过使用-r start:end开关来限制获取的修订数量

然后为github添加一个新的遥控器

git remote add origin git@github.com:myuser/test.git

最后将更改推送到 github 远程

git push origin Miranda-svn

用 SVN 的内容更新 Git 分支:

git checkout Miranda-svn # Just to be sure that we are on the correct branch
git svn rebase
git push origin Miranda-svn

将 SVN 更改合并到另一个 Git 分支:

git checkout master # Or whatever branch you want
git merge --no-ff Miranda-svn

注意!由于 SVN 具有线性历史,并且“svn”分支将根据每个“拉动”重新建立,您不想使用此设置将任何内容提交到 Miranda-svn 分支。

于 2012-07-29T21:41:58.313 回答