1.需求
将不同电脑上的完成的代码提交到SVN服务器,达到代码同步的功能。这样实验室与宿舍里面就可以用同一份代码了,不必担心U盘拷贝的副作用了。
2.在google code上建立一个项目
请参考《Google Code 服务试用》一文,解决了在Windows下安装与提交问题
3.在Debian下安装SVN
sudo apt-get install subversion subversion-tools
由于只是使用SVN客户端,可以不安装apache
4.SVN的使用简介
svn checkout https://project-name.googlecode.com/svn/trunk/ local-dir-name –username yourname
其中project-name是你的项目名称
local-dir-name是本地的目录,若不存在则创建,如不指定则默认为trunk
yourname是您的google账户名称
注释:checkout以可以简写成co
添加文件或文件夹到SVN中
svn add files|directory
提交
svn commit –message “log info” local-dir-name
提交时必需用参数 –message提供log信息,信息可以为空
如果当前本地目录为代码所在目录,则不需要指定local-dir-name
比如执行:
svn commit -m "Initial state of libtree" ./
Authentication realm: <https://xxxx.googlecode.com:443> Google Code Subversion Repository
Password for 'cherish':
svn: Commit failed (details follow):
svn: Server sent unexpected return value (500 Internal Server Error)
in response to MKACTIVITY request for '/svn/!svn/act/33e89cb0-df75-4605-8866-d0d8ca8b74f1'
此时的username取默认值为你linux的登录名,所以需要修改为你google的账户名。参考commit文档有如下提示
View Code
commit (ci): 把工作副本的修改提交到版本库。
用法: commit [路径...]
必须提供日志消息,但它可以是空的。如果没有指定 --message 或 --file
选项,编辑器会被启动。如果有目标是锁定的或者包含锁定条目,则在成功
提交后会被解锁。
有效选项:
-q [--quiet] : 不打印信息,或只打印概要信息
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 受深度参数 ARG(“empty”,“files”,“immediates”,或“infinity”) 约束的操作
--targets ARG : 传递文件 ARG 内容为附件参数
--no-unlock : 不要解锁目标
-m [--message] ARG : 指定日志信息ARG
-F [--file] ARG : 从文件ARG读取日志信息
--force-log : 强制校验日志信息资源
--editor-cmd ARG : 使用 ARG 作为外部编辑器
--encoding ARG : 将ARG的值视为字符编码
--with-revprop ARG : 在新版本设置版本属性 ARG
使用格式 name[=value]
--changelist ARG : 只能对修改列表 ARG 成员操作
[aliases: --cl]
--keep-changelists : 不要在提交后删除修改列表
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
所以,执行命令
svn commit -m "Add STL3.0" --username xxxx --password xxxxxxxxx
即可提交成功。