在工作中,我不得不使用TFS作为过去2年的源代码管理系统。我正在使用Eclipse并使用插件和工具链 由Microsoft提供。经过很多挣扎,性能问题 并且丢失了提交/更改我决定迁移回SVN。 git是一个选项,但我们公司目前尚未完全支持。
这是我到目前为止所做的:
安装了git,git-tfs,TortoiseGit(Windows 7 64位)
使用克隆了TFS回购
git tfs clone https://tfs-repo-url $/tfs-project
(此操作运行约2天)
在.git / config中的克隆回购中我添加了
[svn-remote "svn"]
url = https://svn-repo-url/path/to/repo
fetch = :refs/remotes/git-svn
然后我跑了
git svn fetch
然后我使用TortoiseGit和设置运行git rebase
branch: master upstream: remotes/git-svn onto:remotes/git-svn
这个操作花了我4天,因为我必须手动解决一些冲突
最后我试过了
在TortoiseGit和git bash中
git svn dcommit
。但它没有用。两种情况都有错误消息:
$ git svn dcommit
Committing to https://svn-repo-url/xxx/xxx ...
ERROR from SVN:
Failed to execute WebDAV PROPPATCH: While handling the 'svn:log' property on '/xxx/xxx/!xxx/xxx/34-11':: Could not execute PROPPATCH.
W: 66bec61cf962b71f4eb58ea4e9563e36979c88b4 and refs/remotes/git-svn differ, using rebase:
:040000 000000 4ed7c4626115cac047944f6c3c319d85fc69d9e5 0000000000000000000000000000000000000000 D SomeDir1
:040000 000000 30679e7850bc41f79f849aefa1e841c212fa23a7 0000000000000000000000000000000000000000 D SomeDir2
:040000 000000 dc1a6310ac9f4a7872550b6d3da1eae16d77c25a 0000000000000000000000000000000000000000 D SomeDir3
:040000 000000 fd55b7817cc1c55ee3e2f19903202daec5348e5a 0000000000000000000000000000000000000000 D SomeDir4
:040000 000000 1acbb3d534f38c0197124cd33997d31572f71aed 0000000000000000000000000000000000000000 D SomeDir5
:040000 000000 75efb209e1a7fbce240dc2e5e7e7c208ebbdf60b 0000000000000000000000000000000000000000 D SomeDir6
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.
$ git svn dcommit
Committing to https://svn-repo-url/xxx/xxx ...
ERROR from SVN:
Failed to execute WebDAV PROPPATCH: While handling the 'svn:log' property on '/xxx/xxx/!xxx/xxx/34-11':: Could not execute PROPPATCH.
W: 66bec61cf962b71f4eb58ea4e9563e36979c88b4 and refs/remotes/git-svn differ, using rebase:
:040000 000000 4ed7c4626115cac047944f6c3c319d85fc69d9e5 0000000000000000000000000000000000000000 D SomeDir1
:040000 000000 30679e7850bc41f79f849aefa1e841c212fa23a7 0000000000000000000000000000000000000000 D SomeDir2
:040000 000000 dc1a6310ac9f4a7872550b6d3da1eae16d77c25a 0000000000000000000000000000000000000000 D SomeDir3
:040000 000000 fd55b7817cc1c55ee3e2f19903202daec5348e5a 0000000000000000000000000000000000000000 D SomeDir4
:040000 000000 1acbb3d534f38c0197124cd33997d31572f71aed 0000000000000000000000000000000000000000 D SomeDir5
:040000 000000 75efb209e1a7fbce240dc2e5e7e7c208ebbdf60b 0000000000000000000000000000000000000000 D SomeDir6
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.
当我时,它会列出所有单一提交(在我的情况下为~6100)
我到目前为止发现的是提交消息有问题(富文本,多行)。但我真的看不出如何修改~6100提交消息。
你知道如何继续前进吗?
git svn dcommit --dry-run
versions
--------
SVN Server : Apache Subversion version 1.7.6 (r1370777)
git : 2.9.0.windows.1
git-tfs : 0.25.0.0 (TFS client library 11.0.0.0 (MS))
TortoiseGit : 2.2.0.0
TortoiseSvn : 1.8.7, Build 25475
祝你好运
singtur