Version control Emacs VCS接口仅提交一个文件

Version control Emacs VCS接口仅提交一个文件,version-control,emacs,dvcs,commit,bazaar,Version Control,Emacs,Dvcs,Commit,Bazaar,当我使用Emacs的内置VCS接口提交更改时(我在Bazaar中使用它),它只提交一个文件——该文件在当前缓冲区中打开。 所以当我按下C-cv,输入message和C-ccc-C时,它会做如下操作 bzr commit -m "my message" file/open/in.buffer 而不是 bzr commit -m "my message" 如何使用Emacs提交所有更改?从identi.ca用户那里得到了答案 -更好的DVCS前端。据我所知,emacs VCS界面始终基于文件,即

当我使用Emacs的内置VCS接口提交更改时(我在Bazaar中使用它),它只提交一个文件——该文件在当前缓冲区中打开。 所以当我按下C-cv,输入message和C-ccc-C时,它会做如下操作

bzr commit -m "my message" file/open/in.buffer
而不是

bzr commit -m "my message"

如何使用Emacs提交所有更改?

从identi.ca用户那里得到了答案


-更好的DVCS前端。

据我所知,emacs VCS界面始终基于文件,即它按文件而不是按更改集工作。因此,VCS不适合SVN、GIT等版本控制系统。。。其中修订是按存储库而不是按文件进行的。Magit是一个伟大的git模式,适用于在变更集上工作的emacs。似乎还有一个专用的可用文件,我假设它也适用于每个更改集而不是每个文件。

如果您从vc dir缓冲区而不是单个文件提交,那么它将提交所有更改(假设光标不指向特定文件),而不仅仅是单个文件。在目录缓冲区上的下一个操作使用“v”。vc dir缓冲区中的操作与存储库相关,而不是绑定到特定文件


正如您所发现的,使用备用前端也是一种选择,但有时了解如何使用基本的emacs发行版仍然很重要:)

仅供参考--关于DVCTried使用dvc的文章,但是。。。我更喜欢vc模式。正如@NikkiA所说的,我在上面进行了扩展,它可以提交多个文件。如果你标记文件,任何操作都会对标记的文件起作用。因此,您也可以使用此工具提交修改过的文件的任何子集。(尽管我仍然缺少集成到Emacs中的“hg crecord”(第三方扩展,而不是附带的“记录”)之类的东西,NikkiA的答案见上文,附带的接口可以做变更集。我知道我在2009年就这样使用过它,不知道它早多久就具备了这种功能。