问题标签 [darcs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
version-control - 对于玩具项目,哪种版本控制系统最容易设置和使用?
我在 CS 系教授第三门必修的入门课程。我的一项家庭作业要求学生加快他们为之前的作业编写的代码。十倍的加速是常规的;100 或 1000 的因数并非闻所未闻。(对于 1000 倍的加速,你必须在 malloc() 中犯过新手错误。)
程序由一个序列改进是小的变化。我要求学生记录和描述每一个变化和由此产生的改进。
当你在改进一个程序时,也有可能破坏它。退出不是很好吗?
您可以看到我的意图:我的学生将从版本控制中受益匪浅。但有一些警告:
- 我们的计算环境被锁定。任何依赖于中央存储库的东西都是可疑的。
- 我们的学生超负荷工作。不仅是课程,还有工作、运动、音乐,应有尽有。对于他们来说,使用新工具必须非常简单并且有明显的好处。
- 我们的学生大部分工作都是成对完成的。在帐户之间来回获取位是有问题的。分布式版本控制也能解决这个问题吗?
- 复杂性是敌人。我知道建立一个 CVS 存储库太令人费解了——我自己仍然有麻烦,因为我每年只做一次。我听说SVN更难。
以下是我对现有系统的评论:
- 我认为中央版本控制(CVS 或 SVN)被排除在外,因为我们的学生没有创建可以与其他学生共享的存储库所需的管理权限。(我们被 Unix 文件权限困住了。)另外,在 CVS 或 SVN 上的设置太难了。
- darcs 很容易设置,但你如何分享东西并不明显。darcs send(通过电子邮件发送补丁)似乎很有希望,但不清楚如何设置它。
- git 的介绍性文档不适合初学者。就像 CVS 设置一样,我自己也遇到了麻烦。
我正在征求有关初学者使用什么源代码控制的建议。我怀疑我们可以找到资源来在现有系统上加上一层薄薄的外衣并简化现有文档。我们可能没有资源来编写新文档。
那么,什么是真正易于设置、提交、恢复和与合作伙伴共享更改,但不一定要易于合并或大规模工作?
一个关键的限制是编程配对必须能够彼此共享工作并且只能彼此共享,并且配对每周都在变化。我们的基础架构是带有 netapp 文件管理器的 Linux、Solaris 和 Windows。我怀疑我的 IT 员工想要为每对学生创建一个 Unix 小组。有没有我忽略的更简单的解决方案?
(感谢接受的答案,由于它对Git Magic的出色参考以及有用的评论而击败了其他人。)
version-control - darcs 修改记录工作流程
录制补丁,将其拉入我的暂存分支,然后意识到我做了一些小而愚蠢的事情,比如日志消息中的拼写错误,或者类似的琐碎的事情并不罕见,这并不罕见(在我看来)全新的补丁。
在这些情况下,我一直在使用:
更新补丁。但是当我重新拉动 darcs 时会将补丁视为冲突,因此我最终不得不取消记录并恢复暂存分支中的补丁,然后再次拉动它。
是否有 darcs 命令或选项可以让我更简单地拉出修改后的补丁?
bash - darcs帮助打破我的外壳
我刚刚安装了 darcs 2.1.2.2。当我输入 darcs help 时,会出现一些不太像的东西。当我用 q 关闭它时,它会消失,但我没有得到提示,也无法执行任何命令。抄送也不行。我在gentoo上使用bash。
conflict - 达尔克冲突
几天前我安装了 Darcs 并有疑问。我是唯一的程序员,我通常在应用程序的两个或三个实例上工作,开发新功能。问题来了,因为这个实例修改了相同的源代码文件,所以当我完成它们并将它们发送到主存储库时,它们会产生冲突。有什么办法可以解决这个问题吗?推送到主存储库时,我可以在多个实例中编写相同的文件而不会产生冲突吗?谢谢
plugins - 是否有适用于 Hudson 的 Darcs 插件
有没有一个插件可以将 Darcs-Support 添加到 Hudson?我在 Hudson 的Pluginlist上没有找到参考,所以有人找到插件吗?我知道我可以编写自己的插件,但如果其他人已经这样做了,我可以节省时间......
谢谢!
git - 为什么是 darcs 而不是 git?
使用纯函数式语言比使用不纯的命令式有很多好处,但是低级系统语言通常可以让您获得更高的性能,尤其是当它们是命令式时,因为它允许您指定 cpu 应该如何计算的确切步骤结果。
如果曾经有一个工具列表绝对需要高性能,那么我会将 VCS 放在该列表的顶部,而 git 很好地实现了这一点。然而,与许多其他类型的版本控制系统相比,性能并不是 git 的唯一优势。
git 团队很好地处理了不安全的 c 代码,我从不担心我的类型系统(或它所用语言的任何其他功能),所以为什么有很多 haskell 开发人员必须使用 darcs他们什么时候只使用成品?
git - 如何从远程 git 存储库一次提取一个提交?
我正在尝试设置 git 存储库的 darcs 镜像。我有一些可以正常工作的东西,但是有一个重大问题:如果我将一大堆提交推送到 git 存储库,这些提交会合并到一个 darcs 补丁集中。我真的很想确保每个 git 提交都设置为单个 darcs 补丁集。我敢打赌,这可以通过对远程分支的本地副本进行某种git fetch
随后的询问来实现,但是我的 git fu 不能胜任这项工作。
这是我现在使用的(ksh)代码,或多或少:
我的想法是
- 尝试
git fetch
获取远程分支的本地副本(不确定需要哪些参数) - 自上次镜像操作以来,以某种方式询问本地副本以获取每次提交的哈希(我不知道如何执行此操作)
- 循环遍历所有哈希,仅提取该提交并记录相关的补丁集(我很确定如果我得到哈希,我知道该怎么做)
我欢迎帮助充实上述场景或建议我应该尝试的其他事情。
想法?
version-control - 版本控制中的空格(darcs)
我们办公室的一名初级程序员有一个不幸的(但可以理解的)习惯,即使用 Eclipse 的“更正此文件中的所有缩进”功能。结果,他签出的副本包括数千行注册为更改的行,这仅仅是因为空格不同。接受所有这些更改——而其他人也在处理相同的代码,其中一些人在不同的办公室——将导致冲突。同时,我们不想丢掉他所做的所有工作。
Darcs 是否有任何选项可以忽略或规范化空白更改?或可以恢复差异的工具?
darcs - 如何识别 darcs 存储库中的修订?
我的意思是我需要通过一些数字或字符串来识别一组应用的补丁,以快速检查我是否与其他人有相同的代码版本,而没有任何同步。
是否有一些内置的 darcs 解决方案?
haskell - 用于集中式 Haskell/Darcs 工具链的轻量级持续集成?
我想要一些简单的 CI 用于小型开发设置。两个动机——一个完整的构建需要一些时间,一个预期的测试套件也需要一些时间。我真的不想一头扎进需要Java应用程序容器或其他任何东西来显示具有多种颜色的精美图形等的大玩家之一。我特别对“文化上”的Haskellish感兴趣——最好是命令行交互或配置文件,与 Darcs 互操作是绝对必须的。
是否存在任何此类工具,或者我是坚持使用其中一个大玩家还是自己编写?
说到这,我记得有一个为 GHC 设置的构建农场。看着它,我注意到它曾经使用 buildbot,现在使用自定义构建器。尽管它们是为不同的工作流程设置的,但它们中的任何一个都是更简单、更直接的解决方案吗?
编辑:我现在要使用 buildbot。将更新它的工作原理。
Edit2:Ben Lippmeier 将 buildbox 放在了 hackage 上,这似乎也是原生 Haskell CI 解决方案的基础。它目前没有得到充分的记录,并且可能无法满足我的需求,但这里是:http ://hackage.haskell.org/package/buildbox 。他用它为 repa 编写了一个 buildbot:http ://code.haskell.org/repa/repa-head/repa-bot/ 。