git配合svn的一些使用方法

| 1 Comment

作弊条

在一个git库中跟踪不同的svn branch

首次创建git库:git svn clone [svn代码库到HEAD分支的URL] [git代码库名]

例如,对于 FreeBSD,对应的URL为 http://svn.freebsd.org/base/head/

一般来说,从远程svn库复制需要的时间会比较长,也可以考虑首先在本地建立一份镜像,然后直接用 file:/// 去指定。

接下来编辑 .git 中的 config 文件,找到类似:

[svn-remote "svn"]
        url = file:///downloads/mirrors/freebsd/base/head
        fetch = :refs/remotes/git-svn

对于不同的分支,可以继续添加新的svn-remote小节,例如:

[svn-remote "svn-releng-8.2"]
        url = file:///downloads/mirrors/freebsd/base/releng/8.2
        fetch = :refs/remotes/git-svn-releng-8.2

添加完之后,用git svn fetch svn-releng-8.2这样的命令来同步对应的分支。

本地开发分支

本地开发分支比较简单,只需git checkout -b [你的分支名字] [源分支]即可。

远程开发分支

如果需要在另一个系统上做开发,则需要一些特别的步骤。

首先是git clone远程系统上的代码库。然后编辑.git/config,其中应该有类似这样的部分:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = server:/repo/freebsd.git

为svn的branch建立对应的remote:

[remote "svn"]
        fetch = +refs/remotes/*:refs/remotes/svn/*
        url = server:/repo/freebsd.git

然后git pull,在git branch -r时就能看到远程系统上的git-svn branch了。这个主要是在git merge的时候比较有用。

1 Comment

老大,一段时间没来看,你的那个mars有段时间没更新了啊,我原来可是每天都看你的那个mars的啊,啥时候能恢复更新啊……

::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com



自怼圈/年番新

DU21.7
关于 ~ DebugUself with DAMA ;-)


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


粤ICP备18025058号-1
公安备案号: 44049002000656 ...::