zoukankan      html  css  js  c++  java
  • svn实现类似git stash及git stash pop的功能

    git下,有git stash这个命令可以方便地保存当前的修改,并还原代码到未修改的状态。然后处理完之后又可以使用git stash pop将之前的修改内容合并到当前代码。

    svn下,缺乏这样的命令。不过可以用svn diff和svn patch来实现基本类似的功能。如下内容保存为svnstash.bat,并放到任意path环境变量目录(如C:window)下即可。

    命令:

    svnstash:暂存。类似git stash,可多次执行。

    svnstash pop:恢复之前暂存的内容,可多次执行,以此弹出。

    @echo off
    
    if not exist %CD%.svn (
       echo %CD% 不是svn目录
       goto out
    )
    
    set sdir=%CD%.svnstashed
    if '%1'=='pop' (
       goto pop
    ) else (
       goto stash
    )
    goto out
    
    :stash
       if not exist %sdir% mkdir %sdir%
       set dt=%Date%
       set tm=%Time%
       set stime=%dt:~0,4%%dt:~5,2%%dt:~8,2%-%tm:~0,2%%tm:~3,2%%tm:~6,2%
    
       set tfn=%sdir%svnstash-%stime%.diff
    
       svn diff >> "%tfn%"
       if %ERRORLEVEL% EQU 0   svn revert -R .
       
       echo 使用 svnstash pop 恢复上一次保存的内容
       goto out
    
    :pop
      FOR /F "delims==" %%f IN ('dir %sdir% /a/b /o-d') DO (
       echo %%f
       svn patch %sdir%\%%f . --ignore-whitespace
       del %sdir%%%f
       echo poped %%f
       goto out
      )
      echo 没有暂存的内容
      goto out
    
    :out
  • 相关阅读:
    类的无参方法
    类和对象的案例
    类和对象的实例
    类和对象
    【Java】【1】String数组和List相互转换
    【Oracle】【5】去掉字符串最后一个特殊字符
    【其他】【Restful】【1】简单了解Restful概念
    【IDEA】【7】Git更新及提交
    【IDEA】【6】Maven打包
    【IDEA】【5】快捷键
  • 原文地址:https://www.cnblogs.com/hz-blog/p/svn-stash-pop.html
Copyright © 2011-2022 走看看