如何设置subgit镜像一个看起来像Windows资源管理器层次结构的svn
作为
Windows用户,我们创建了一个带有文件夹层次结构的svn repo.底部节点包含svn标准布局:
ProjectA/ ApplicationOne/ ModuleX/ trunk/ branches/ tags/ ApplicationTwo/ ModuleY/ trunk/ branches/ tags/ ……等等无限期. repo现在包含大约100个带有trunk / branches / tags结构的真实svn项目,但它们几乎都不在顶层. 我如何配置subgit来处理这个? 解决方法
SubGit可以在两种不同的模式下工作:本地镜像模式和远程镜像模式.您可以在下面找到这些模式的一般概述以及针对您的特定情况的一些建议.
>本地镜像模式 在这种模式下,Subversion和Git存储库都驻留在同一主机上,因此SubGit可以对SVN和Git端进行本地访问. 下面我提供了基本说明.请在SubGit ‘Local Mode’ Book中找到详细的文档和常见陷阱. >配置 subgit configure <SVN_REPO> SubGit version <VERSION> build #<BUILD_NUMBER> Detecting paths eligible for translation... done. Subversion to Git mapping has been configured: /ProjectA/ApplicationOne/ModuleX : <SVN_REPO>/git/ProjectA/ApplicationOne/ModuleX.git /ProjectA/ApplicationTwo/ModuleY : <SVN_REPO>/git/ProjectA/ApplicationTwo/ModuleY.git ... CONFIGURATION SUCCESSFUL ... 此命令尝试自动检测存储库布局并在< SVN_REPO> /conf/subgit.conf中生成配置文件.如果像您这样的大型Subversion存储库可能需要一段时间. 请确保自动生成的配置文件如下所示,必要时进行调整: ... [git "ProjectA/ApplicationOne/ModuleX"] translationRoot = /ProjectA/ApplicationOne/ModuleX repository = git//ProjectA/ApplicationOne/ModuleX.git pathEncoding = UTF-8 trunk = trunk:refs/heads/master branches = branches/*:refs/heads/* shelves = shelves/*:refs/shelves/* tags = tags/*:refs/tags/* ... >作者映射 在此阶段,您必须创建/conf/authors.txt文件,将现有SVN用户名映射到Git作者.有关详细信息,请参阅documentation. 最后,您必须将Subversion存储库导入Git并通过运行subgit install命令启用同步: subgit install repo SubGit version <VERSION> build #<BUILD_NUMBER> Subversion to Git mapping has been found: /ProjectA/ApplicationOne/ModuleX : <SVN_REPO>/git/ProjectA/ApplicationOne/ModuleX.git /ProjectA/ApplicationTwo/ModuleY : <SVN_REPO>/git/ProjectA/ApplicationTwo/ModuleY.git ... Processing '/ProjectA/ApplicationOne/ModuleX' Translating Subversion revisions to Git commits... Processing '/ProjectA/ApplicationTwo/ModuleY' Translating Subversion revisions to Git commits... ... Subversion revisions translated: <REVISIONS_NUMBER>. Total time: <TIME_SPENT> seconds. INSTALLATION SUCCESSFUL > Git服务器 当安装结束并且启用Subversion和Git存储库之间的同步时,您可以设置一些Git服务器(或重用现有的Apache HTTP服务器).请参阅documentation,并在我们的博客中查看关于此主题的几篇帖子: > VisualSVN Server and SubGit >远程镜像模式 使用此模式时,必须仅将SubGit安装到Git存储库中,并使此存储库与托管在其他计算机上的远程Subversion服务器保持同步. 您可以在下面找到一些基本说明.有关详细信息,请参阅SubGit ‘Remote Mode’ Book. >配置 在远程镜像模式下,SubGit不会尝试自动检测存储库布局,因此您必须运行subgit configure –svn-url< SVN_URL> Subversion存储库中每个模块的命令: subgit configure --svn-url <SVN_ROOT_URL>/ProjectA/ApplicationOne/ModuleX <GIT_ROOT_DIR>/ProjectA/ApplicationOne/ModuleX.git SubGit version <VERSION> build #<BUILD_NUMBER> Configuring writable Git mirror of remote Subversion repository: Subversion repository URL : <SVN_ROOT_URL>/ProjectA/ApplicationOne/ModuleX Git repository location : <GIT_ROOT_DIR>/ProjectA/ApplicationOne/ModuleX.git CONFIGURATION SUCCESSFUL ... 因此,SubGit为每个Git存储库生成配置文件< GIT_REPO> / subgit / config.对于您的情况,此配置文件应如下所示: ... [svn] url = <SVN_ROOT_URL>/ProjectA/ApplicationOne/ModuleX trunk = trunk:refs/heads/master branches = branches/*:refs/heads/* tags = tags/*:refs/tags/* shelves = shelves/*:refs/shelves/* fetchInterval = 60 connectTimeout = 30 readTimeout = 60 keepGitCommitTime = false auth = default [auth "default"] passwords = subgit/passwd useDefaultSubversionConfigurationDirectory = false subversionConfigurationDirectory = <SVN_CONFIG_DIR> ... >作者映射 在此阶段,您必须创建/subgit/authors.txt文件,请参阅documentation. 如果您不使用file://协议,则必须提供必要的凭据,因此SubGit能够对Subversion服务器进行身份验证.有关详细信息,请阅读SubGit Book中的corresponding chapter. 我们还建议在Subversion端启用pre-revprop-change挂钩,这使得进一步的安装和维护更容易一些,见SubGit Book. 最后,您必须将Subversion存储库导入Git并通过运行subgit install命令启用同步: subgit install git SubGit version <VERSION> build #<BUILD_NUMBER> Translating Subversion revisions to Git commits... Subversion revisions translated: <REVISIONS_NUMBER>. Total time: <TIME_SPENT> seconds. INSTALLATION SUCCESSFUL 此命令还会启动后台进程,轮询SVN服务器并在其出现时获取新修订.基本上,这意味着SubGit为每个Git存储库使用专用进程.有时,避免运行此类进程并使用某些作业调度程序是有意义的. 我上面提供的那些链接也与远程模式相关. 但是,如果你打算使用Atlassian Stash进行Git托管,你可以使用基于SubGit引擎的SVN Mirror Plugin,并提供一些关于UI和维护的更好体验. 我们根据我们的经验制定了以下指南: >如果有许多独立的Subversion存储库,最好在本地镜像模式下使用SubGit,因为它不需要SVN轮询并为此维护其他进程. 在您的情况下运行100个后台进程绝对没有意义,相反,我们建议安装额外的提交后SVN挂钩,检查给定修订版修改了哪些特定模块,然后触发相应Git存储库的同步. 如果您有任何其他问题,请随时在Stack Overflow,our issue tracker或在线联系我们:support@subgit.com. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-phone-7 – 同时运行Windows Phone 7 Emulator的多
- Windows Server 2016 – 无法与一个特定用户进行RDP
- 为什么我不能从System.Object中提取ushort然后将其作为uint
- windows-server-2008 – 一个Active Directory,多个远程桌面
- mvvm – 有没有人知道ReactiveUI的ReactiveCommand的一个很
- tfs – Microsoft Scrum Process Template 2.1 vs 2.2
- 哪个是Windows并发tcp / ip连接的最大数量?
- 如何在Windows上打印git配置设置(core.autocrlf)的值?
- 如何检查我的程序是否由用户以管理员身份运行(Vista/Win7,C
- .net – 进程的I / O优先级如何增加?