首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何克隆一个svn存储库,该存储库通过维护完整的历史记录来改变布局?

我如何克隆一个svn存储库,该存储库通过维护完整的历史记录来改变布局?
EN

Software Engineering用户
提问于 2013-01-23 08:40:18
回答 1查看 2.1K关注 0票数 5

问题

我想用git-svn克隆一个svn回购。问题是subversion存储库更改了r1235的布局。

规范

从第1版到第1234版,foo使用标准的svn文件夹布局:

  • /主干/src
  • /tag/version/src

在第1235版中,作者将bar添加到回购程序中。为此,他们重组了主存储库,使文件夹布局看起来如下所示:

  • /主干/foo/src
  • /主干/酒吧/src
  • /tag/version/foo/src
  • /tag/version/bar/src

目标

我想要一个新的git存储库,它具有foo的历史,就好像它从未被重新排列过以包含bar一样。

相关文档

使用非标准布局将在git-svn的文档中进行讨论。

如果整个历史没有必要(或者我只想要bar),我可以从r1235上得到我想要的东西:

  • git svn init --stdlayout http://path.to/repo
  • 编辑repo/.git/config,将/foo添加到相关路径(或/bar)

`

代码语言:javascript
复制
[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:HEAD

我的尝试

  • git svn clone -r 1:1234 --stdlayout http://path.to/repo
  • 按上面的方式编辑repo/.git/config
  • git svn fetch -r 1235:HEAD

结果

最后一个命令似乎成功了,因为下载了r1235 - HEAD。但是,git log只显示提交到1234。工作目录似乎也是旧的修订版。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 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 (检查没有本地更改)应该做什么,而且由于您还没有进行本地更改,所以这是等效的。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/184540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档