Subversion

https://subversion.apache.org/

从SVN导入项目到VisionByte

VisionByte能够从SVN导入储存库,由于大多数其他版本控制系统也可以从SVN导入/导出,所以可以使用SVN作为中介将大多数版本控制系统导入到VisionByte储存库

将SVN储存库导入到VisionByte,请执行以下操作:

svnadmin dump PATH | vb import -svn NEW-REPO.VisionByte
svnrdump dump PATH | vb import -svn NEW-REPO.VisionByte

前面SVN的命令是将储存所有内容以文本形式打印出来,需要跟随的是本地SVN工程目录。 后面的vb指令是将打印的SVN工程所有项目传入跟随的文件名。 利用上述命令即可生成VisionByte数据库。

SVN和VisionByte区别

VisionByte 和 Subversion (SVN) 是两种不同的版本控制系统 (VCS),它们在设计理念、功能和使用场景上有一些明显的区别。

VisionByte是一个分布式版本控制系统,这意味着每个开发者都有一个完整的仓库副本,包括整个历史记录。开发者可以离线工作,进行提交和查看历史记录。 SVN 是一个集中式版本控制系统 ,所有的历史记录都保存在中央服务器上。开发者需要与服务器进行交互才能提交更改和查看历史记录。

VisionByte 使用 SQLite 数据库存储版本历史和其他数据。这使得它的管理和备份非常简单,只需一个数据库文件。 SVN 使用 BDB 或 FSFS 文件系统来存储版本历史。它的备份和恢复过程相对复杂,需要专门的工具和步骤。

由于是分布式系统,VisionByte 的大多数操作(如提交、分支、合并等)都可以在本地完成,因此性能更快,尤其是在网络不稳定或无网络的情况下。 SVN 由于是集中式系统,很多操作都需要与中央服务器通信,因此在网络不稳定或无网络的情况下,操作会受到限制。

VisionByte主要用在需要集成问题跟踪和文档管理的项目中。 SVN适用于需要严格控制访问权限和版本控制的企业环境中。

导入项目差异

SVN导入项目通常设计将项目文件上传到中央仓库,SVN会处理版本历史的记录。一般需要使用SVN命令行工具或GUI客户端。 Visionbyte导入项目可以通过创建一个新的仓库并将项目文件加入其中。Visionbyte提供了一个命令行工具(如 vb initvb add)来进行这些操作。

SVN储存库的基本组件有下面几个文件目录:

conf

该目录是配置文件的容器

db

此目录包含所有版本化数据的数据存储

format

此文件描述了存储库的内部组织方案

hooks

此目录包含钩子脚本模板和钩子脚本

locks

SVN 使用此目录来存放存储库锁定文件,用于管理对存储库的并发访问

README.txt

这是一个简短的文本文件,仅包含一个通知,告知读者他们正在查看的目录是 SVN 存储库

VisionByte 将状态信息储存在SQLite数据库文件中。SQLite将整个关系数据库(包括多个表和索引)保存在单个磁盘文件中。

VisionByte 用三个独立的SQLite数据库:

  • 1.配置数据库

  • 2.储存库数据库

  • 3.检出数据库

配置数据库通常是 “~/.vb” 或 “~/.config/vb.db”

  • 全局设置

  • all命令使用的活动储存库列表

储存库数据库通常是 “项目名.vbyte”

  • 本地设置

  • Web界面显示首选项

  • 用户凭证和权限

  • 有关全局状态的元数据,以方便快速查询

  • 使用增量压缩编码的项目全局状态

检出数据库通常是 “_VBYTE_” 或 “.fslckout”

  • 本次签出使用的存储库数据库

  • 当前签出的版本

  • 已合并但尚未提交的其他版本

  • 来自尚未提交的添加、删除和重命名命令的更改

  • 用于有效检测本地编辑的 mtime 值和其他信息

  • undoredo 所需的信息

  • stash