2014-09-19 119 views
3

SVN回购克隆到Git回购工作正常。
但是我有上面列出的所有应遥控器的标签转换为本地的
SVN to Git使用svn-migration-scripts

java -Dfile.encoding=utf-8 -jar c:\svn-migration-scripts.jar clean-git --force 

命令的问题。
但我收到:

# Creating annotated tags... 
tag has diverged: 1.0_RC1 
Creating annotated tag '1.0_RC1' at refs/remotes/tags/1.0_RC1. 
# Creating local branches... 
# Checking for obsolete tags... 
svn: E215004: Authentication failed and interactive prompting is disabled; see t 
he --force-interactive option 
svn: E215004: Unable to connect to a repository at URL 'http://127.0.0.1/svn/dri 
veLearner/tags' 
svn: E215004: No more credentials or we tried too many times. 
Authentication failed 
Deleting Git tag '1.0_RC1' not in Subversion. 
Deleted tag '1.0_RC1' (was d200bf6) 
# Checking for obsolete branches... 
svn: E215004: Authentication failed and interactive prompting is disabled; see t 
he --force-interactive option 
svn: E215004: Unable to connect to a repository at URL 'http://127.0.0.1/svn/dri 
veLearner/branches' 
svn: E215004: No more credentials or we tried too many times. 
Authentication failed 
No obsolete branches to remove. 
# Cleaning tag names 
# Cleaning branch names 

我用winXP的地方,JAVA 1.7_65,VisualSVN服务器(HTTP,端口80)。每个人都可以在读/写模式下使用回购。
有趣的是,我做了这个过程,但在其他回购成功后,同样的问题,但我不知道我做了什么。
有人解决一些问题吗?

回答

6

Atlassian的这个svn-migration-script.java是一个废话。 这里是详细的说明如何从SVN迁移到Git与最少的第三方软和保留本地分支机构和标签。

详细教程:http://www.sailmaker.co.uk/blog/2013/05/05/migrating-from-svn-to-git-preserving-branches-and-tags-3/

SVN服务器:
网址:[svn_address]/[PROJECT_NAME]/[PROJECT_NAME]
用户:[USER]
通:[通]
(用于访问用户[用户]:RW)

目标:
C:[eclipse_workspace] [PROJECT_NAME](创建目录如果不存在)

步骤:
++在你的系统上安装的svn和git(使用Git的Bash)(可选他们的 '本' 目录添加到PATH)
++确保SVN serwer在HTTP模式下工作(不是HTTPS)
++使authors.txt如果必要
++克隆svn的与git:git svn clone --stdlayout --authors-file=c:\authors.txt
[svn_address]/[PROJECT_NAME] C:[eclipse_workspace] [PROJECT_NAME] [用户] [通]
命令rebase -b 0x64000000 "c:\program files\git\bin\libsvn_repos-1-0.dll"(或类比)可以是有用的,如果出现映射的一些错误
++从上下文菜单运行Git Bash(你应该已经安装了这个)
++型git branch -a检查的分支和标签
++型混帐击:

附加分支:

for branch in `git branch -r | grep "branches/" | sed 's/ branches\///'`; do 
    git branch $branch remotes/branches/$branch 
done 

附上标签:

for tag in `git branch -r | grep "tags/" | sed 's/ tags\///'`; do 
git tag $tag remotes/tags/$tag 
done 

++创建裸Git仓库并推送那里[项目](你会失去SVN的依赖)
++克隆[项目]到目标位置

+0

小评了这一点。过了一段时间(我花了一点时间熟悉Git和侧边工具),我注意到这种导入标签的方式确实创建了本地标签,但也创建了一个分支。 Hovewer进一步提交是在master中进行的。 – rainbow 2014-11-28 06:44:00

+0

当我想附加标签或分支与bash脚本,我有这个错误:“致命:无法解决'遥控器/标签/ svn /标签/ ...'作为一个有效的参考” – MychaL 2017-02-27 08:40:07

0

这是我得到了这个工作(在Mac OSX):

  1. 添加凭据相应想跑svn log your-repo-url〜/的.subversion /认证文件文件
  2. 只是为了看看svn的身份验证正在
  3. 在Mac,这将让我用我的钥匙串,我选择了“总是允许”
  4. 这个我clean-git命令将开始工作,以及

还有票记录here但目前还没有得到任何的注意力从维护