svn记录
1. 下载
官方网址(apache svn):
https://subversion.apache.org/packages.html
下载tortoise svn,然后安装的时候记得把命令行svn也选择安装。这样就可以同时又图形化界面和基础的svn了,并且版本匹配。因为本来是分开下载的,出现的tortoiseSVN创建的库,svn.exe无法访问的情况。
2. 使用自己的语言进行描述
- svn管理与git这种分布式不同的是,集中服务器式的开发。相对操作流程逻辑更为简单,因为只要管理本地状态和服务器状态两个状态,服务器可以利用分支产生其他状态,觉得合适以后,本地切回主状态,然后把分支合并到本地,最后做一遍提交就行。
- 需要注意的是,这类版本管理,在服务器的文件里面,不应该存在配置项文件和构建结果之类的。因为这些东西每个用户都会有自己的不同之处,导致版本管理混乱,具体体现为,你构建完一般都会和版本库的有点不同,然后每次都要提交很久,每次一堆更改项,要找到实际应该更改过的地方也会比较麻烦。
- 总之!服务器版本要干净一点。然后就是,切换分支的时候,要先提交,不然就会出现冲突。解决冲突是我目前觉得最麻烦的一件事情。
- 2023年11月14日:一段时间的使用后,其实使用ide自带的图形化版本控制插件就行,没必要非要强求指令操作,但必须有所了解。
3. 出现的问题和解决
svn删除本地文件失败:权限不足
先进入文件夹删除.svn文件,然后出去就可以删除了。
本地仓库测试用时,本地idea的连接失败
本以为是因为密码配置问题,看了半天,后面查看报错,发现是因为本地svn版本和stortoiseSVN版本不符合导致连接失败。
解决方式:删除原本自己下的svn,重新下载tortoiseSVN的命令行部分。
svn环境变量添加失败
血痛教训,windows环境变量的结尾不要自作聪明加;
svn ignore相关
值得注意的是,svn的忽略信息是会被纳入版本管理的,意思就是,你加入新的忽略项后,这个更改会被识别并且需要提交到服务器中。
svn propedit相关
在 Windows 上,你可以编辑 C:\Users<用户名>\AppData\Roaming\Subversion\config 文件,并将以下行添加到文件中
editor-cmd = notepad
合并分支到主干相关
流程:切换到合成目的分支(如trunk)->将branch分支合并过来->处理冲突->提交
ps.要注意的是,切换分支前要进行提交,否则修改会被继承过去。可以使用强制切换分支来覆盖原有修改。
出现了其他写作人员创建版本库时提交本地编译文件,然后我删除没和对方沟通,导致迭代多个版本后对方大量冲突解决不方便
进行大的修改时要和涉及人员进行沟通,不要一个人咣咣下手。
提交规范
基础格式
type:subject
type:
★feat:新功能(feature)
★fix:修补 Bug
docs:文档(documentation)
style:格式(不影响代码运行的变动)
★refactor:重构(即不是新增功能,也不是修改 bug 的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
4. svn命令行常用指令
设置忽略规则:
-
设置 svn:ignore 属性:用于在特定目录中设置忽略规则。
directory_path用.代表当前目录;用**开头能够递归目录,也可以使用*作为通配符
svn propset svn:ignore "file_or_directory_to_ignore" directory_path
-
查看 svn:ignore 属性:用于查看特定目录的忽略规则。
svn propget svn:ignore directory_path
-
编辑 svn:ignore 属性:用文本编辑器手动编辑 svn:ignore 属性。
svn propedit svn:ignore directory_path
分支相关:
- 创建分支:用于创建一个新的分支。
svn copy source_url destination_url -m "Create branch"
- 合并分支到主干:用于将一个分支合并到主干。
svn merge source_url destination_url svn commit -m "Merge branch into trunk"
- 查看分支列表:用于查看仓库中的分支列表。
svn list repository_url/branches
- 切换到分支:用于切换工作副本到一个分支。
ps.要注意的是,切换分支前要进行提交,否则修改会被继承过去。可以使用强制切换分支来覆盖原有修改。
svn switch branch_url
常用 SVN 操作:
- 检出仓库:用于从仓库中检出一个工作副本。
svn checkout repository_url
- 提交更改:用于提交工作副本中的更改到仓库。
svn commit -m "Commit message"
- 更新工作副本:用于将仓库中的最新更改更新到工作副本。
svn update
- 查看日志:用于查看提交日志。
svn log
add相关
-
添加文件:
svn add file.txt
这将添加名为 file.txt 的文件到版本控制中。文件现在处于 "待添加" 状态。 -
递归添加目录:
svn add directory/
这将递归地添加一个名为 directory 的目录及其内容到版本控制中。目录和其内容都处于 "待添加" 状态。 -
显示待添加文件和目录:
svn status
使用 svn status 命令可以查看当前目录下的待添加文件和目录。它们会以 "?" 标记。 -
添加所有待添加的文件和目录:
svn add --force .
使用 svn add --force . 命令可以一次性添加所有待添加的文件和目录。这会递归地将所有文件和目录添加到版本控制中。 -
添加文件并指定特定的MIME类型:
svn add --mime-type text/html file.html
你可以使用 --mime-type 选项来指定文件的 MIME 类型。 -
取消添加:
如果你添加了一个文件或目录,但后来决定不希望将其纳入版本控制,可以使用 svn revert 命令来取消添加。
svn revert file.txt
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?