使用SVN,我如何有选择地创建一个补丁文件?

Using SVN, how do I selectively create a patch file?

我有一个代码库,其中有几处更改,最好分成几个提交。

git 中,我会使用 git add -p 来 select 我想要从每个文件中进行的更改,并基于这些更改创建提交和拉取请求。

我是 SVN 的新手,我想知道实现此目标的最佳方法?看起来我可以执行文件级 selection,但不能在这些文件中进行更改?

我正在使用 TortoiseSVN 作为我的本地版本控制工具,但我很乐意使用另一种工具(必须 运行 on Windows)如果有一个工具可以满足我的需求.

这是您无法从 SVN 获得的东西。将您工作区中的更改分离为多个提交只能具有文件粒度。您不能将同一文件的更改拆分为多个提交。

所以我想说你应该看看 how git-svn works。它允许您在 SVN 存储库上使用 Git,但有一些限制。例如,您将使用 git dcommit 推送到 SVN 存储库。您也必须使用变基策略而不是合并。但除此之外,你会得到彩色差异、隐藏、变基、正确处理多个分支、默认情况下正确格式化补丁等。

如果您已经知道 git,这会给您带来更多,减少烦恼。

It looks like I can do file-level selection, but not changes within those files?

使用 Visual Studio 2017 的 VisualSVN 插件可以轻松实现这一点。该功能称为 QuickCommit,它可以帮助您部分提交文件中的选定更改。

在Visual Studio编辑器中使用提交此块提交选择上下文菜单命令。

这是一个动画截图: