免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1245 | 回复: 0
打印 上一主题 下一主题

linux学习杂记_编程风格_diff_patch_svn [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-09 13:02 |只看该作者 |倒序浏览
两大风格:
GNU编程风格->http://www.gnu.org/prep/standards/    要点:
函数开头的左花括号在最左边,其他的左括号避免放到最左边;
函数名的起始字符也要在最左边;
每个程序开头都要有一段注释说明其功能;
函数的注释:功能,参数类型,含义,返回值;
while,if尽量带上括号;
避免在if中赋值;
结构的声明和typedef,结构变量定义尽可能不放一起;
全局变量要注释;
全局变量和函数,避免采用简单的名字,小写字母加下划线构成;
局部变量命名要简短;
kernel编程风格->   要点:
缩进格式是tab,缺省是8字符;
函数长度不应超过2屏(24*2);函数局部变量不应超过10个;
将开始的大括号放在一行的最后,函数定义除外;
结束的大括号通常单独位于一行,下列情况除外:
do {
}while();
if () {
}else if () {
}else{
}
indent工具:
indent -gnu style.c -o style_gnu.c                    //变成gnu风格
indent -kr -i8 style.c -o style_kernel.c            //变成内核风格
diff:
输出格式:nomal格式,    -c上下输出格式,    -y并排输出格式,    -u统一输出格式
diff file1 file2    的输出:
表示第二个文件file2
? file1要如何变成file2呢:
ndm    表示file1的n行删除,后面的部分加到file2的m行后面;
ncm    表示file1的n行改成file2的m行那样;
nam    表示file1的n行后面的部分添加到file2的m行后面;
上下输出格式说明:
-    file1需要删除的
!    file1需要更改的
+    file1需要添加的
统一输出格式说明:
-    file1中需要删除的
+    file1中需要添加的
@@ -n,m +p,q  @@
该比较块中,file1从n行开始,共m行,file2从p行开始,共q行;
一些选项:
-q    only report whether differ
-b    ignore space change,but can detect the difference of no space to have space
-w    ignore all spaces
-B    ignore blank lines
-r    enter subdir to diff
常用的命令格式:
diff -urN dir1 dir2  > dir.patch    产生patch的diff应采用统一格式u选项;
diff3 [option] file_chg1 file_org file_chg2 > newfile
将前后2个文件与当中的原始文件比较,输出结果.
-m选项可以合并文件,对于同一处的不同修改则报告冲突,显示为:>>>
patch [options]  hello.patch
patch -p0  doc.patch
rm doc2 -rf
patch -p0 subversion
产生背景->lock-modify-unlock机制的弊病:
无法并行开发;如果修改同一文件的不同部分,不需要加锁;如果2人同时修改2个依赖的文件,则不可同步了.
svn采用copy-modify-merge机制
安装:sudo aptitude install subversion
创建respository:
svnadmin create ~/respos
启动网络服务器:
svnserve -d            以daemon的方式启动服务,默认端口3690,不需要root权限
修改配置文件:
vi ~/respos/conf/svnserve.conf
[gerneral]
password-db = passwd    表示用户帐号文件是~/respos/conf/passwd
vi ~/respos/conf/passwd
[users]
harry = harrysecret            注意都要顶格写,行首不空;
marry = marrysecret
导入项目文件:
svn import project_dir
...enter nano, input some description word, ^o save, ^x quit.
password for 'PC_user':
username: 'SVN_user'
password for 'SVN_user':
建立工作站:checkout
svn checkout svn://127.0.0.1/home/PC_user/respos/project_dir local_project_dir
svn commit    提示服务器上的内容有被他人commit过,commit不成功
svn update   从服务器下载最新内容,并与自己的修改合并,若有冲突,会提示,需先解决
svn resolved file        告诉svn冲突已经解决,然后可以commit了
svn commit       发出更新服务器上的内容
svn status    显示本地工作目录的文件状态
svn add file    将file文件,目录,符号连接,加入respository
svn delete file
svn copy file1 file2
svn move file2 file3
svn commit    将修改同步到服务器
svn revert file1    撤销本地修改,恢复到update时候的状态
svn log    显示所有nano信息
svn diff --revision 3:5    比较版本3和5
svn update --revision 3    整个目录退回到版本3
svn help   可显示更多命令信息
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/53151/showart_418323.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP