我们考虑从SVN迁移到Git,并且由于trac支持两者,我们可以只更改存储库的地址以使用Git吗?我找到的所有文档都在两个SVN实例之间。
如果不是那么简单,从wiki和门票迁移数据需要哪些步骤?我找到了一个脚本,用于将票证中的引用更改为Git的哈希值,但是在我猜之后会出现。
提前致谢
答案 0 :(得分:4)
是的,您可以将Trac连接到Git存储库而无需重新创建环境。将存储库添加到现有环境是一种常见操作,如果使用Trac 0.12或更高版本,Trac支持多个存储库。我假设您使用的是Trac 0.12或更高版本。
如果您使用的是Trac 0.12或更高版本,并且已经通过trac.ini的[repositories]
部分或使用存储库管理页面/admin/versioncontrol/repository
定义了存储库配置,则只需修改配置即可更改存储库path
和type
。确保您已在trac.ini的[components]
部分启用了可选的Git连接器:tracopt.versioncontrol.git.* = enabled
。
但是,如果您之前使用的是Trac版本< 0.12,可能会更复杂。在Trac 0.12之前,仅支持单个存储库,并在[trac] repository_dir
选项中指定了该存储库。如果您的配置仍使用此选项,则应更新配置以使用trac.ini的[repositories]
部分。如果升级到Trac 1.2或更高版本,则执行trac-admin
升级命令以升级环境时会自动执行此操作(请参阅TracUpgrade)。
[repositories]
部分中的存储库使用语法name.attribute = value
定义。 name
是您为存储库提供的任何名称。如果省略该名称,那么您将引用默认存储库(语法为.attribute = value
)。所需属性为path
和type
(技术上可能不需要类型,因为还有一个"默认类型",但为简单起见,假设它是必需的。)
如果您的旧配置如下所示:
[trac]
repository_dir = /path/to/repo/1
repository_type = svn
您的新配置将是:
[repositories]
.dir = /path/to/svn/repo
.type = svn
如果您的SVN存储库已不再连接到Trac,则可以将type
更改为git
。但是,常见的情况是将旧的SVN存储库连接到Trac,以便存储库的TracLinks继续运行(例如,[1]
或r1
等变更集链接),并添加第二个存储库。在这种情况下,您的配置可能是:
[repositories]
.dir = /path/to/svn/repo
.type = svn
git-repo.dir = /path/to/git/repo
git-repo.type = git
用于引用多存储库环境中的命名存储库的TracLinks语法与引用默认存储库的语法不同。请参阅示例here。
替代trac.ini的[repositories]
部分,您可以通过存储库管理页面(admin/versioncontrol/repository
)配置存储库。
可以在TracRepositoryAdmin页面找到更多信息。