博客
关于我
Svn commit failed aborting commit
阅读量:531 次
发布时间:2019-03-09

本文共 2079 字,大约阅读时间需要 6 分钟。

排查解决Svn提交失败的问题

在使用Subversion(Svn)管理项目时,经常会遇到一些奇怪的问题,特别是在文件操作中出现失误后,提交失败的情况。经常遇到的一个问题是在操作文件夹时删除了内容,又尝试在其中添加新文件,从而导致提交失败,错误信息提示“svn commit failed aborting commit”。这种情况下,作为开发者或者项目维护人员,需要有条理地排查原因并找到解决方法。

问题分析:

Svn作为一个优秀的版本控制工具,主要采用检查器机制(如基于武伊且苏的排错机制,whoksu),在提交文件或修改时,会对文件和文件夹进行状态检查。删除某个文件夹中的所有内容时,Svn可能标记该文件夹为被删除了。之后在其中新增文件或修改,Svn可能会识别到这些操作,从而阻止新的提交,提示失败。

解决思路:

通常,当发现此类问题时,可以通过以下步骤逐步解决:

  • 检查文件状态和冲突:使用Svn命令行工具,运行“svn status”查看文件夹及其子文件夹的状态,了解哪些文件或文件夹被锁定或存在冲突。确认是否有错误状态需要解决。

  • 解决文件冲突:如果发现子文件夹存在冲突,右键点击相关文件夹,选择“属性”选项。然后在“属性”窗口中找到“ FileSystem ”选项卡,点击“ Resolve ”(解决冲突)按钮。这样可能会清除文件夹的冲突状态,使Svn识别到文件夹中的新内容。

  • 重新提交更新:在解决了冲突或状态问题后,尝试再次提交文件。使用“svn commit”命令,并根据需要输入提交信息。确保网络稳定,避免apped disk或其他网络问题导致失败。

  • 处理相关文件:对于删除的文件夹,如果只能部分恢复,也可以尝试添加一些文件,或者重新删除并重新创建文件夹。在仔细操作之前,建议先进行备份,避免造成额外损失。

  • 检查父文件夹权限:确保父文件夹具备提交权限,检查权限设置是否正确,无权限问题的话,可能会导致提交失败。

  • 详细步骤:

    • 打开命令提示符或终端,切换到项目目录,执行“svn status”:

      svn status

      查看是否有冲突或状态异常。

    • 对于确认的冲突文件夹,右键点击(在Windows)或左键点击(在macOS和Linux上),选择“属性”,然后在右侧栏点击“Resolve”(解决)按钮。点击“Yes”(确认),然后重新检查“属性”角落的“Resolve”状态板。

    • 现在返回到工作目录,使用“svn commit”手动提交修改。例如:

      svn commit -m "描述提交信息"

      输入提交信息,等待提交完成。

    注意事项:

    • 确保所有文件和文件夹都没有被锁定。大量文件冲突或文件锁问题可能导致长时间提交延迟或失败,需要同时处理这些问题。

    • 合并本地和远程的分支,确保没有未解决的冲突。使用“svn merge”命令可以方便地完成这一过程:

      svn merge ^/path/to/repo trunk

      选择性地解决冲突,通过“sv diff”查看冲突文件,并进行"Accept", "Propose", "Reject", "Leave"等选择操作。

    • 提交时可以选择忽略文件大小,使用“-Blanklogmessage”选项:

      svn commit -m "提交信息" --message-encoding "UTF-8" --ignore-size-limit

      有时文件过大导致提交失败时,可以临时解决。

    • 确保完成后细致检查提交结果。执行“svn log”查看提交日志,确认所有更改已经正确接收。

    实际案例处理:

    假设我们在项目Dir中修改了project-pictures/R1/filename.jpg文件,并删除了整个project-pictures目录下的部分内容。按照以下步骤解决:

  • 检查状态:
  • cd /path/to/reposvn status

    发现project-pictures被标记为“删除”(比如用D表示)。

    1. 解决文件夹冲突:右键点击project-pictures,选择属性,进入fs服务属性。点击“Resolve”,确认操作。

    2. 提交更新:重新复制修改的文件到project-pictures中,或者创建新文件,并执行:

    3. svn add project-pictures/svn commit -m "添加新文件并修复文件夹问题"

      这里选项可以根据实际情况调整,确保文件路径正确。

      防止单次故障扩大化:

      为了避免类似问题再次发生,可以采取以下预防措施:

      • 定期定期备份文件: 机器人化的自动备份,减少手动操作带来的误操作影响。

      • 使用版本控制工具的别名或快捷方式: 某些VCS操作比较繁琐,对于常用命令可以自己设置别名,使其更快捷。

      • 自动化处理文件冲突: 使用脚本或自动化工具来处理常出现的冲突,这减少了手动操作带来的错误率。

      总结:

      面对Subversion提交失败的问题,冷静思考,逐步排查问题,最终可以找到问题根源并解决。通过以上详细的步骤和注意事项,可以有效地避免和解决类似的项目管理难题,确保项目顺利进行。

    转载地址:http://cjksz.baihongyu.com/

    你可能感兴趣的文章
    重磅!大数据《实战全栈工程师成长手册》,附 PDF & PPT 下载
    查看>>
    JAVA异常和基础类库
    查看>>
    洛谷【数据结构1-1】线性表
    查看>>
    AI技术国际领先!一文回顾百度大脑的2020
    查看>>
    CVPR 2021 | 港科大&旷视提出ACON:激活还是不激活?学习自定义激活函数
    查看>>
    EfficientNetV2震撼发布!更小的模型,更快的训练
    查看>>
    python-计网实验二-套接字
    查看>>
    C++学习日记2——多态篇的纯虚函数和抽象类
    查看>>
    F - 数据结构实验之链表四:有序链表的归并
    查看>>
    为什么使用%lf读取double型的值,而用%f进行显示?
    查看>>
    用JavaScript实现希尔排序
    查看>>
    iconfont字体图标导入到vue项目中
    查看>>
    2020.11.30-12.6周报
    查看>>
    Nuxt.js服务器端渲染框架
    查看>>
    Svn commit failed aborting commit
    查看>>
    卧槽!细说JVM内存模型,已拿到offer
    查看>>
    带你一起手撕Dubbo,SpringBoot与Cloud,深入剖析
    查看>>
    dynamo中如何通过节点读取cad图纸数据
    查看>>
    纯干货!深度分析一下AQS原理,一文全懂
    查看>>
    腾讯Java面试题,从基础到源码统统帮你搞定,2年以上经验必看
    查看>>