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
  • 相关阅读:
    使用IDEA 创建Mevan项目后,项目中没有Java源文件夹的解决方案
    Head FIRST HTML & CSS 16/3/15
    Head FIRST HTML & CSS 16/3/11
    hdu 5375 dp
    Thinking in java 16/3/8plus
    Thinking in java 16/3/8
    Beauty of mathematics
    Thinking in java 16/3/6
    Thinking in java 16/3/5
    SQL SERVER迁移--更换磁盘文件夹
  • 原文地址:https://www.cnblogs.com/hz-blog/p/svn-stash-pop.html
Copyright © 2011-2022 走看看