鉴于这种情况,我在一个文件中进行了两次独立更改:例如.添加了一个新方法并更改了另一种方法.
我经常不希望将两个更改都作为一个提交提交,而是作为两个独立提交.
在一个Git仓库我会使用交互模式的混帐加(1)到拆分大块分成较小的:
git add --patch
Run Code Online (Sandbox Code Playgroud)
使用Subversion最简单的方法是什么?(甚至可能使用Eclipse插件)
更新:
在关于Git的事情中,Ryan称之为:"缠结的工作副本问题."
小智 41
我使用TortoiseSVN做到了这一点.
内置的合并实用程序允许您显示存储库版本和工作副本之间的差异.
使用diff实用程序的create backup功能
您现在应该使用两个单独的提交来提交所有更改.
jkr*_*mer 34
使用git-svn,您可以创建远程SVN存储库的本地GIT存储库,使用完整的GIT功能集(包括部分提交)使用它,然后将其全部推送回SVN存储库.
Chr*_*ris 24
尝试使用svn diff > out.patch然后将out.patch文件复制到out.patch.add和out.patch.modify
只有当您有一个工作的补丁文件时,才能使用恢复原始文件svn revert out.c.
手工编辑补丁文件,以便它们只包含了帅哥的添加或修改.使用patch命令将它们应用于原始文件,测试添加是否有效,然后svn commit添加.
清洗冲洗重复out.patch.modify贴片.
如果更改在文件中与您提出的初始问题分开 - 添加了一个新方法,更改了现有方法 - 这将起作用
这是一个非常繁琐的解决方案 - 虽然我不相信你应该有任何理由将你的提交分开.
您还可以检出同一来源的多个工作副本以应用您的工作:
svn co http://location/repository methodAdd
svn co http://location/repository methodModify
一定要svn up测试,以确保一切顺利.
par*_*vus 11
从v1.8开始,这可以使用TortoiseSvn(Windows).
4.4.1.提交对话框
如果您的工作副本是最新的且没有冲突,则您已准备好提交更改.选择要提交的任何文件和/或文件夹,然后选择TortoiseSVN→Commit ....
<剪断>
4.4.3.仅提交部分文件
有时您只想提交对文件所做更改的部分内容.这种情况通常发生在您正在处理某些事情但随后需要提交紧急修复时,并且该修复恰好位于您正在处理的同一文件中.
右键单击该文件并使用上下文菜单→提交后恢复.这将按原样创建文件的副本.然后,您可以编辑该文件,例如在TortoiseMerge中,并撤消您不想提交的所有更改.保存这些更改后,您可以提交该文件.
提交完成后,将自动恢复文件的副本,并且您拥有的文件包含未提交的所有修改.
在Linux上,我会试试http://webstaff.itn.liu.se/~karlu20/div/blog/2013-05-31_SVNPartialCommit.php.但是,自己没有尝试过.
我曾经这样做过:
这是一种简单的方法,假设一组更改很容易撤消.对于更复杂的情况,我会放弃并提交两个更改而不用担心它.
现在我使用git,这是我希望我再也不用做了!
尝试VisualSVN for Visual Studio。最新的 6.1 版本引入了 QuickCommit 功能。您可以使用Visual Studio 编辑器中新的提交此块和提交选择上下文菜单命令部分提交文件中选定的更改。