svn 删除、移动和改名

svn 删除、移动和改名

删除、移动和改名

Subversion allows renaming and moving of files and folders. So there are menu entries for delete and rename in the TortoiseSVN submenu.

图 4.33. 版本控制文件的菜单浏览

版本控制文件的菜单浏览

 

正在删除文件/文件夹


Use TortoiseSVN → Delete to remove files or folders from Subversion.

When you TortoiseSVN → Delete a file or folder, it is removed from your working copy immediately as well as being marked for deletion in the repository on next commit. The item’s parent folder shows a modified” icon overlay. Up until you commit the change, you can get the file back using TortoiseSVN → Revert on the parent folder.

如果你想从版本库删除项目,但是在本地作为非版本控制的文件/文件夹保留,可以使用 扩展右键菜单 → 删除(保留本地副本)。为了看到扩展右键菜单,当你在文件管理器列表窗格(右窗格)中的项目上点击右键时,必须同时按下 Shift 键。

If an item is deleted via the explorer instead of using the TortoiseSVN context menu, the commit dialog shows those items as missing and lets you remove them from version control too before the commit. However, if you update your working copy, Subversion will spot the missing item and replace it with the latest version from the repository. If you need to delete a version-controlled file, always use TortoiseSVN → Delete so that Subversion doesn’t have to guess what you really want to do.

找回已删除的文件或目录

如果你删除了一个文件或目录并已经提交该删除操作到版本库,那么 一个常规的TortoiseSVN → 复原已不能再将其找回。但是该文件或目录并没有完全丢失。如果你知道该被删除文件或目录的版本(如果不能,使用日志对话框来查找出来),打开数据仓库的浏览器,并选择那个版本。然后选择你删除的文件或目录,右键并选择Context Menu → 复制到…作为目标执行复制操作,然后选择你的工作副本的路径。

移动文件和文件夹


如果你仅想重命名文件或文件夹,使用 右键菜单 → 改名… 为此条目输入新的名称就可以了。

如果你想在工作副本中移动文件,比如移动到一个不同的子文件夹下,那么使用鼠标右键拖拽:

  1. 选择你要移动的文件或目录

  2. 鼠标右键拖拽它们到工作副本的新位置

  3. 松开鼠标右键

  4. 在弹出菜单选择右键菜单 → SVN 移动版本控制的条目到当前位置。

提交父目录

既然重命名和移动都是像添加之后跟随着删除一样被执行,你必需提交该重命名/移动文件的父文件夹,所以重命名/移动的删除部分将出现在提交对话框中。如果你不提交重命名/移动的已删除部分,他将保留在仓库中并且你的同组人更新工作副本时,该文件也不会被删除。例如,他们将有两个一老一新的副本。

必须在重命名文件夹后立刻进行提交,在提交前不要更改文件夹下的任何文件,不然你的工作副本就会真的混淆。

另外一种复制或移动文件的方法是通过Windows 的复制/移动命令. 首先选择你需要复制的文件, 在资源管理器中右键点击并选择右键菜单 → 复制. 然后进入目标文件夹,右键点击并选择TortoiseSVN → 粘贴. 对于移动文件,选择 右键菜单 → 剪切而不是右键菜单 → 复制.

你也可以使用版本库浏览器在版本库中移动条目。阅读 “版本库浏览器”一节 以获得更多信息。

不要使用 SVN 移动外部连接

不应该用 TortoiseSVN 的移动或改名命令作用在用 svn:externals 创建的目录上。因为这个动作可能会导致外部元素(item)从它的父版本库中删除,这可能会使其它人烦恼。如果你需要移动外部目录,你应该使用普通的外壳移动,然后调整源和目的之父目录的 svn:externals 属性。

处理文件名称大小写冲突

万一在你的版本库中有两个名字相同但大小拼写不同(例如: TEST.TXTtest.txt)的文件,你是不能在 Windows 客户端更新或者检出该包含该文件的目录的。当 Subversion 支持大小写敏感的文件名时,Windows 不支持。

它偶尔在两个人在独立的工作副本提交时发生,文件名称相同,只有大小写不同。它也会在具有大小写敏感的文件系统的系统中提交文件时发生,例如 Linux。

如果是那样的话,你得决定在这个版本库里的哪一个文件是你想保留的,哪一个是要删除(或重命名)的

