Git SVN忽略来自SVN的错误,路径可能不存在:(160013):Filesystem没有项目

时间:2013-08-12 11:02:03

标签: git-svn

我有一个由其他团队共享的SVN服务器,我有一个新项目要提交给SVN。

首先,我将它添加到Git控件:

git init

然后,通过以下方式将所有文件添加到Git:

git add .

然后,通过以下方式将所有文件提交给Git:

git commit -am "Initial Commit"

然后,我通过以下方式链接到SVN:

git svn init https://my_account@my_svn_server_host.com/svn/external/trunk/projectA/

其中projectA文件夹不存在。然后,我尝试从服务器获取更新:

git svn fetch

错误到了。

  

W:Filesystem没有项目:'/ svn / external /!svn / bc / 5060 / trunk / projectA'   路径未在/ usr / libexec / git-core / git-svn第1801行找到

     

W:忽略来自SVN的错误,路径可能不存在:(160013):   文件系统没有项目:'/ svn / external /!svn / bc / 5060 / trunk / projectA'   路径未找到

     W:不要对上面的消息git-svn感到惊慌   只是积极地寻找旧的历史。这可能需要一段时间   大型仓库

然后我试着拒绝:

git svn dcommit

然后,它给出了:

Unable to determine upstream SVN information from HEAD history.
Perhaps the repository is empty. at /usr/libexec/git-core/git-svn line 541.

我错过了什么?

我使用的是Mac OS X 10.7,MacPorts 2.2.0

更新:根据@ Wes的回答,结果如下:

# git init
Initialized empty Git repository in /Users/path/to/my/projectA/.git/
# git checkout -b "mychanges"
fatal: You are on a branch yet to be born
# git checkout master
error: pathspec 'master' did not match any file(s) known to git.

糟糕!似乎不起作用。

1 个答案:

答案 0 :(得分:0)

你真的不能这样做。 git svn要求你有一个线性历史记录(好吧,git没有; svn本身就是这样)。所以你的所有git工作都必须在svn。

的commit-tree结束时结束

正确的做法是首先使用git svn clone镜像远程存储库,然后提交到已检出的版本并运行git dcommit

是的,还有其他方法可以做到这一点,但是你上面这样做的方式会在拉入远程内容之前进行提交,这将无效。

如果您只是尝试将所有现有更改添加到远程版本中,您可以这样做:

# git init
# git checkout -b "mychanges"
# git checkout master
# git svn init ....
# git svn fetch
# git checkout mychanges
# git rebase master
# git checkout master
# git merge --ff-only mychanges
# git dcommit

这是未经测试的,但它应该做你想要的。