Git SVN获取更新的脚本

上篇Blog里介绍了Git SVN的工作流程,如果在一个分支工作时,想取得SVN上的更新,那么可以使用下面这个脚本,只要一个命令就能搞定了。

br=`git branch|grep \*|cut -c3-`
echo "Branch:$br"
 
echo ""
echo "--- Stashing ---"
git stash
 
if [ $? -ne 0 ]; then
echo "--- Stashing failed. ---"
exit 127
fi
 
echo ""
echo "--- Checking out master ---"
git checkout master
 
echo ""
echo "--- Getting update from SVN ---"
git svn rebase
 
echo ""
echo "--- Checking out $br ---"
git checkout $br
 
echo ""
echo "--- Getting update from master ---"
git rebase master
 
echo ""
echo "--- Restore working space ---"
git stash pop
 
echo ""
echo "--- Done. ---"

我的Git SVN工作流程

前一篇博文谈到开始使用Git做为SVN的客户端。网上已经有很多文章介绍Git-SVN的用法,这里介绍一下我的工作流程。下面的蓝色文字表示是在主分支(master)下完成的命令,而棕色文字是表示在工作分支完成的命令。

首先,从SVN (Subversion) 签出一个模块并建立工作分支:

$git svn[......]

Read more

开始试用Git作为SVN客户端

由于公司的SVN服务器在国外,由于一些众所周知和众所不知的原因,与这台服务器交互时不时会有些问题,头疼了有一年多了。最近发现Git居然提供了与SVN服务器交互的命令,可以把Git变成一个SVN的客户端,这可把我乐坏了。其实原先是研究过一下它的老对手Mercurial的,不过搜到关于它和SVN的资料比[......]

Read more

git-svn rebase的出错信息

用Git从SVN容器取下工程后,做rebase的时候出现下列信息:

$ git svn rebase
W: Refspec glob conflict (ref: refs/remotes/trunk):
expected path: project/branches/trunk
    real path: project/trunk
Continuing ahead with Navigator Product/trunk
Current branch master is up to date.

虽然不影响操作,但有碍观瞻。解决办法是打开项目目录下的.git/config文件,会发现下面几行:

bc8071e50cc909f83b4341f26[......]

Read more