2017年3月21日 星期二

svn

use as git
see:http://johnwong.github.io/mobile/2015/04/30/using-git-with-svn.html
用Git的方式使用SVN

用Git的方式使用SVN

习惯用Git后的程序员一定对SVN不屑一顾。不过目前的开发环境必须使用SVN,用起来不开心。还好Git提供了对SVN的支持,让我们可以像使用Git一样使用SVN。当然一些Git的高级功能还是无法支持的。
有兴趣详细了解的同学可以参考git-svn文档。简单来说只需要几步就可以使用了。

检出SVN库

git svn clone http://PATH_TO_SVN
有了这一步就可以在命令行像操作Git一样操作SVN了。如果对git-svn的命令不习惯,可以试试用工具。

使用SourceTree

我经常使用的Git客户端是SourceTree。SourceTree支持git-svn,只需要将检出的目录拖到SourceTree的Repository Browser (Command + B),就可以使用了。
如果使用时遇到错误:
Can’t locate SVN/Core.pm in @INC (you may need to install the SVN::Core module)
解决方法是参考这里
sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level/SVN /System/Library/Perl/Extras/5.18/SVN
sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level/auto/SVN/ /System/Library/Perl/Extras/5.18/auto/SVN
然后就可以开心地继续开发了。
git-svn

自定义Action

使用过程中,因为我有一些改动不需要提交到svn上,所以每次提交或者更新时都需要先stash,完成操作再放回来。这样3步操作可以通过Source Tree的自定义Action合成一步。
定义了一些脚本pull.shpush.sh,例如:
#!/bin/sh
cd "$REPO"
git stash
git svn fetch
git svn rebase
git stash apply
#!/bin/sh
cd "$REPO"
git stash
git svn dcommit
git stash apply
打开Source Tree的Preferences->Custom Actions,新建pull与push,选择这两个脚本。以后打开项目后,就可以在Actions->Custom Actions下找到你添加的这两个Action。

if not work

try

Git svn not work

Or try this

svn checkout --username roy.leung --password ro436NG svn://svn.gravitas.com.hk/opt/svnrepos/Android/YOHOMall