我想用git-svn克隆一个svn回购。问题是subversion存储库更改了r1235的布局。
从第1版到第1234版,foo使用标准的svn文件夹布局:
version/src在第1235版中,作者将bar添加到回购程序中。为此,他们重组了主存储库,使文件夹布局看起来如下所示:
version/foo/srcversion/bar/src我想要一个新的git存储库,它具有foo的历史,就好像它从未被重新排列过以包含bar一样。
使用非标准布局将在git-svn的文档中进行讨论。
如果整个历史没有必要(或者我只想要bar),我可以从r1235上得到我想要的东西:
git svn init --stdlayout http://path.to/reporepo/.git/config,将/foo添加到相关路径(或/bar)`
[svn-remote "svn"]
url = http://path.to/repo
fetch = trunk/foo:refs/remotes/trunk
branches = branches/*/foo:refs/remotes/*
tags = tags/*/foo:refs/remotes/tags/*`
git svn fetch -r 1235:HEADgit svn clone -r 1:1234 --stdlayout http://path.to/reporepo/.git/configgit svn fetch -r 1235:HEAD最后一个命令似乎成功了,因为下载了r1235 - HEAD。但是,git log只显示提交到1234。工作目录似乎也是旧的修订版。
发布于 2013-01-23 08:59:51
您只做了git svn fetch,所以现在您必须查看最新的修订版。
git svn rebase中的任何一个(嗯,在路径更改之后,我对此至少是肯定的,但通常它是您使用的;它包括fetch)、git reset --hard trunk (强制丢弃本地更改)、git rebase trunk (重新应用已提交的本地更改)或git merge --ff-only trunk (检查没有本地更改)应该做什么,而且由于您还没有进行本地更改,所以这是等效的。
https://softwareengineering.stackexchange.com/questions/184540
复制相似问题