SVN
下载
Apache Subversion Binary Packages
VisualSVN Server 服务端
- 仓库
- 用户
- 用户组
- 任务
迁移仓库「不包含用户、组信息」
迁移
SVN Server 重新安装【3.9.6及之前的版本没有人数限制】
- 停止SVN服务器
- 备份版本库文件夹,将文件夹压缩存放 【建议】
- 卸载 SVN Server
- 安装 SVN Server,指定仓库地址为原地址
D:\VisualServer\Repositories
【关键】 - 启动服务,测试
A服务器迁移至B服务器
svn服务器 重装系统后,VisualSVN Server迁移至新服务器_weixin_39922476的博客-CSDN博客
- 停止源SVN服务器 A
- 备份源版本库文件夹,将文件夹压缩存放
- 在目标服务器安装 SVN Server B
- 将备份好的文件复制至服务器B,将解压后覆盖至B服务器的Repositories文件夹。覆盖“authz”和“htpasswd”等文件
- 打开B上的VisualSVN Server Manager,在左侧的“Repositories”下显示了我们迁移过来的代码工程
- 服务器B启动svn服务
- 客户端 Relocate
备份
命令方式
1. 备份「最好先停止服务」
svnadmin dump
svnadmin hotcopy
1 | svnadmin hotcopy C:\Repositories\gmsdengzhou C:\Repositories\gms-backup.date |
2. 恢复「恢复不需要先建立库」
svnadmin dump
svnadmin hotcopy
1 | svnadmin hotcopy C:\Repositories\gms-backup.date C:\Repositories\gms_news |
窗口操作「推荐」
- 选择指定仓库,右键-Backup Repository
- 选择备份目录和文件名
- 下一步
- 是否加密备份文件,默认否
- Backup
恢复「推荐」
- 在根节点右键-Restore Repository
- 选择备份的文件
- 下一步
- 仓库名「默认不用修改」
- Restore
本地复制仓库
在 根节点右键-Import Existing Repository
Copy repository from another location「复制一份」
Source repository locations「从仓库中选择要复制的仓库」
Destination repository name 「给新仓库起一个名字」
Import 导入即可
修改组或用户信息
修改端口【重要】
更改svn服务端口号 - 戈丫汝 - 博客园 (cnblogs.com)
- 停止服务
- 右键 VisualSVN Server(Local) ,选择 properties network ,修改端口号
- 启动服务
- 客户端 Relocate 指定新端口地址
SVN 客户端
基础知识
如果文件或目录已经被其他人锁定 lock,可以在 Get lock 选项中勾选 steal the locks
SVN 的版本递增是针对整个仓库的,即使只更新了一个文件,那么,整体的版本也会加1
推荐使用目录树为
- /repos/trunk 产品或项目主线
- /repos/branches 分支
- /repos/tags 阶段性成果,例如版本 v1.0、 v1.1
SVN 的更新和提交是异步的,互不影响
.svn 目录是用来管理目录与服务器的同步情况和来管理工作copy的,
如果不小心删除了,可以把该目录内所有文件删掉,然后返回父目录,update锁定 Get lock 文件或文件夹,并且 unlock 随时可以解除
如果一旦提交了更新,那么所有的文件都将解锁,即使有部分文件可能还没有更新。
如果 commit 时,选择 keep locks,则文件还是被锁定。
借助 beyond compare 工具比对提交。
未 Add,如何删除
文件较少,直接删除即可
文件较多,不适合一个个删除
空白处右键-TortoiseSVN-Clean up…
Add 但未 Commit,如何删除
方法1
选中文件夹,右键 TortoiseSVN,Undo Add…
方法 2
选中文件夹,右键 TortoiseSVN,Clean up…, Revert all changes recursively
再选择文件或文件夹删除即可
方法 3「一般用于文件或文件夹已删除」
右键 TortoiseSVN,Revert…
导出提交日志
进入项目目录,右键-TortoiseSVN
Show log
指定开始和结束日期,From XXX To XXX。也可指定其它筛选条件
Show All
选中第一条,按住 Shift 选中最后一条,即可选中所有日志
右键,Copy to clipboard ,Full Data
新建 Txt 文件,粘贴内容
更改项目SVN服务地址
命令行
1 | 格式:svn switch --relocate old_svn_server_url new_svn_server_url |
客户端
右键- Relocate
经验
Can’t open file E:\Repositories(changshaldbltxn-current-lock’: 拒绝访问,
权限的问题
Repositories文件夹的属性->安全- 选中 Users - 编辑- Users 权限,允许所有,确定
全局忽略文件「已经去掉 *.so 」
1 | *.o *.lo *.la *.al .libs *.a *.pyc *.pyo __pycache__ *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db |
清除 svn 保存的账号密码信息
1 | TortoiseSVN-->settings——>Saved Data——>Clear |
idea svn 连接 https 报错问题: E230001: Server SSL certificate verification failed: certificate issued
1 | cmd 打开运行窗口,执行以下命令 |
so 文件 commit 无法提交「没有 add」
Settings——Subversion—— Global ignore pattern: 中删除 *.so
idea 使用 “svn” 到项目报错 Error:Cannot run program “svn” (in directory “E:\XXXXXX”):CreateProcess error=2
- 选中
TortoiseSVN-1.9.2.26806-x64-svn-1.9.2.msi
右键,安装-Modify-command line client tools - 重新打开 idea