问题标签 [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.
git - 将 Git 存储库转换为 Darcs
我想将我必须的 git repo 移到 darcs。我无法找到解释如何执行此操作的文档或项目;看起来大多数用户都想走另一条路。此外,能够从 darcs 控制 git repo 会很酷。
apache - 重写 url 将查询字符串转换为目录路径并从 url 中删除 cgi 脚本文件名和路径
我正在尝试重写:repo.pointfree.net/darcsweb/darcsweb.cgi?r=remixbot;a=summary
例如repo.pointfree.net/remixbot/summary/
。
...但是 url 显然没有被重写(当我访问 repo.pointfree.net 时,我得到了Error 403 Forbidden
)。这是我.htaccess
的/home/public/werc/sites/repo.pointfree.net
:
这是.htaccess
在/home/public/
:
我在 /home/public/werc/sites/repo.pointfree.net/ 中有一个符号链接到 /home/public/darcsweb,名为 darcsweb
对此的任何帮助将不胜感激。
谢谢, 安德烈亚斯
编辑,在应用 Andreas Gohr 的建议并访问 repo.pointfree.net/remixbox/summary/ 之后,我在我的日志文件和浏览器中的 404 页面中得到了这个。
当我将 favicon.ico 复制到 /home/public/ 时,我得到:
我还查看了 rewrite_log 的输出,没有提到 darcsweb(短路?):
git-submodules - darcs 相当于 git 的子模块?
所以是的,只是想知道 darcs 是否有任何与 git 的子模块等效的东西。
即假设我有一个 repo (myapp),我有一个名为 mylibrary 的文件夹。mylibrary 与 myapp 的开发没有任何关系,它只是必须包含在内。mylibrary 的开发发生在它自己的 repo 中,但是当有人拉取 myapp 时,它也会拉取最新版本的 mylibrary。有任何想法吗?
version-control - 使用 darcs 拉取已删除文件时的冲突标记混淆
我的困惑源于从此处获取的以下声明:
当拉取相互冲突的补丁(例如,更改文件的相同部分)时,Darcs 会检测到冲突并将其标记在存储库内容中。然后它让用户解决问题。
这似乎与我所看到的不一致,因此我使用 darcs 2.5.2 创建了以下工作流程:
- 创建回购 foo;
- 在 foo 中创建一个非空文件并记录下来;
- 将 foo 克隆到 bar;
- 删除foo中的文件并记录;
- 在bar中的文件中添加另一行并记录它;
- 从 foo 拉入 bar,获取冲突通知;
采取这些步骤后,我darcs whatsnew
在 bar 中运行,并显示了两个“补丁原语”:
- 删除所有“foo 中的非空文件”的大块头,但没有提及在 bar 中添加和记录的行;
- 删除文件的 rmfile。
我的问题是:为什么没有提及添加并记录在栏中的行?
如果我darcs revert
在 bar 中运行,那么一切都是有道理的:我看到“非空文件”受到两个冲突补丁的影响,根据从这里获取的语句:
命令 darcs revert 将删除冲突标记并恢复到冲突补丁之前的状态。
但是,如果我运行darcs mark-conflicts
,我会回到与拉动后相同的状态,使用上面提到的两个“补丁原语”,并且没有提及添加并记录在 bar.xml 中的行。
供参考/复制这里是我从命令行的完整工作流程:
diff - darcs 的图形差异
看到纯文本格式的 darcs 更改我感觉不太舒服,所以我一直在寻找一种工具来显示更改的并排比较。
对于whatsnew
我只能使用meld
,但是当我需要查看已经记录的更改时,它就不会那么容易了。我读过它diffuse
允许比较不同的修订版,但我无法让它工作。
我试过了
但它失败了(我认为修订命名是特定于 git 的),那么有人知道如何查看 darcs 的最新更改吗?
欢迎提出其他可以完成这项工作的工具(并且最好不需要设置 Web 服务器)的建议。
git - 与当前提交的祖先合并
合并来自同一个分支的先前被拒绝的想法如何在各种版本控制系统中工作?哪个提供支持?
这是我有根据的猜测——这个总结准确吗?
Git 和集中式 VCS:大概,您还原了要合并的提交。因此,您实际上是在尝试合并当前提交的祖先。我还没有尝试过,但我不认为它会得到很好的支持。我想您可以与要合并的提交的相关祖先(事后看来隐喻的“分支点”)进行三向合并(您必须识别它,因为没有记录) -但是VCS会支持这个还是你必须自己做呢?
Mercurial,使用书签(或以与书签类似的方式使用匿名分支):如果您努力使用此方法,您将“逆转路线”并在您之前拒绝的时间点从旧提交的祖先分支它。因此提交,即使它最初是在这个分支上完成的,现在不在这个分支上(因为书签是动态的,不是不可变的,而且因为你颠倒了路线),所以根本没有问题。合而为一!
Darcs,如果 head 和旧提交之间没有标签:虽然在 darcs 中,它看起来好像你有一条直线提交,但你实际上拥有的是第一个提交或最近的标签之间的依赖关系图, 和 head (这一点都不明显,AFAIK 仍然没有工具可以将其可视化!)。因此,如果 darcs 认为您的旧提交独立于当前头部(这很可能,因为您已经恢复了旧提交),它们是不可见的独立分支,并且可以非常愉快地合并。如果 darcs 认为旧的提交依赖于 head,那么这种情况大概就像 git 案例一样,尽管我认为除了 David Roundy 之外,没有人完全理解 darcs 补丁理论。
Darcs,如果同时有一个标签:我认为这就像 git,因为一个标签将所有不可见的头捆绑在一起并形成一个依赖于所有头的头(这可能是最容易- 了解 darcs 补丁理论的各个方面)
脚注:为简洁起见,我自始至终都提到了“旧提交”,尽管先前被拒绝的想法当然可能是一长串提交。
git - Git/Mercurial/Darcs 的静态 Web 前端
最近我发现了git2html项目:git2html 是一个简单的 git web 界面。与其他 Web 界面不同,git2html 不会动态生成内容:它不使用 CGI 脚本,而是生成静态 HTML 页面。
我的问题很简单。你知道有类似目标的 Git、Mercurial 或 Darcs 的其他项目吗?我对这些 DVCS 的静态 Web 前端很感兴趣,但如果您想为不同的开源 DVCS 评论其他项目,这是公平的。
installation - 安装 darcsden
在 cabal 安装 darcsden 代码后,我收到以下消息:
cabal:重新安装可能会破坏以下软件包: bin-package-db-0.0.0.0 ghc-7.4.1 如果您仍想安装,请使用--force-reinstalls。
我该如何解决这个问题?这是什么意思?
darcs - 编写 darcs 脚本的正确方法是什么?
我有几个不同的 darcs 存储库,我想编写一个脚本,以便在一天结束时自动从这些存储库推送更改。我在这个线程上读到,编写 darcs 脚本的“正确”方法是使用该库。但是在这里http://darcs.net/Library它说“这是一项正在进行中的工作”并且缺乏稳定的 API。编写 darcs 的“正确”方法是什么。
haskell - 如何使用darcs库查询补丁信息?
我想编写一个 Haskell 程序来查询有关 darcs 存储库的信息。我宁愿直接使用 darcs 库,而不是调用 darcs 可执行文件并解析结果。据说它“正在进行大量工作”并且“缺乏稳定的 API”,但似乎可用。
我想我可以通过研究 darcsden 源代码来回答我的问题,例如,从这个模块开始,但我认为如果有知识的人提供评论介绍来补充这样的研究,这不仅对我有帮助。
所以,这里有一个具体的例子。
如何为给定文件计算影响它的最新补丁以及补丁的日期、作者和名称?如果您解释解决方案中使用的关键库函数,这将非常有用。
编辑:
这里有一些对不熟悉 darcs 源代码的人可能不明显的评论。我是从Jason Dagit 的硕士论文中学到的,希望它们有助于理解 Ganesh 给出的答案。
在 Darcs 中,补丁有一个前后上下文,表示应用补丁之前和之后存储库的状态。在源代码中,这些上下文是在补丁类型上使用幻像类型建模的。这些幻影类型被称为见证seal2
者,用于摆脱它们。
在补丁列表中,只有第一个前上下文和最后一个后上下文在类型中表示。所有其他上下文都使用存在类型隐藏。Darcs 定义了前向列表(称为 FL)和反向列表(称为 RL)。反向列表以反向(按时间顺序)顺序存储补丁(由 darcs 完成的模补丁重新排序)。反向列表可用于访问头部位置的最新补丁。所有名称中带有 RL 的函数都会创建或操作此类反向列表。