使用subversion创建新存储库的正常工作流程是创建一个新的存储库,检查存储库根目录,创建我的分支标记和主干文件夹,并在主干中放置我的初始文件。然后我提交这个“初始导入”,从我的硬盘驱动器中删除签出的回购并执行检查中继。然后我就可以开始工作了。
然而,当处理大量导入时,想想数百个megs,以及异地版本控制托管(基于http)这个初始导入可能需要相当长的时间来提交。更糟糕的是,在提交后我需要重新检查这个巨大的行李箱。
有没有办法让subversion使用trunk的本地副本而不再对已经存在的数据进行检查?
答案 0 :(得分:12)
有 - 它被称为“就地导入”,它在Subversion FAQ中有所介绍:
http://subversion.tigris.org/faq.html#in-place-import
您真正在做的是在存储库中创建一个新的空项目,检查空项目您的本地文件夹 - 将您的文件夹转换为工作副本 - 然后将所有(现有)文件添加到'空'project,所以当你进行svn提交时,它们会被添加到存储库中。
答案 1 :(得分:3)
我同意“就地导入”程序,并使用TTB结构的脚本(两者都赞成)。
只是一个小提示:
如果使用http(s),则不应在单次提交中导入巨大(数十万)个文件,因为显示版本历史记录的时间按比例缩放添加条目的数量。出现这种情况的原因是apache必须再次对svnaccess文件中的所有添加路径进行身份验证(当然,仅当您启用了基于路径的授权时)。这可能会导致您的存储库无法使用,因为所有文件都必须在svn日志中等待这个大转速。
您应该在目录级别划分巨额导入
答案 2 :(得分:1)
我通常使用“svn mkdir”在创建存储库后立即在服务器上直接创建trunk / tags / branches。然后我可以查看空主干,将我的初始文件移动到该目录,添加并提交它们,然后开始工作。
答案 3 :(得分:1)
svn checkout --force允许您检查现有路径上的工作副本。它会保留旧文件并添加仅存储在您的存储库中的文件。
用于创建存储库:您可以使用大多数Subversion发行版中提供的“svnmucc”命令(例如SlikSVN)在单个提交中对存储库执行多个mkdir命令。
在没有参数的情况下键入svnmucc以获得一些帮助。
答案 4 :(得分:0)
如果您已签出单个文件夹,请将文件复制到其中,然后运行svn add
和svn commit
;您不需要删除文件并重新签出。
使用这些文件:一旦他们按照你的描述提交,他们就可以开始工作了。