Mercurial/SVN:来自一组差异的多个提交?

Mercurial/SVN:来自一组差异的多个提交?,svn,version-control,mercurial,tortoisehg,Svn,Version Control,Mercurial,Tortoisehg,假设我正在处理一个项目,其中包含文件a、B和C。在我意识到某些东西需要清理之前,我添加了一个特性,修改了a和B,完成了一半。由于环境的原因,最好是中断功能工作来进行清理。这涉及到对A、B和C进行更改 在我使用完这个特性之后,我想签入我的代码。可以说,有两组不同的更改:用于添加要素的更改和用于清理的更改。它们没有任何冲突。是否可以单独提交这些更改,以获得一个干净的回购历史记录 或者,如果我决定在完成清理后立即检入清理,但不想检入A和B中已完成一半的功能,该怎么办 我不确定在Mercurial或SV

假设我正在处理一个项目,其中包含文件a、B和C。在我意识到某些东西需要清理之前,我添加了一个特性,修改了a和B,完成了一半。由于环境的原因,最好是中断功能工作来进行清理。这涉及到对A、B和C进行更改

在我使用完这个特性之后,我想签入我的代码。可以说,有两组不同的更改:用于添加要素的更改和用于清理的更改。它们没有任何冲突。是否可以单独提交这些更改,以获得一个干净的回购历史记录

或者,如果我决定在完成清理后立即检入清理,但不想检入A和B中已完成一半的功能,该怎么办


我不确定在Mercurial或SVN中是否有可能做到这一点,但我有兴趣了解这两者。陆龟呢?

是的,你可以用Mercurial's来做。它被认为是一个扩展,但它是与常规包一起分发的。基本上,您运行该命令,它会询问每个文件,您想从这里提交任何内容吗?。如果您说是,它会询问您是否要提交每组行。您还可以在特定文件上运行它。例如:

hg record A B C
在这种情况下,它不会麻烦您询问其他文件的更改

每个帅哥的选择是:

y - record this change
n - skip this change

s - skip remaining changes to this file
f - record remaining changes to this file

d - done, skip remaining changes and files
a - record all changes to all remaining files
q - quit, recording no changes

? - display help

编辑:TortoiseHg有一个集成的功能,名为,它基本上是一个与record相当的GUI。

该扩展提供了一个很好的curses界面,让您可以准确地选择要提交的待定更改。

很有趣。这与乌龟是如何结合的?