如何将文件加入到svn版本控制

如何将文件加入到svn版本控制,第1张

开始菜单》程序》VS2010。

打开需要导入SVN版本控制的项目。

在解决方案上单击鼠标右键,添加解决方案到SVN。

输入版本库的URL地址,点击SVNHome,然后在下面可以看到解决方案在版本库中的实际路径,点击OK。

提示代码的一个好习惯就是添加注释。

添加成功之后就会发现每个文件前面多了一个图标。

之后再右键解决方案,就会发现多了很多SVN相关的菜单。

树莓派自带svn就不用安装了,安装也很简单,参考别的百度经验也可以进行。开篇主要讲解如何使用。

首先使用svn --help查看都有什么指令。

常用的命令不是太多,但是首先咱得先从服务器把代码下下来不是。

svn co http:XXXXXXXXX

或者svn checkout http:XXXXX

其中co是checkout的缩写,就如后面的up是update的缩写一样。

然后我们新建一个test.c然后提交。

首先我们得通过

svn add test.c

加到本地的库里,就是放到自家的版本库.svn里,然后

svn ci -m "we add a new file"

这样就提交到了远程的服务器HEAD库里了,其中ci是commited的缩写。

大家可以看到版本又10变成了11。

接下来得说下svn的不同的版本的关键字。

HEAD

版本库中的最新版本 我理解就是当前服务器的最新版本。

BASE

工作拷贝中的原始修订版本 我理解就是刚刚co下来的.svn里的内容。

COMMITED

在BASE版本之前(或者base) 一个项目的最后修改的版本。我理解就是你改完的版本

PREV

一个项目最后修改版本之前的那个版本 也即COMMNITED-1。

下面就用这几个关键字来熟悉一些命令。

svn log --revision HEAD

可以看出以上命令是说明的最近一次服务器代码库的改动。

svn diff --revision HEAD

可以看出这是对本地和远程版本之间的对比。由于我刚提交了一次,所以这次不提示任何信息,两者是一样的。

svn diff --revision BASE:HEAD a

这个命令意思就是比较你本地的没有更改过的库,和远端服务器最新的 a文件的差别

svn log --revision BASE:HEAD a

这个命令显示自从上次up更新以来我们对a所做的所有更改

svn up -r PREV a

将a文件更新到之前的版本

前面我们从服务器checkout下代码下来的时候,就已经包含了.svn目录。请不要更改这个目录,因为svn使用它来管理工作拷贝。

下面详细的说一下svn的update *** 作。当大家共同维护一个项目时,如果别人改了代码提交了,你想得到那些更改融合到你的代码中,就可以用svn update让你的工作拷贝和最新的版本同步。

就比如下图,另一个人用tortoiseSVN更改了a,然后commit上传了,我用命令行up就能把更改融合到我本地的a文件。

我们可以看到a这个文件前面有个U,代表从服务器收到了其他人提交到服务器的修改。

A foo

代表文件foo被加到了工作拷贝

D foo

代表文件foo被添加到了工作拷贝

R foo

代表文件foo被删除,而一个新的同样名字的项目添加进来,他们具有同样的名字,但是版本库会把他们看做具备不同历史的不同对象。

G foo

文件foo接收到版本库的更改,你的本地文件也已经已经修改,但这两者不冲突,svn已经成功将服务器版本库和本地文件合并,没有发生任何问题。

C foo

文件foo的修改与服务器冲突,服务器的修改与你的修改冲突了,比如第一行他写了123 你写了321 没法融合,因为怎么弄不是把他的123抹去,就是把你的321抹去,所以你要和那人交流,这个后面再说。

当你想改变当下的目录结构时,请你使用svn add ,svn delete ,svn copy , svn move。

svn add foo 会将文件、目录或者符号链接等添加到版本库。如果foo是目录的话,里面的文件也会被添加到进去,如果你只想添加foo目录,使用--non-recursive(-N)不递归添加文件参数。

svn delete foo 将文件、目录或者符号链接foo从版本库中删除,如果foo是文件,它马上从工作拷贝中删除,如果是目录,不会被删除,只有在committed提交的时候,foo才会从本地工作拷贝和版本库中删除。

