什么VCS允许我同时添加更改到多个挂起的提交?

Eog*_*anM 3 svn git mercurial dvcs bazaar

我的工作流程通常涉及我对文件进行多项更改,每个更改都属于项目(= commit)中自己的概念变更单元.

我希望能够做的是添加某些差异(整个文件,或者只是文件的某些行)到挂起的提交(可能必须被命名)并且有多个挂起的提交"活动"同时.

然后,当所有文件中完成与特定挂起提交相关的所有更改时,我可以提交命名提交!

有什么想法VCS会是一个很好的候选人吗?

Wim*_*nen 6

在svn中,您可以定义更改列表,然后仅提交特定更改列表中的文件.

Git更进一步,允许您通过使用git add -p以交互方式从文件中选择更改的块来记录补丁.

虽然很受欢迎,但这些功能与最佳实践相悖.您无法以这种方式正确测试更改.一切都可以在您的工作副本中工作,但只提交部分更改可能会破坏构建.使用功能分支更安全,任何现代版本控制系统都支持此功能.

还有Mercurial ShelveExtensiongit-stash,它们允许您以修补程序块的粒度搁置选定的更改以供稍后提交.这种工作方式确实允许您在提交前正确测试.

  • Mercurial肯定使用现在内置的mq(mercurial队列)扩展来支持这种类型的工作流(https://developer.mozilla.org/en/Mercurial_Queues) (2认同)