-
git svn使用小记2 非标准的分支流
假如你遇到一条非标准的分支流,即不是/branches/xxx这种形式的,该怎么让git识别?以下是我从stackoverflow上学到的一个简单方法,如有更好的方法,欢迎指出。 git config –add svn-remote.newbranch.url https://svn/path_to_newbranch/ git config –add svn-remote.newbranch.fetch :refs/remotes/newbranch git svn fetch newbranch [-r<rev>] git checkout -b local-newbranch -t newbranch git svn rebase newbranch 执行了上述命令后,.git/config中其实会增加如下内容 [svn-remote “newbranch”] url = http://path/to/your/repository fetch = :refs/remotes/newbranch [branch “local/newbranch”] remote = . merge = refs/remotes/newbranch 然后你就可以使用非标准的branch了。
-
git svn使用小记
之前,个人写过使用git管理svn的文章,距离当时差不多有两个月了,说说自己在这两个月内学到的一些小东西。 svn认证哪里去了? 使用git管理svn的时候,个人一个明显的感受是svn那“烦人”的认证信息没了。当初git clone到现在只有一次认证提示,我很好奇git是怎么做的。 后来有一次认证信息改变了,git svn dcommit时那个熟悉的svn认证输入提示又出现了,这时我恍然大悟,git其实是采用svn的认证存储机制。虽然是用git管理svn,但是并没有用git特色的ssh key方式。之前git clone没有出现认证提示的原因也是因为git使用了svn的认证(我以前输入并保存过)。
-
用shell简单实现类似git的子命令
git的子命令指的是类似git add,git commit这种。从命令上看git会对不同的子命令做分发,选择不同的函数/方法/功能,避免一堆的git-add git-commit暴露出来。 如果要实现类似功能,简单的就是根据$1选择不同的函数,额外要考虑的是没有输入啊和没有对应功能的情况。其次,对于子命令来说,同样希望获取命令行参数,这时就需要shift了。最后稍微整理下,以下是个人的实现版本:
-
svn switch and git svn
本文之前就想写,但是当时对svn switch不是非常了解,而且没有解决多分支开发的问题。 到今天为止,靠着强大的git把多分支开发的问题基本解决了,就上来把这一段时间内的解决过程和最终的方案说一下,希望对仍旧被svn“蹂躏”的各位有用。 首先说下多分支开发的问题。在svn下多分支开发唯一的方法是把代码checkout到不同目录中。svn switch并不能承担分支切换的功能。svn switch从它的功能来说是让一个工作副本中包含来自多个库的内容。我能想到的典型场景是“分支”合并到主干上时,当前的主干副本来需要来自其他库,即开发完成的分支的内容。其他可能是一些“异常情况”,反正不要被switch这个单词骗了…… 那么svn是否有别的命令支持分支切换么?我个人没有查到。其实从我这一段时间的research,我对svn进一步的认识是:svn没有分支的概念。得出这个结论的过程可能比较长,而且有比较多的个人标准,这里就不展开了。重点是如何解决多分支版本开发问题。