1.假设SVN数据库目录为/home/svn/projects
2.启动svn
svnserve -d --listen-port 9999 -r /home/svn/projects (注:指定端口) 或者
svnserve -d -r /home/svn/projects
3.新建项目
svnadmin create /home/svn/projects
4.将项目代码导入projects 所需加入代码在/home/project目录中
svn import /home/project file:///home/svn/projects -m "Initial Projects" ("Initial Projects" 为
log信息)
5.配置权限
进入/home/svn/projects/conf将svnserve.conf修改为
[general]
#anon-access = read
anon-access = none
auth-access = write
password-db = passwd
realm = projects #此处的projects为导入后代码所存放的目录名 此处为/home/svn/projects/conf的projects,你需要根据自己的情况设定
6.在/home/svn/projects/conf目录中创建文件passwd并在其中加入类似代码
[users]
cynric = cyrnic (user name = user passwd)
7.svn命令的使用
1、Linux命令行下将文件checkout到本地目录
svn checkout path(path是服务器上的目录)localpath(本机路径)
例如:svn checkout svn://192.168.1.1/pro/domain /home/program
2、Linux命令行下往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、Linux命令行下将改动的文件提交到版本库
svn commit -m “LogMessage“
例如:svn commit -m “add test file for my test“ test.php
4、Linux命令行下查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
5、Linux命令行下更新到某个版本
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。简写:svn up
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
6、Linux命令行下查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2)svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
简写:svn st
7、Linux命令行下删除文件
svn delete path -m “delete test fle“
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种
简写:svn (del, remove, rm)
8、Linux命令行下比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
9、Linux命令行下将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
10、Linux命令行下SVN 帮助
svn help
svn help ci