代码管理

1、代码托管

git,分布式版本管理工具(SVN是中心式,一崩俱崩)

github不能免费创建私库,gitlab可以免费创建私库

2、代码同步

有很多代码同步方法,如samba共享,expand工具,直接rz sz拷贝,mobaxterm拷贝,各有千秋,再推荐一种方法:

cygwin + rsync。

 

安装cygwin,勾选openssh和rsync,用来传输时使用。

可以从远程或者本地镜像保存整个目录树和文件系统

可以保持文件原来的权限、时间、所有者、组信息、软硬链接等等

无须特殊权限即可安装

快速:要比 scp (Secure Copy) 要快;第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,可以使用更少的带宽

安全:可以使用 scp、ssh 等方式来传输文件,当然也可以通过直接的 socket 连接

支持匿名传输,以方便进行网站镜像

一般用法:

rsync [OPTION]... SRC DEST SRC或DEST可为远程或本地

rsync [OPTION]... SRC [USER@]HOST:DEST

典型用例:rsync -azvh/avz SRC DEST --delete(删除目标比源多的文件) --exclude 排除的目录

我的用法:rsync -arvh --exclude=doc --exclude=bin --exclude=.svn /cygdrive/z/SVN_PROJECT/project1  xiaomng@192.168.2.3:/home/xiaoming/

3、svn

先检出整个目录:svn co --depth empty https://192.168.1.1/svn/project project就是你检出的最外层目录名字

再检出需要的文件:svn update --set-depth infinity project/src

svn log -v -l 4   显示最近的4条日志
svn log -v -r 961:1698
svn help log
svn log -r 5:19    按照时间顺序打印从版本号 5 到 19 的日志
svn log -r 19:5    按照时间逆序打印从版本号 5 到 19 的日志
svn log -r 8    显示版本号 8 的日志

4、Linux下查看与修改代码配置

4.1 ctags配置(跳转到函数定义)

最基本的配置:

终端输入如下命令:ctags -R . ,将在当前目录下生成文件 tags

然后打开源文件,光标定位到函数或者宏名上,按Ctrl + ],就可以跳转到该函数或者宏的定义处,要想退回来则使用Ctrl + o 或者 Ctrl + t ,

也可以直接在终端输入 vim -t 函数名,也可以查看函数定义。

4.2 cscope配置(查找函数调用、被调用)

~/.vimrc添加以下(已包含ctags的配置,加数据库的配置,数据库更新添加等等,所以非必须不需要了):

必须:

if has("cscope")

set cscopetag

set csto=1

set nocscopeverbose

if filereadable("cscope.out")

cs add cscope.out

elseif $CSCOPE_DB !=""

cs add $CSCOPE_DB

endif

set cscopeverbose

nmap <C-/>s :cs find s <C-R>=expand("<cword>")<CR><CR>

nmap <C-/>g :cs find g <C-R>=expand("<cword>")<CR><CR>

nmap <C-/>c :cs find c <C-R>=expand("<cword>")<CR><CR>

nmap <C-/>t :cs find t <C-R>=expand("<cword>")<CR><CR>

nmap <C-/>e :cs find e <C-R>=expand("<cword>")<CR><CR>

nmap <C-/>f :cs find f <C-R>=expand("<cfile>")<CR><CR>

nmap <C-/>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>

nmap <C-/>d :cs find d <C-R>=expand("<cword>")<CR><CR>

endif

 

 

非必须:

建立索引数据库:

首先进入源码目录, 在linux终端中输入以下命令以创建cscope数据库:

$ find ~/work/..Project/ -name "*.h" -o -name "*.cpp" > cscope.files

$ cscope -bkq -i cscope.files

如果是在windows环境中, 则换成如下命令:

dir /s /b *.cpp *.h > cscope.files

cscope -b -q -k -i cscope.files

 

然后, 用vim打开一个源文件(如: vim main.cpp),

打开后, 第一件事就是导入cscope数据库了:

:cs add /home/yourname/workpace/cscope.out /home/yourname/workpace

 

cscope数据库导入成功后, 就可以利用上面定义的快捷键进行相关的查找,

使用方法:

:cs find s ---- 查找C语言符号,即查找函数名、宏、枚举值等出现的地方

  :cs find g ---- 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能

  :cs find d ---- 查找本函数调用的函数:cs find c ---- 查找调用本函数的函数

  :cs find t: ---- 查找指定的字符串

  :cs find e ---- 查找egrep模式,相当于egrep功能,但查找速度快多了

  :cs find f ---- 查找并打开文件,类似vim的find功能

  :cs find i ---- 查找包含本文件的文

4.3 taglist(浏览文件中的所有函数、宏定义等,F8)

功能: 高效地浏览源码, 其功能就像vc中的workpace, 那里面列出了当前文件中的所有宏等。安装就不需要了,简单配置一下就行了,但需要ctags的支持。

 

把plugin/taglist.vim复制到~/.vim/plugin目录下,

把doc/taglist.txt复制到~/.vim/doc目录下

 

.vimrc添加:

 

" 按F8按钮,在窗口的左侧出现taglist的窗口,像vc的左侧的workpace

nnoremap <silent> <F8> :TlistToggle<CR><CR>

" :Tlist 调用TagList

let Tlist_Show_One_File=0 " 只显示当前文件的tags

let Tlist_Exit_OnlyWindow=1 " 如果Taglist窗口是最后一个窗口则退出Vim

let Tlist_Use_Right_Window=1 " 在右侧窗口中显示

let Tlist_File_Fold_Auto_Close=1 " 自动折叠

 

使用说明:F8出现浏览窗口,

 

ctrl+ww 在列表和源文件中切换

ctrl + ] 查看函数定义

ctrl + o 返回上一级文件。

gf 查看头文件

gd 转到当前光标所指的局部变量的定义处。

* 转到当前光标所在单词的下一次出现的地方。

# 转到当前光标所在的单词的上一次出现的地方。

<CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样

o 在一个新打开的窗口中显示光标下tag

<Space> 显示光标下tag的原型定义

u 更新taglist窗口中的tag

s 更改排序方式,在按名字排序和按出现顺序排序间切换

x taglist窗口放大和缩小,方便查看较长的tag

+ 打开一个折叠,同zoctags常用快捷键ctags常用快捷键

- 将tag折叠起来,同zc

* 打开所有的折叠,同zR

= 将所有tag折叠起来,同zM

[[ 跳到前一个文件

]] 跳到后一个文件

q 关闭taglist窗口

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值