防止两个文件名字相同

There is a server hook script available at: https://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/ that will prevent checkins which result in case conflicts.

修复文件改名

有时候你的IDE会因为执行反射操作,改名文件,当然它不能告诉Subversion。如果你尝试提交修改,Subversion会发现丢失了老文件,新增了未版本控制的新文件。你可以简单的增加新文件,但是你将丢失历史记录,因为Subversion不知道这些文件的关系。

更好的方法是通知Subversion这实际上是改名,你可以在提交和检查修改对话框中做此操作。简单选择老文件(丢失的)和新文件(未版本控制的),使用右键菜单 → 修复移动设置这两个文件是改名关系。

删除未版本控制的文件

通常你可以在Subversion中设置自己的忽略列表,例如忽略所有产生的文件。但是你如何清理这些忽略的项目,从而产生一个干净的构建呢?通常你在makefile中清理,但是如果你在调试makefile,或者修改构建系统,那么有一个清理方法是极为有用的。

TortoiseSVN 提供了使用扩展上下文菜单 → 删除未版本控制的项目…来清理工作副本。你可以在目录上右键操作时,保持 Shift按下,就可以看到这个上下文菜单。它会出现一个对话框,列出工作副本中的所有未版本控制的文件。你可以选择或取消删除的项目。

当删除这些项目时,使用了垃圾箱。所以如果你犯了错误,删除了应该版本控制的文件,你仍旧可以恢复。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113354.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 播放.avi后缀视频报出0xc00d5212,编码格式不支持

    播放.avi后缀视频报出0xc00d5212,编码格式不支持以avi后缀的格式视频文件,在win10系统上播放可能会报如下如下错误:最普遍的现象就是高版本Windows媒体播放器播放不了采用早期编码编辑的AVI格式视频,而低版本Windows媒体播放器又播放不了采用最新编码编辑的AVI格式视频解决方案:这里我总结了两种方案:第一种:安装一个插件名字叫格式工厂,这款插件可以很好的支持大批量的文件格式转换,它会把avi视频转换成mp4格式视频,…

    2022年9月30日
    0
  • GD32 RT-Thread Nano+FinSH组件

    GD32 RT-Thread Nano+FinSH组件一、FinSH组件的命令执行流程图二、执行环境1.芯片:GD32F10x2.串口: #defineFINSH_UART USART1 #defineFINSH_UART_CLK RCU_USART1 #defineFINSH_TX_PIN GPIO_PIN_2 …

    2022年5月21日
    84
  • pandas数据清洗详细教程_excel数据清洗工具

    pandas数据清洗详细教程_excel数据清洗工具Pandas数据清洗常见方法01读取数据df=pd.read_csv(‘文件名称’)02查看数据特征df.info()03查看数据量df.shape04查看各数字类型的统计量df.describe()05去除重复值df.drop_duplicates(inplace=True)06重置索引data.reset_index(inplace=True,drop=True)07查看缺失值信息data.loc[data[‘列名’].isnull()]01

    2022年9月7日
    0
  • location.hash详解[通俗易懂]

    location.hash详解[通俗易懂]了解vue-router原理中更新URL但不重载页面原理之一location.hash1.存在形式及意义一般情况下为URL后"#"及其后面一部分组成,如http://www.test.com/#/something,其中http://www.test.com为真实的路径,而#/something则为网页中的位置,称之为锚点在访问锚点时会自动跳刀锚点所在的网页位置,通常有两种方式作为锚点<…

    2022年7月13日
    15
  • pip安装的包pycharm识别不了_手机上的python安装第三方库

    pip安装的包pycharm识别不了_手机上的python安装第三方库问题描述:在cmd控制台pipinstallpytest后并显示安装成功后,并且尝试用pycharm的python中importpytest,显示异常,提示我未安装过pytest解决方法方法一:在PyCharm下载第三方库(即把之前下的库作废,这里重新再下一次……)方法二:坚持用pip的方法安装第三方库方法1:无需命令,通过pycharm操作即可,找到“pytest”点击“install”安装即可(由于我已经安装)方法2:我们…

    2022年8月27日
    2
  • Vue学习笔记-day01

    Vue学习笔记-day01

    2021年7月12日
    77

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号