首页 > 其他 > 详细

svn实现类似git stash及git stash pop的功能

时间:2019-11-14 13:58:10      阅读:450      评论:0      收藏:0      [点我收藏+]

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%\.svn\stashed
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

 

svn实现类似git stash及git stash pop的功能

原文:https://www.cnblogs.com/hz-blog/p/svn-stash-pop.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!