在gna.org上的GRUB4DOS页面:
https://gna.org/projects/grub4dos/
用户使用的简单介绍:
1、用web界面浏览代码
直接使用以下的网址:
http://svn.gna.org/viewcvs/grub4dos/trunk/
下载空间:
http://download.gna.org/grub4dos/
以后GRUB4DOS编译版本可能会上传到这里。
2、匿名下载最新代码
svn co svn://svn.gna.org/svn/grub4dos/trunk grub4dos
或
svn co
http://svn.gna.org/svn/grub4dos/trunk grub4dos
下载旧版本:
svn co svn://svn.gna.org/svn/grub4dos/tags/grub-0.97 grub4dos
这是原始版本grub-0.97
svn co svn://svn.gna.org/svn/grub4dos/tags/grub4dos-0.4.2 grub4dos
这是grub4dos 0.4.2正式版
3. 邮件列表
相应于svn有一个邮件列表,可以在以下网址订阅:
https://mail.gna.org/listinfo/grub4dos-commits/
填好你的邮箱地址,和任选一个密码后,便可按subscribe订阅
订阅了该邮件列表后,每当svn有新的版本commit时,都会以邮件的形式通知你。
开发者使用简单介绍:
gna.org上关于项目管理的文档在这里:
https://gna.org/cookbook/?group=grub4dos
1、开发者访问代码
1) 运行ssh-keygen -t rsa,生成私匙和公匙
该命令生成 ~/.ssh/id_rsa和~/.ssh/id_rsa.pub文件,前者私匙,后者是公匙
该命令还提示你输入密码pass phrase,在以下的svn中,在提示输入pass phrase时使用
假如你觉得每次输入密码麻烦,可以不设密码,也可以使用ssh-agent:
ssh-agent $SHELL
ssh-add ~/.ssh/id_rsa
ssh-agent命令调用一个新的shell,在其中运行ssh的私匙由ssh agent控制。
ssh-add把私匙加入ssh agent,命令中要求输入pass phrase,正确输入后,以后的svn就不再需要输入了
2) 登陆到gna.org,在左边工具栏点"My Account Conf",然后点"Edit the 1 SSH Public Key
registered", 然后用编辑器打开~/.ssh/id_rsa.pub,把里面的内容(是很长的一行)拷贝到
Key #1里,然后点"Update"。注意:在修改了公匙后,需要一定的时间才能生效,在最坏的情况下,
等待时间是3个小时。
3) 用以下的命令获得代码:
svn checkout svn+ssh://<membername>@svn.gna.org/svn/grub4dos/trunk grub4dos
<membername>是你在gna.org的用户名
2. 上传文件到下载空间
rsync --delete -avr --rsh="ssh" . <membername>@download.gna.org:/upload/grub4dos
或者
scp filename <membername>@download.gna.org:/upload/grub4dos/
ssh的配置和1中是一样的
3、svn使用简单介绍
详细使用手册在这里:
英文版:
http://svnbook.red-bean.com/en/1.2/
中文版:
http://svnbook.subversion.org.cn/1.2/index.html
你也可使用
svn help commnd
来获得command命令的帮助信息
常用的命令简单介绍如下:
1) 导出/提交代码
导出代码用:
svn co svn+ssh://<membername>@svn.gna.org/svn/grub4dos/trunk grub4dos
该命令下载最新的GRUB4DOS代码到grub4dos目录下,grub4dos便是当前的工作目录。
修改代码后,用
svn commit
命令便可提交。
提交时需要为当前提交的代码写简单的介绍,有三种方法:
a)用--message 或 -m, 在命令行里直接指定,如:
svn commit -m "This is a new version"
b)用--file 或 -F, 介绍在外部文件中:
svn commit -F commit_text
c)如果不使用以上的参数,在提交前会调用编辑器,在里面可临时添加信息
2) 使本地文件和服务器上的同步
svn update
3) 察看工作目录的修改状态
svn status
该命令会显示当前的工作目录文件的状态。
? 该文件不在代码控制范围内
A 该文件是新加文件
M 该文件以修改
? 开始的文件是不在代码控制范围内的文件,它有可能是程序运行中生成的中间文件(如*.o等),
也可能是在本版本中新加的文件。对于第一种情况,不需要理会,因为它们在commit时不会被处理。
对于第二种情况,需要用svn add命令把它加入代码控制系统中。这时如果再运行svn status,会发现
该文件的状态从? 改为 A, 在下一次commit,该文件将会被添加到服务器上。
4) 察看修改纪录
svn log
该命令可以加一个参数--revision或-r,用来指定显示的版本:
svn log -r 5:8
显示版本5和版本8之间的修改纪录。
-r的参数除了使用数字外,还可以使用关键字:
HEAD: 系统最新的版本号
BASE: 目录/文件建立时的版本号
COMMITTED:目录/文件最新修改的版本号
PREV:目录/文件对上一次修改的版本号,即COMMITTED-1
也可以使用日期或时间作为版本号的参数,如
{2007-03-03} {15:30} {"2007-03-03 15:30"} {20070303T1530} 等等
例子:
svn log -r PREV:COMMITTED
显示最近一次修改的纪录
svn log -r "{2007-03-03}":"{2007-03-04}"
显示从 2007-03-03 到 2007-03-04 的修改纪录
5) 生成补丁
svn diff > patch.diff
生成当前工作目录代码自checkout以来所作的修改的补丁
svn diff -r 5 > patch.diff
生成当前工作目录代码相对于版本5的补丁,版本5其实就是grub-0.97
svn diff --old=svn://svn.gna.org/svn/grub4dos/tags/grub-0.97 --new=svn://svn.gna.org/svn/grub4dos/trunk > patch.diff
生成服务器上最新版本相对于grub-0.97的补丁