我试图建立和遵循的最佳做法的版本控制,并遇到了一个参考原子承诺中的颠复活动。因为我从来没听过这种动作,我有几个问题。

  • 什么是它的目的是什么?
  • 当它应该是使用?
  • 它是如何不同于正常提交?
  • 是的它可以 如今 用户?如果是这样,怎么样?
有帮助吗?

解决方案

没有特别命令于原子提交。每次提交在颠复是原子的。

这意味着每次提交(任何数量的文件)将不成功或失败作为一个整体。
这是不可能的,只有一些提交文件,使它的储存库和其他人不是(例如,因为一个错误发生在中间提交操作或冲突一个文件)。

这是相同的,如今,由于它建立在"正常"颠复功能。


以下是摘录 颠复本书:

Svn承诺作出版 改变任何数量的文件和 目录,作为一个原子 交易。在你的工作副本,你 可以改变文件内容;创建, 删除,重新命名,以及复制和文件 目录;然后提交一个 完成设置的改变为一个原子 交易。

通过原子交易,我们的意思是只是 这样的:无论是所有的改变发生 在储存库中,或者他们没有 发生。颠复试图保留 这原子面对的程序 崩溃,系统崩溃,网络 问题,以及其他用户的行动。

其他提示

这个想法很简单,就是改变一个文件是通常相关的更改在另一个。一些旧的版本控制系统并没有真正处理多文件之一提交(因为"原子承诺"如你所说)或者他们没有这么差。

你不需要做什么特别的东西。这仅仅是如何颠复工作。但与颠复你有选择的检查,在一个文件的时间或做的所有修改文件或任何地方之间。

想做的多个文件作为一项承诺是,一般来说—你应该能够检查了储存库的任何特别的版本,它将至少编制并希望运行。这是重要的团队。现在在实践中,这可能不是真的100%的时间,但是指导原则是健全的。

所以无论你做一个文件,所有的变化,在一次或者东西之间有什么你在检查中应该使意义,因为一提交。如果你解决的一个错误以及需要修改8的文件,检查了所有这8的文件,如一个承诺与一个消息,说什么错误你和你如何固定它。这将可以更容易滚出来后,如果有一个问题。

"原子"在这种情况下是指原子操作。你可以找到一个很好的定义,在这里:http://en.wikipedia.org/wiki/Atomic_operation

所有提交在SVN是自动的原子,因此你得到免费的到处都是你做的承诺。

如果你想知道什么原子承诺是很好的,想象一下,你合并的一个分支进后备箱上的磁盘。你开始在早晨以及午餐后你完了,一切都汇编,并且所有单元的测试成功运行。你然后提交的200多个文件过程中更改,合并。

在SVN,无论是承诺成功和所有200多个文件提交在一个去的或者提交失败和没有变化,在所有被制成的存储库。(没有更多要说的关于此。这只是它的始终应该是。)

在CVS,没有原子的提交,它可以发生,您的提交被中断之后150文件,因为有人撞在你的网络电缆,其余的50多个文件不被犯下,留下储存库的中间状态。虽然你尽量插入您的网络电缆,其他人在你的团队的检查在另一组的修改。设的变化是不相交的你已经检查过,所以其他人的承诺成功。然而,变化是不相容的。现在的团队坚持一个资料库,包含代码,甚至不译,让我们单独通过任何测试。什么更糟糕的是:你们两个有一个团队管理呼吸了你的脖子解决这些不兼容的变化尽快使剩余的团队可以阻止播放的地震和回到工作。

令人惊讶的是,这种情况下不是不可能的,因为它似乎。我已经有好几次,有我收藏的烂的衬衫。

了解真实利用原子犯,阅读本关于连续的一体化:

http://en.wikipedia.org/wiki/Continuous_integration

使用的是真正关心确保可以撤销所有的变化的一个特定的开发人员在情况下的融合的问题。这是一个非常强大的功能,在保持完整性的代码存储库。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top