在编写存储在Subversion代码库中的软件时,我经常修改一些文件,然后注意到我想为主要工作做一些准备工作。例如,在实现新功能时,我注意到一些重构可能会对我有所帮助。
为了不混淆两个不相关的更改,在这些情况下,我想“隐藏”我的更改,即恢复到存储库版本,做一些其他更改,提交这些更改,然后“取回”我的更改。
git-stash正是允许这样做的。有没有什么方法可以通过Subversion直接实现,也可以通过一些插件或脚本实现。Eclipse插件也不错。
发布于 2009-10-12 12:35:25
当我在工作副本中的一个任务中有未提交的更改,并且我需要切换到另一个任务时,我会做以下两件事之一:
或
WHATEVER_I_WAS_WORKING_ON_BEFORE拷贝$ svn拷贝CURRENT_URL_OF_WORKING_COPY SOME_BRANCH工作拷贝$ svn开关SOME_BRANCH工作拷贝$ svn提交-m "work in progress“工作copy $ svn开关copy
我有一些脚本可以帮助你实现自动化。
发布于 2010-08-03 03:22:41
This blog post建议使用diff和patch。
git stash大概变成了svn diff > patch_name.patch; svn revert -R .git stash apply变成了patch -p0 < patch_name.patch请注意,这不会隐藏元数据更改或(我认为)目录创建/删除。(是的,与git不同,svn会从目录内容中单独跟踪这些内容。)
发布于 2009-10-12 12:35:56
您可以使用svn diff将当前更改存储到补丁文件中,然后恢复您的工作副本:
svn diff > stash.patch
svn revert -R .在实现了准备功能之后,您可以使用patch实用程序应用您的补丁:
patch < stash.patch正如其他人所指出的,这将不适用于svn:properties和树操作(添加、删除、重命名文件和目录)。
二进制文件也会产生问题,我不知道patch (或者本例中的TortoiseSVN )是如何处理这些问题的。
https://stackoverflow.com/questions/1554278
复制相似问题