近期换服务器,要将svn数据迁移。原来是linux系统上的svn服务器,新的服务器为windows2008 server,便使用了免费的VisualSVN,简单方便,重要的是使用视图操作,直观易懂。但是在数据迁移上,在网上搜索了半天都没有现成的例子可借鉴,便自己手动尝试。
在linux上也是目录结构,先把项目的整个目录拷过来,如repository目录下的项目project1的全部文件,只要文件没有漏,而且拷的过程中没有对这个目录做提交操作,那把整个目录拷到VisualSVN的Repositories目录下后,在主界面的左侧菜单栏Repositories右键刷新就可以看到原来项目的数据已经迁移过来了。在项目名称右键选Browse,就可以在浏览器上查看该目录的内容。当然,新的库要先创建用户,用该用户的验证信息登录就可以看到新的项目数据了。
这期间出了个问题,刷新项目后点击提示版本XXXX找不到,无法打开!开始以为是拷文件的时候漏了,后来想到,既然提示是版本找不到,是不是某个地方记录了版本信息,而那个版本对应的文件没有呢?循着这个思路,去项目目录下查找,果然找到了版本的数据文件,在project1\db\revs目录下,按照版本号的第一个数据组织,我提示的是缺少版本9383,就到9的文件夹下查找,果然没有9383的文件!而在project1\db\revprops\9\目录下,也没有该文件。那么,哪里加载最新的版本信息呢?返回到db目录下,有个recent的文件,用记事本打开,里面只有一条数据,就是9383!把这个改成较早的最后的版本号,重新刷新项目,可以打开了!那个开心啊:)回到原来的服务器上查看日志,原来在拷文件的期间,由于项目比较大,费了不少时间,而这期间居然有人提交了代码!导致部分数据不一致,因而迁移到新服务器上时打不开!因此在迁移数据期间不能对该项目有任何操作。
导完数据,到用户和权限数据了。在linux下,储存用户的文件名为svn_auth_file,而在VisualSVN的根目录Repositories下,保存用户信息的文件为htpasswd,数据的组织方式是一致的,都是每个用户一行,用名值对的方式保存,如zz=xxxxxxx,这就好办,直接拷过来就行了。然后在visualSVN的菜单users下刷新就可以看到导入的用户了。不过这样有个问题,可能是不同系统下密码的加密方式不一样还是其他原因,有的原来的密码不行了-_-!只要重设,好在visualSVN好操作,右键用户名set password就行了。
权限数据更重要,哪个目录对哪个用户开放了什么权限,要是重设是个繁琐耗时的工作,即使在视图操作的方式下。而在linux下,用一个文件svn_access_file就储存了所有的信息,visualSVN下没找到类似的文件。于是先在visualSVN下给某个用户开放某个目录的权限,看看哪个文件改变了。通过这个操作,发现conf目录下有个VisualSVN-SvnAuthz.ini的文件,记录了该项目下各目录的权限分配信息,只是方式有所不同,原来linux下是指明哪个项目的,所有目录前有project1:这样的信息,现在只针对本目录,就去掉了项目名,把linux下关于该目录的所有信息拷到这个ini文件中,去掉项目名,保存,然后测试,发现是可以的!虽然该文件提示不要手动变更,但是改了一样可以:)
这样把几个项目以同样的方式迁移,测试都可以使用了。
分享到:
相关推荐
在软件开发过程中,经常会出现需要将Subversion(SVN)版本库从一个服务器迁移到另一个服务器的情况。这种迁移可能是因为硬件升级、服务器搬迁或是为了提高性能等原因。为了确保迁移过程中的数据完整性和连续性,...
11. **备份和迁移**:通过`svnadmin dump`和`svnadmin load`可以备份和恢复SVN仓库,`svndumpfilter`用于过滤和转换备份数据。 12. **版本库权限控制**:通过设置`svn:ignore`属性可以忽略某些文件或目录不纳入版本...
- **Windows**:在Windows上,可以使用VisualSVN Server,它提供了一个易于使用的图形界面来管理SVN服务器。 - **Linux/Unix**:通常使用包管理器(如`apt`或`yum`)来安装SVN服务器和Apache。首先,安装...
1. **安装与配置**: 学习如何在不同的操作系统上(如Windows、Linux、Mac OS)安装 SVN 客户端和服务器端,以及如何配置客户端连接到 SVN 仓库。 2. **基本操作**: 包括创建新项目、检出(Checkout)、提交(Commit...
1. **迁移至其他版本控制系统**:如果团队决定从SVN迁移到Git等其他版本控制系统,清理`.svn`文件可以避免遗留的SVN信息干扰新的版本控制流程。 2. **节省磁盘空间**:`.svn`文件虽然不占用大量空间,但如果你有...
安装过程简单直观,完成后会在Windows资源管理器右键菜单中添加SVN相关功能。 - **与Visual Studio集成**: - 安装VisualSVN Server并完成相应配置。 - 在Visual Studio中安装SVN插件,以便在IDE内直接进行版本...
12. **跨平台**: SVN不仅支持Windows,还支持Linux、macOS等操作系统,具有良好的跨平台性。 总之,"SVN 代码管理插件"提供了高效、稳定的代码版本控制方案,对于团队协作开发来说,是不可或缺的工具。Slik-...
8. **多种操作系统支持**:Smart SVN适用于Windows、macOS和Linux等不同平台,满足跨平台开发需求。 9. **导入导出**:它支持导入和导出SVN仓库,这对于迁移版本控制系统或者备份数据非常有用。 10. **许可证管理*...
8. **版本升级**:从较旧的SVN版本升级到1.14.3时,需要注意兼容性和迁移策略。升级前应备份现有仓库,并确保所有团队成员了解新版本的特性和变化。 9. **安全特性**:SVN 1.14.3可能包含了安全性增强,例如改进的...
这部分涉及到如何将Windows环境下的SVN数据迁移到Linux环境下。具体操作包括导出Windows上的SVN仓库、在Linux上创建新的仓库并导入数据等。 #### 五、附录 **5.1 Subversion中BDB和FSFS两种格式的比较** - **BDB*...
8. 数据备份与迁移:如何备份SVN仓库,以及在需要时将数据迁移到新的服务器。 9. 安全性与权限管理:设置用户权限,保护代码安全,防止未授权访问。 10. 故障排查与优化:遇到问题时的诊断方法,以及提高SVN性能的...
总的来说,"删除SVN源代码管理"涉及到一系列步骤,包括服务器端仓库的删除、本地工作副本的清理以及可能的版本控制系统迁移。这是一项涉及团队协作流程的重要操作,需要谨慎对待。通过理解和执行这些步骤,你可以...
- 如果需要迁移到新的服务器,可以使用`svnadmin dump`和`svnadmin load`进行数据迁移。 综上所述,SVN配置涉及多个层面,包括服务器安装、仓库创建、用户权限管理、客户端配置、日常操作以及高级特性如分支管理和...
《将SVN代码迁移到Git的详细步骤》 在软件开发过程中,版本控制系统扮演着至关重要的角色,SVN...总之,从SVN迁移到Git虽然涉及到多个步骤,但遵循这些步骤可以确保迁移的顺利进行,同时保留完整的版本历史。
### 清除所有.svn目录 #### 知识点概览 - SVN(Subversion)是一种集中式的版本控制系统,广泛应用...这些技巧对于维护项目目录结构的整洁非常有用,特别是在切换版本控制系统(如从SVN迁移到Git)或进行代码审查时。
常见的SVN客户端有TortoiseSVN(Windows)、SmartSVN(跨平台)、SVN Command Line工具等。TortoiseSVN以Windows资源管理器的右键菜单集成著称,方便直观;SmartSVN提供了更丰富的图形界面和高级功能;命令行工具则...
随着项目的推进,Subversion逐渐成为了开源社区中最受欢迎的版本控制系统之一,许多互联网上的版本控制服务从CVS迁移至Subversion。 #### 1.2 SVN的特点 SVN相较于CVS等早期版本控制系统,具有以下显著特点: - *...
- Linux 和 macOS:通常通过包管理器(如 apt-get 或 brew)安装 SVN,例如 `sudo apt-get install subversion` 或 `brew install subversion`。 2. **配置**: - 创建 SVN 仓库:使用 `svnadmin create` 命令...