git-svn使用方式及使用中的问题(已解决)

之前的项目都是使用 SVN,今天在 git- svn上工作时,出了一点问题,记录一下,以便将来查询。
使用过程:
1、从 svn clone出项目,加上-s参数以标记识别 svn标准的目录分支结构,同时通过show-ignore设置 git库的exclude属性:
Java代码 复制代码
  1. git svn clone -s https://svn.xxx.com/svn/xxx   
  2. git svn show-ignore >> .git/info/exclude  
git svn clone -s https://svn.xxx.com/svn/xxx
git svn show-ignore >> .git/info/exclude


2、建立本地工作分支,开始工作:
Java代码 复制代码
  1. git checkout -b work  
git checkout -b work

修改内容直接commit,加上-a开头以省略 git add操作:
Java代码 复制代码
  1. git commit -a  
git commit -a


3、提交回 svn的过程:
Java代码 复制代码
  1. git checkout master   
  2. git merge work   
  3. git svn rebase   
  4. git svn dcommit  
git checkout master
git merge work
git svn rebase
git svn dcommit


在今天工作中,我提交回 svn的方式是:
Java代码 复制代码
  1. git checkout master   
  2. git svn rebase   
  3. git merge work  
git checkout master
git svn rebase
git merge work

结果 svn rebase时在master分支上产生了一个新的node,这样merge时就不能快速合并,出现了冲突,修复后,在dcommit时出错,出现N个孤立节点。因为不熟悉,就checkout出work分支,进行了dcommit,然后重新生成一次 git库。

(7/14更新)

今天解决了这个问题,参考以下网址: https://wiki.bnl.gov/dayabay/index.php?title=Synchronizing_Repositories
以下重新描述一下问题和解决方法:
1、在执行 git svn dcommit时,出现如下错误:
Committing to https:// svn.xxx.com/ svn/projects/trunk ...
提交时发生合并冲突: 您的文件或目录”test/functional/xxx_controller_test.rb“可能已经过时: The version resource does not correspond to the resource within the transaction.  Either the requested version resource is out of date (needs to be updated), or the requested version resource is newer than the transaction root (restart the commit). at /usr/bin/ git- svn line 450

2、这时,重新执行以下步骤即可:
Java代码 复制代码
  1. git svn fetch   
  2. git svn rebase   
  3. git svn dcommit  
git svn fetch
git svn rebase
git svn dcommit

但我在执行 git svn rebase时,又出现冲突,这个时候,只需要手工合并掉冲突,并重新add一下:
Java代码 复制代码
  1. git add .  
git add .

然后,再执行:
Java代码 复制代码
  1. git rebase --continue  
git rebase --continue

如果报告说没有修改内容,则换成执行:
Java代码 复制代码
  1. git rebase --skip  
git rebase --skip

完成rebase过程,这时就可以 git svn dcommit了。

这样,总算解决了 svn历史冲突问题,不用象前面那样笨笨的重新 git- svn clone.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值