近期有个项目结项,要把代码文档之类的都传到SVN上面。。。虽然之前用过,但是没比较系统的看过,这里总结一下
1. SVN
1.1. SVN安装
下载链接:https://tortoisesvn.net/downloads.html
然后双击安装就行
1.2.SVN基本用法
参考菜鸟教程:TortoiseSVN 使用教程
1.2.1. 查看已有的SVN项目
在文件管理器里,随便找个地方右击:
然后在弹出的对话框中输入对应的svn地址:
然后就会弹出项目文件夹页面了
1.2.2. 导出到本地
2. gerrit
粗略搜索了一下,这个东西似乎和git是一个东西???
已知的一个用法是:
git clone http://XXXXXX/XXXXX
# 和git的用法似乎一样
gerrit是可以自己搭建的一套代码审核环境,可以自己配置ip然后以网页形式登录。在允许内的局域网中,浏览器输入http://1192.168.1.100:81/
然后就会进入一个登录界面
很简陋的界面。。。
点击sign in进行登录,然后就可以看到一些内容了。。。 从那个博客可以看出来,这个东西不太好用,而且已经快被淘汰了。。。都去用gitlab了。
盗用那个博客的一张图
大意就是不同的角色有不同的权限,普通成员没有push权限,只能进行review,上传代码,审核人员通过之后,才会真正提交到代码仓库中。
2.1 基本用法
2.1.1 git clone 把代码拉下来
gerrit是一个结合了git的网页代码管理服务,所以不需要安装,只需要访问,有权限就可以。
当访问有权限的gerrit内容时,比如clone某个项目时,会要求你输入用户名和密码,注意,此时的密码并不是登录密码,而是在登录后的系统中动态产生/分配的一个密码。

git clone http://XXXXXX/XXXXX
git clone ssh://XXX
# 这样才会有一个hook文件夹,才可以有change id
用这个产生代码密码去访问项目代码进行pull或者push。
2.1.2 把代码传上去
在进行git clone之后,本地文件夹中应该已经可以看到.git
这个文件夹了。
然后把自己要上传的东西放到与.git
同级文件夹下,准备工作就做好了,然后就开始上传。
基本还是参考:【Gerrit】Gerrit工作流程及使用手册这个博客的提交
部分
直接上代码:
- 添加要上传的文件
git add .
## (添加所有文件)
- 修改提交者的提交者的名称和email,如果直接提交会报错:
用户名和邮箱信息可以在网站里看到,类似:
$ git config user.name test3
$ git config user.email [email protected]
后期发现自己使用了–global参数,导致出现了一些错误。。。所以想要取消global参数,参考git 删除全局配置
git config -l/--list
# 查看全局配置文件
git config --global --unset user.name
# 重置某个配置项
- 配置好用户名和邮箱后,再去上传就可以了
参考Git commit 常见用法
git commit -m
输入这个命令后,其实进入了一个vim的命令行中,提示你在没有#
出现的行里输入这次commit的描述,然后使用vim的语法 esc
,:wq
保存退出,就可以看到类似:(其中,basic-commit就是我们自己输入的对这次commit的描述性信息。)
但是上传后并没有在网页中看到任何更新信息,应该是还没有搞好
- 关于change-id
参考:
-
网址后面加上
/tools/hooks/commit-msg
浏览器里输入这个网址,然后就会弹出下载保存文件的文件管理器了。- http://10.200.43.166:8080//tools/hooks/commit-msg
-
把下载好的文件放到
.git/hook
文件夹里,其实hook文件夹里已经有一个commit-msg.sample
文件了,不过这个文件的内容太简陋了,还是下载一个放进去吧。 -
添加后,每次执行git commit 都会自动在log里面生成 Change-Id,用于gerrit code review。
注意:不能是global,应该是一个个人名称和邮箱(自己分配到的账户)
-
直接push,也弹出框让你输入用户名和密码,然后报个错。。
正确做法:
git config remote.origin.push refs/heads/*:refs/for/*
# 这行命令的意思是,当执行push命令时,将会推送到refs/for/当前head所在的分支上。
配置了上句之后,再去push,还是要输入用户名密码,然后又拒绝。。但是报错信息不一样,不是说change-id错误。 这个错误是因为当时在配置用户名和邮箱时使用了global参数,需要重置,然后就不会出现这个问题了
重置之后再去push,还是报错没权限,
参考如何用Gerrit进行评审
git push origin HEAD:refs/for/master
就对了,然后可以在网页上看到相应的进行中的reviews。ok
2.1.3 更新上传的代码
git config user.name huangs
git config user.email [email protected]
git add XXX(需要修改的文件)
git commit -m "这次提交的描述性文字"
git push origin HEAD:refs/for/master
# push的时候会要求填写用户名和密码
# 然后再去网页上看就可以看到 这次更新的提交了