svn取消本地代码的修改

第一种情况:改动没有被提交(commit)。

这种情况下,使用svn revert就能取消之前的修改。

svn revert用法如下:

# svn revert [-R] something

其中something可以是(目录或文件的)相对路径也可以是绝对路径。

当something为单个文件时,直接svn revert something就行了;当something为目录时,需要加上参数-R(Recursive,递归),否则只会将something这个目录的改动。

在这种情况下也可以使用svn update命令来取消对之前的修改,但不建议使用。因为svn update会去连接仓库服务器,耗费时间。

注意:svn revert本身有固有的危险,因为它的目的是放弃未提交的修改。一旦你选择了恢复,Subversion没有方法找回未提交的修改。

第二种情况:改动已经被提交(commit)。

这种情况下,用svn merge命令来进行回滚。

回滚的操作过程如下:

1、保证我们拿到的是最新代码:

svn update

假设最新版本号是28。

2、然后找出要回滚的确切版本号:

svn log [something]

假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目

如果想要更详细的了解情况,可以使用svn diff -r 28:25 [something]

3、回滚到版本号25:

svn merge -r 28:25 something

为了保险起见,再次确认回滚的结果:

svn diff [something]

发现正确无误,提交。

4、提交回滚:

svn commit -m "Revert revision from r28 to r25,because of ..."

提交后版本变成了29。

将以上操作总结为三条如下:

1. svn update,svn log,找到最新版本(latest revision)

2. 找到自己想要回滚的版本号(rollbak revision)

3. 用svn merge来回滚: svn merge -r : something

时间: 2024-10-11 11:56:03

svn取消本地代码的修改的相关文章

取消基本数据的修改——备忘录模式的应用

模式应用背景 在机房收费系统中,有一个修改基本数据的窗体: 因为在文本框中修改数据之后,只要不点击修改按钮,就不会更新到数据库中,所以,个人版中这里的取消按钮是从数据库读取原始数据,再重新加载到窗体上来.这次合作的时候,加入了备忘录模式重新处理这个取消按钮. 如何加入模式 基本思路是这样的: 1,将要保存的BaseData(基本数据类的实体名)作为成员变量放到备忘录类里面,并在备忘录类初始化的时候传入要保存的基本数据. 2,定义发起者用来创建和回恢复备忘录的数据,如果点击了取消后,就用这个类来恢

SVN 取消版本控制并添加至忽略列表

起因: 由于项目中的IDE Jdeveloper在某些指定目录下面会生成server.xml以及common文件夹,且包含一个名为bc4j.xcfg的文件,每次当IDE设置发生变化,或者新建某些目录,这些文件都会被修改或者新增,而我不愿意将这些变化体现在SVN提交列表中. 正如SVN官方指南所言:如果你不小心添加了一些应该被忽略的文件,你如何将它们从版本控制中去除而不会丢失它们?或许你有自己的IDE配置文件,不是项目的一部分,但将会花费很多时间使之按照自己的方式工作.(忽略文件和目录,忽略已经版

IP变化,SVN和数据库的修改。

最近公司换了运营商,将启用新的IP地,将以前项目的端口映射处理好之外,还需要切换SVN的地址. 项目开发中有可能要修改SVN的IP地址,entries文件里面包含svn服务器的地址信息.每个文件夹都会产生一个entries文件信息.在myeclipse或者flash builder中可以借助可视化界面来修改IP地址.步骤如下:1.点击Window--->Others Views 选择SVN资源库视图.2.选中要修改的svn地址,右键点击属性,在弹出的窗口中点击使用定制标签,修改ip地址.3.点击

svn取消文件夹关联的方法

新建个记事本,贴入以下代码,保存后重命名后缀为reg,然后在目标文件夹右键就出现了删除SVN的选项了. 代码如下: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] @="删除该目录下面.svn文件" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command] @=

svn取消文件夹关联的方法(svn取消关联)

新建个记事本,贴入以下代码,保存后重命名后缀为reg,然后在目标文件夹右键就出现了删除SVN的选项了. 复制代码 代码如下: Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]@="删除该目录下面.svn文件"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]@

svn 从文件上次修改以来没有任何文件修改或加入。

现象:代码已经被修改过了,但是再往svn上提交代码时仍然提示: 从文件上次修改以来没有任何文件修改或加入. 解决办法: 1.找打存放代码的文件夹,右键——TortoiseSVN——clean up(清理) 然后会谈一个框,点击确定即可

svn merge当主干修改后合并分支

例如版本r1的主干创建分支r2,在r2上修改后得到r3,r1之后也修改得到r4,现在合并分支到主干上: 如果r3的修改和r4有冲突会提示出现冲突,因此不用担心主干合并后会被分支操作覆盖,因为这并不是简单地将分支操作重做一遍,会检查之前主干的操作会不会发生冲突. 如果没有冲突,直接合并成功. 注意不能重复合并,因为svn会记录合并过程.例如以上操作合并后的r5主干上再进行分支r3的合并,实际没有改动. 建议尽量少地使用分支,分支使用时间越长越容易出现冲突,尽量使用短时间内可以完成的分支.

应用SVN比较文件定位修改

用SVN checkout一个版A本到一个目录中,再从别的地方找到版本B复制到版本A所在的目录中,选择复制和替换,再要比较的文件上右键-->SVN-->diff

SVN代码管理工具修改IP

问题是这样, 原来代码是在一个服务器上, 其IP为ip1, 现在这个机器ip变成ip2了. 以前从ip1上检出的代码现在再提交时有问题了, 找不到原来的ip1. TortoiseSVN,在目录上右键,TortoiseSVN=>Relocate(汉化后显示的是重新定位),输入新的IP2对应的完整svn目录.按Ok搞定..