svn copy foo bar建立一个新的项目bar作为foo的复制品,在下一次提交时会将bar添加到版本库,这种拷贝历史将会被记录下来(按照来自foo的方式记录)。

svn move foo bar 这个命令等同于svn copy foo bar;svn delete foo完全相同,bar作为foo的拷贝,foo被删除,svn move不会建立中介目录。

svn mkdir foo

这个命令同运行 mkdir foosvn add foo相同,也就是创建一个叫做foo的目录,并且预定添加到版本库。

以上这些都是svn-book的内容。

原理是先把你对目录的修改汇集到本地的工作拷贝,然后一个提交动作,这样远端的版本库就能反映你的改动。

其实可以直接对远端的版本库进行 *** 作,这必须需要通过svn mkdir,svn copy,svn move和svn delete这些命令直接 *** 作远端URL。但是就没有本地拷贝做缓冲了,每次提交自动生效。

查看你的修改的情况

svn status

查看你本地修改的详情

svn diff

如果想打包成diff文件 可以svn diff >c .diff 打包成diff文件。用tortoiseSVN可以打开,查看

如果想会退到原来的up的工作拷贝

svn revert

1,软件下载SVN服务器 本文以下载svn-win32-1.6.1.zip 为例进行安装下载Subversion的Windows客户端TortoiseSVN。(如果习惯CMD命令方式,也可以不下载) 2,服务器和客户端安装服务器安装,解压下载的svn-win32-1.6.1.zip到任意位置安装TortoiseSVN,按照提示安装即可。(如果习惯CMD命令方式,也可以不安装)3,建立版本库(Repository)方法一:命令方式用CMD进入svn-win32-1.6.1.zip解压后的bin文件夹执行svnadmin create D:\svnRoot就会在目录D:\svnRoot下创建一个版本库。方法二:使用TortoiseSVN图形化的完成这一步在目录D:\svnRoot上"右键->TortoiseSVN->Create Repository here “,就会将D:\svnRoot创建为一个版本库4,配置用户和权限来到D:\svnRoot\conf目录,修改svnserve.conf:# [general]# password-db = passwd改为(即去掉前面的#):[general]password-db = passwd然后修改同目录的passwd文件,去掉注释:# [users]最后变成:[users]然后照:用户名=密码的形式创建用户5,运行独立服务器安装服务,在任意目录下运行:sc create subversion_service binpath= "C:\svn-win32-1.6.1\bin\svnserve.exe --service -r D:\svnRoot" displayname= "Subversion Repository" depend= Tcpip其中subversion_service 为自定义的服名;C:\svn-win32-1.6.1为svn-win32-1.6.1.zip的解压目录;D:\svnRoot为版本库文件夹,可根据实际情况修改之后可以在我的电脑上点右键->管理->服务里找到Subversion Repository将其启动并设置为“自动”(附:如需删除服务请使用sc delete subversion_service)6,初始化导入方法一:命令方式例如:C:\svn-win32-1.6.1\bin>svn import D:\AAA\Workflow file:///D:/svnRoot\workflow -m "initial import"其中D:\AAA\Workflow为欲导入的文件或文件夹;file:///D:/svnRoot\workflow即为之前设置的版本库位置方法二:使用TortoiseSVN如果是文件夹:右键->TortoiseSVN->Import... URL of repository输入“svn://localhost/”然后写上导入信息,以便于以后查看及 *** 作ok如果是文件:可以在任意位置点右键->TortoiseSVN->Repo-brower,之后的 *** 作相信大家都会以上 *** 作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22/”。7,基本客户端 *** 作取出版本库到一个工作拷贝:来到任意空目录下,运行右键->Checkout,在URL of repository中输入svn://localhost/,这样我们就得到了一份工作拷贝。在工作拷贝中作出修改并提交:作出修改,然后右键->Commit...,这样我们就把修改提交到了版本库。查看所作的修改:文件上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。 天互数据杜超为您解答


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11935119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存