如何在ubuntu下用SVN commit

简介:
一个简单的命令: sudo apt-get install subversion

假设你的项目工作路径(你刚开始建立的项目工作路径,没有进行过任何svn操作)为:/home/zzm/myproject

#建立一个名为 myproject 的 repository
svnadmin create /home/zzm/svn-repo/myproject

#把 /home/zzm/myproject 下的内容导入到svn的版本库中,并建立一个本项目的版本库,版本号是 1。
svn import -m "这是大爷的项目的第一个版本,刚刚导入的" /home/zzm/myproject file:///home/zzm/svn-repo/myproject

现在我想跟你说一个概念,就是svn中的working copy,实际上我们在上面一共建立了两个文件夹,一个是你的项目文件夹:/home/zzm/myproject,另一个是你的项目的版本库文件夹:/home/zzm/svn-repo/myproject,这两个文件夹都不是所谓的working copy,真正的working copy是负责直接和版本库进行同步和记录操作的,在working copy文件夹内,有一个隐藏的.svn文件夹。通常我都不是在working copy文件夹里面直接操作,而是另一个地方编辑文件等,然后把在另一个地方改动的东西直接拷贝到working copy里面,然后执行commit命令进行版本的维护。要建立你的working copy只有使用checkout命令:

#建立一个名为 my_working_copy 的 working copy
svn checkout file:///home/zzm/svn-repo/myproject my_working_copy
(根据你文件多少会有很多的输出,最后会告诉你当前你checkout的版本)

#实际上你可以使用checkout命令获得项目的任意一个版本的全部内容,执行命令:
svn checkout file:///home/zzm/svn-repo/myproject my_working_copy_version_number -r version_number
(version_number即是你所要获得的项目版本的版本号,比如1,2或者3等)

#如果你改变了你的working copy里面的内容,需要保存这次改变,即向版本库中添加一个版本,使用commit命令:
svn commit -m "大爷我添加了几张图片,更新了项目的企划"
(确保你终端当中的当前路径是你的working copy的路径,才能正确的执行本次命令)

#经过几次commit之后,你可能有很多的版本在版本库里面,通过输入下面的命令可以查看各个版本的情况:
svn log path
(path是你想要查询的working copy的路径,如果你在这个路径下面输入的命令,可以省略path)

----------------------------------
千万注意的内容:
你在你的working copy目录中作文件操作时,比如删除或移动文件,不能直接用终端当中的命令 rm, mv 来进行,这样 svn 不能追踪到文件的变化,当你使用commit命令提交的时候,你不会得到任何的结果,想要让svn追踪你的变化你必须使用 svn del 或是 svn move 来完成删除或移动的操作,比如:

# 我拷贝了一个文件到working copy中,需要让svn知道我拷贝了一个文件:
svn add filename

# 其他的:
svn move filename /home/zzm/my_working_copy/new_folder/aa
svn rename filename1 filename2
svn del filename

差不多了,上面的东西已经足够个人用户使用了,楼主还有什么问题的话可以回帖询问。

希望上面的内容对你有所帮助!

本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2010/05/24/1743027.html,如需转载请自行联系原作者



相关文章
|
5月前
|
Ubuntu 安全 网络安全
百度搜索:蓝易云【Ubuntu系统SVN服务器搭建教程】
现在,你已经成功在Ubuntu系统上搭建了SVN服务器。其他用户可以通过SVN客户端连接到你的SVN服务器,进行代码版本管理和协作开发。注意,为了安全起见,建议配置SSL加密以保护数据传输。
73 1
|
5月前
|
存储 网络协议 Ubuntu
如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库
如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库
183 0
|
4月前
svn: E175002: Commit failed (details follow): svn: E175002: Unexpected HTTP status 502Bad Gateway on
svn: E175002: Commit failed (details follow): svn: E175002: Unexpected HTTP status 502Bad Gateway on
107 1
|
5月前
|
机器学习/深度学习
svn commit 用法
svn commit 用法
210 0
【异常】svn: E200009: Commit failed (details follow)/both sides of the move must be committed together的解决办法
svn: E200009: Commit failed (details follow)/both sides of the move must be committed together的解决办法
625 0
|
网络协议 Ubuntu
Ubuntu搭建SVN服务 - 内网穿透实现公网远程访问(下)
Ubuntu搭建SVN服务 - 内网穿透实现公网远程访问(下)
135 0
|
存储 Ubuntu 数据安全/隐私保护
Ubuntu搭建SVN服务 - 内网穿透实现公网远程访问(上)
Ubuntu搭建SVN服务 - 内网穿透实现公网远程访问
254 0
SVN没有update和commit
SVN没有update和commit
448 0
SVN没有update和commit
|
Shell 测试技术 Python
Python 一键commit文件、目录到SVN服务器
Python 一键commit文件、目录到SVN服务器
280 0
【SVN】is not known to exist in the repository and is not part of the commit, yet its child
【SVN】is not known to exist in the repository and is not part of the commit, yet its child
875 0
【SVN】is not known to exist in the repository and is not part of the commit, yet its child