2010-12-19 31 views
4

我刚刚将一个大的开源项目从subversion迁移到git。从svn迁移到git:如何为连接不稳定的大型存储库创建.gitignore文件?

我试图做一个git svn create-ignore,但约30分钟后没有成功,因为SVN服务器连接有时会失败:

RA层请求失败:的 PROPFIND“...”:无法连接到服务器 (...)。现在

,问题是,如果我再这样做git svn create-ignore,将重新启动完全结束(不像git svn fetch从它打破了延续)。所以它永远不会超过25%的项目。这是可以修复的吗?

+0

呃...为什么**这个连接**不好? – thejh 2010-12-19 19:16:59

+0

哪个项目?大多数GNU的人都会提供存储库的rsync,所以你可以在本地完成所有的事情? – Rup 2010-12-19 19:17:03

+0

这个连接并不像项目太庞大那么糟糕。它看起来像“git svn create-ignore”正在为每个单独的文件建立一个单独的连接。有时它在文件500上失败,有时在文件5000上我相信。 – 2010-12-20 08:57:45

回答

4

你可以尝试这样的事:

  • 首先创建整个SVN仓库的本地镜像与svnsync描述here
  • 现在编辑您的[svn-remote]部分中的网址.git/config以指向您的本地镜像(您可以使用file:/// URL)。
  • 再次尝试git svn create-ignore
  • 将您的.git/config改回指向真实存储库。

创建本地镜像将花费大量时间,带宽和磁盘空间,但至少如果中途中断,您可以重新开始。

+0

好主意。除了我无法创建本地镜像,因为加载svn转储无法加载(可能是因为SVN历史记录中存在损坏)。运气不好从来没有独自一人:) – 2010-12-20 08:55:08

+0

@Geoffrey:我很困惑 - 'svnsync'不使用svn转储。它像其他任何SVN客户端一样获取信息。另外,您使用SVN转储的事实似乎表明您拥有对存储库的管理访问权限。在这种情况下,您可以复制整个存储库文件夹,不需要转储/加载循环。 – 2010-12-20 11:45:12

+0

好点,我用svnadmin转储和加载困惑svnsync。由于我是在截止日期之前,我做了svn手动忽略,只是希望我没有错过任何:/ – 2010-12-23 14:40:57