试图了解一些事情。我在我的服务器上创建了一个d:\ svn \ repository。我提交了文件夹,但是当我回到d:\ svn \ repository时,我看不到它们。它们都在数据库中吗?我的所有存储库都会进入该主文件夹并且svn会跟踪它们吗?如果我有两个项目怎么办?
谢谢。
答案 0 :(得分:4)
Subversion不会将逻辑文件夹存储在服务器上的相同结构中,它会跟踪“数据库”中增量文件中的所有内容。此数据库特定于Subversion。提交到该存储库的所有内容都包含在该文件中。您将无法在服务器上找到您的逻辑结构,它只是不起作用。
来自FSFS
2004年中期,第二种类型 存储库存储系统问世 存在:一个不使用的 数据库。 FSFS存储库 将修订树存储在一个单独的中 文件,以及所有的存储库 修订可以在一个单一的 子目录中包含编号的文件。 交易是分开创建的 子目录。完成后,a 创建单个事务文件 因此,移动到修订目录 保证提交是原子的。 因为修订文件是 永恒不变的 存储库也可以备份 “热”,就像伯克利数据库一样 库中。
修订文件格式代表一个 revision的目录结构,文件 内容和对文件的增量 其他修订树。不像 Berkeley DB数据库,这个存储 格式是可移植的不同 操作系统并不敏感 到CPU架构。因为有 没有日记或共享内存文件 正在使用,存储库可以 通过网络安全访问 文件系统并以只读方式进行检查 环境。缺乏数据库 开销也意味着整体 存储库大小稍微小一些。
FSFS具有不同的性能 特征也是。提交时 目录中包含大量文件, FSFS使用O(N)算法追加 条目,而伯克利数据库使用 O(N ^ 2)算法重写整体 目录。另一方面,FSFS 将最新版本的文件写为 针对早期版本的delta, 这意味着检查出来 最新的树有点慢 获取存储在a中的全文 Berkeley DB HEAD修订版。 FSFS也 最终确定时有较长的延迟 提交,这可能在极端情况下 导致客户在等待时超时 作出回应。
最重要的区别, 然而,FSFS是无法做到的 出现问题时“楔入”。如果 使用Berkeley DB数据库的过程 遇到权限问题或 突然崩溃,数据库离开了 在管理员之前无法使用 恢复它。如果是相同的场景 发生在使用FSFS的进程中 存储库,存储库不是 受到影响。最糟糕的是,一些 交易数据被遗忘。