0

第一个问题:

我们在 linux 上运行 SVN,有多个不同的项目。我正在尝试使用 subgit 在它们之间创建一个镜像,以便我们可以同时使用 SVN 和 Git 进行过渡阶段。我确实设法进行了 subgit 安装,并设法将文件从 SVN 传输到 Git 作为一个项目的测试。我为这个特定项目提供了 subgit 的 url。

url = http://lnx-server/svn/TestProject

在 TestProject 下有分支、主干和标签,就像 SVN 存储库中应该有的那样。

由于默认配置文件如下所示:

trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
tags = tags/*:refs/tags/*
shelves = shelves/*:refs/shelves/*

所有从 SVN 移动的文件都应该如此。

现在我正在尝试了解如何将所有项目同时从 SVN 移动到 git。我假设前面提到的路径是我需要在 conf 文件中修改的部分。如果 SVN 项目看起来像这样:

http://lnx-server/svn/TestProject
http://lnx-server/svn/TestProject/TestProject1
http://lnx-server/svn/TestProject/TestProject1/branches
http://lnx-server/svn/TestProject/TestProject1/tags
http://lnx-server/svn/TestProject/TestProject1/trunk
http://lnx-server/svn/TestProject/TestProject2
http://lnx-server/svn/TestProject/TestProject2/branches
http://lnx-server/svn/TestProject/TestProject2/tags
http://lnx-server/svn/TestProject/TestProject2/trunk
http://lnx-server/svn/TestProject/TestProject3
http://lnx-server/svn/TestProject/TestProject3/branches
http://lnx-server/svn/TestProject/TestProject3/tags
http://lnx-server/svn/TestProject/TestProject3/trunk

我需要如何修改配置文件才能让 Subgit 正确理解它?

第二个问题:

我也面临单个项目安装的问题。尽管我设法将所有文件从 SVN 移动到 Git,但我无法将更改从一个文件同步到另一个文件。conf 文件中有“fetchInterval = 60”。那么 Subgit 应该在一分钟间隔内检查 SVN 的变化吗?当向 SVN 和 Git Sync 提交内容时……没有任何变化。

4

1 回答 1

1

SubGit 以每个项目为基础将 SVN 数据导入 Git,因此您在测试项目中采取的步骤应针对每个 SVN 项目单独重复。每个项目都应该被翻译成自己的 Git 存储库,并且每个项目都应该有自己的配置。这是一个指南,描述了将单个 SVN 项目转换为 Git 的步骤:

https://subgit.com/documentation/remote-book.html

这应该为您打算导入的每个项目执行 - 因此,您需要分别为 TestProject1、TestProject2 和 TestProject3 执行此操作。

实际上,“fetchInterval”设置表示 SubGit 检查 SVN 存储库以进行更改的频率。默认值为 60,即一分钟。当一些更改被推送到镜像的 Git 存储库时,它们会立即发送到 SVN。大多数情况下,如果更改没有从 Git 传播到 SVN 并返回到镜像存储库,这意味着存储库中的映射配置不正确,因此值得检查一下。但可能还有其他原因,所以最好在他们的论坛上询问 SubGit 支持。

于 2020-03-13T14:30:37.527 回答