- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
8年前关闭。
这里的人们认为 Git、Mercurial 和 Bazaar 的相对优势和劣势是什么?
在考虑它们中的每一个并针对 SVN 和 Perforce 等版本控制系统时,应该考虑哪些问题?
在计划从 SVN 迁移到这些分布式版本控制系统之一时,您会考虑哪些因素?
最佳答案
Git 速度非常快,扩展性非常好,并且对其概念非常透明。不利的一面是它的学习曲线相对陡峭。 Win32 端口是可用的,但不是一等公民。 Git 将哈希作为版本号公开给用户;这提供了保证(因为单个哈希总是指完全相同的内容;攻击者无法在不被检测到的情况下修改历史记录),但对用户来说可能很麻烦。 Git 具有跟踪文件内容的独特概念,即使这些内容在文件之间移动,并将文件视为一级对象,但不跟踪目录。 git 的另一个问题是它有许多操作(例如 rebase),这使得修改历史变得容易(从某种意义上说——散列引用的内容永远不会改变,但对散列的引用可能会丢失);一些纯粹主义者(包括我自己)不太喜欢那样。
Bazaar 相当快(对于历史较浅的树来说非常快,但目前随着历史长度的扩展很差),并且对于那些熟悉传统 SCM(CVS、SVN 等)的命令行界面的人来说很容易学习。 Win32 被其开发团队视为一流目标。具有针对不同组件的可插拔架构,并频繁更换其存储格式;这使他们能够引入新功能(例如更好地支持与基于不同概念的修订控制系统的集成)并提高性能。 Bazaar 团队认为目录跟踪和重命名支持一流的功能。虽然全局唯一的修订 ID 标识符可用于所有修订,树本地 revnos(标准修订号,更类似于 svn 或其他更传统的 SCM 使用的那些)代替内容哈希来识别修订。 Bazaar 支持“轻量级 checkout ”,其中历史记录保存在远程服务器上,而不是复制到本地系统,并在需要时通过网络自动引用;目前,这在 DSCM 中是独一无二的。
两者都有某种形式的 SVN 集成可用;然而,bzr-svn 比 git-svn 强大得多,主要是由于为此目的引入了后端格式修订。 [更新,截至 2014 年:第三方商业产品 SubGit 提供了 SVN 和 Git 之间的双向接口(interface),其保真度与 bzr-svn 相当,并且更加完善;在预算和许可限制允许的情况下,我强烈建议使用它而不是 git-svn]。
我没有广泛使用 Mercurial,因此无法对其进行详细评论——除了要注意它与 Git 一样,具有用于修订的内容哈希地址;也像 Git 一样,它不会将目录视为第一类对象(并且不能存储空目录)。然而,它比除 Git 之外的任何其他 DSCM 都快,并且比任何竞争对手都具有更好的 IDE 集成(尤其是对于 Eclipse)。鉴于其性能特征(仅略落后于 Git)及其卓越的跨平台和 IDE 支持,Mercurial 可能会吸引拥有大量以 win32 为中心或受 IDE 限制的成员的团队。
从 SVN 迁移的一个问题是 SVN 的 GUI 前端和 IDE 集成比任何分布式 SCM 的更成熟。此外,如果您目前大量使用 SVN 的预提交脚本自动化(即要求在提交之前通过单元测试),您可能希望使用类似于 PQM 的工具。用于自动 merge 请求到您的共享分支。
SVK 是一个 DSCM,它使用 Subversion 作为其后备存储,并且与以 SVN 为中心的工具有很好的集成。然而,它的性能和可扩展性特征比任何其他主要的 DSCM(甚至 Darcs)都差得多,并且应该避免用于可能在历史长度或文件数量方面变得很大的项目。
[关于作者:我在工作中使用 Git 和 Perforce,在我的个人项目和嵌入式库中使用 Bazaar;我雇主组织的其他部分大量使用 Mercurial。在前世,我围绕 SVN 构建了大量自动化;在此之前,我有 GNU Arch、BitKeeper、CVS 等方面的经验。 Git 一开始很令人反感——感觉就像 GNU Arch,因为它是一个概念繁重的环境,而不是为符合用户选择的工作流程而构建的工具包——但从那时起我就非常适应了它]。
关于svn - Git、Mercurial 和 Bazaar 的相对优势和劣势是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77485/
首先对WCF与WebService的定义进行概括,接着介绍了WCF的优势,最后就是对WCF与WebService两者的根本区别进行比较,具体内容如下 1、定义 1.WebService:严格来
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 5年前关闭。 Improve t
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
谁能告诉我将下一个脚本标记放在 元素之后和将它放在 元素之前有什么好处? (function (){ var script = document.createElement("script"); s
我最近遇到了一个 JavaScript 脚本,其中作者似乎试图避免在代码中使用字符串并将所有内容都分配给一个变量。 所以代替 document.addEventListener('click', (e
Scott Meyers 在“Effective Modern C++”中说表达式 Matrix sum = m1 + m2 + m3 + m4 (其中所有对象的类型均为 Matrix)“如果 ope
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
免责声明:我是网络开发的新手,所以请多多包涵... 堆栈:Angular 前端,后端的 Tornado(基于 python)网络服务器 我一直在使用 RxJs 和 WebSocket 成功地与后端通信
我一直在调查我的 Flutter 应用程序的 JSON 解析,并且有一个关于我无法解决的工厂构造函数的问题。我试图了解使用工厂构造函数与普通构造函数的优势。例如,我看到很多 JSON 解析示例,它们使
添加 SQL 后尝试打开 TadsQuery 时出现 5400 AE_INTERNAL_ERROR。当我将相同的 SQL 直接放在 TadsQuery 中时,没有错误。您的帮助文件指示我联系 Adva
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 8年前关闭。 Improve this
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improv
我想定义一个函数,当给定一个整数时,它将返回一个字符串。像这样: # Pseudocode function get_string(i) return my_string_array[i] end
我曾尝试在 Linux 和 Windows 上使用 DBD::Advantage,但没有成功。 Windows 版本附带了一个看似完整的安装程序,但它留下了 DBD-Advantage-8.10.ta
为什么说 NoSQL 在结构上比某些 SQL 数据库更快?假设我在某个 SQL 表的列上添加了一些索引。有人可以提供某种更快的查询吗? 我正在阅读有关 redis 的内容。 class User <
我的问题很简单:如果接口(interface)由单个类实现,那么使用接口(interface)有什么好处吗? 我一直认为只有当该接口(interface)有多个实现时,接口(interface)才是好
考虑这些(或多或少)等价的类型签名: f1 :: [a] -> Int -> a f2 :: Integral b => [a] -> b -> a f2 比 f1 更通用,这是一个很大的优势,但是
我们在 Scala 中部分应用了函数- def sum(a:Int,b:Int,c:Int) = a+b+c val partial1 = sum(1,_:Int,8) 我想知道使用部分应用函数的优点
你看下面的代码,我是如何使用 session 变量的;所以这三个问题是: 它们存放在哪里? (服务器或客户端) 它们对于每个网页访问者来说都是独一无二的吗? 我可以在完成工作后使用 ajax 或简单的
我知道这是一个常见问题,互联网上有关于此主题的资源,但我想从这个社区了解每个人在部署博客时对子域与子文件夹的想法(SEO 优势)。 谢谢。 最佳答案 我研究过一次,根据社区反馈以及权衡利弊,我会说去一
我是一名优秀的程序员,十分优秀!