- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 Bazaar 来处理一个使用 Subversion 且历史悠久的项目。例如 svn://svn.freebsd.org/base/head
。
有一个很好的插件 bzr-svn
可以用来处理 SVN 存储库。有一些相关工作流程的例子here .
我的问题是,我发现的所有内容似乎都是在假设我想从 SVN 导入完整历史记录的情况下编写的。我不想那样做。它占用太多磁盘空间(实际上,如果我尝试,导入将耗尽内存)。我真的不关心某个 SVN revno/tag 之前的任何更改。但我确实想让每个人在截止点之后提交,以便在 Bazaar 端正确显示。我怎样才能做到这一点?
我的供应商分支基本上需要以下逻辑(我可以从中创建本地分支):
svn co svn://svn.freebsd.org/base/head -r CUTOFF_REVNO
while true
do
svn up -r NEXT # note: NEXT is not possible even though there is PREV
bzr commit
sleep N
done
显然上面没有在 Bazaar 中存储提交消息和其他类似的东西,这是一个问题。我可以将其设为每天的 cron 作业,它只执行 svn up
并在一天内将所有 SVN 更改提交到 Bazaar 分支中,每天提交一次。
我怎样才能做到这一点,以便将元数据和个人提交正确转换为 Bazaar(与在 SVN 端发生的粒度相同)?我不需要能够推送到 SVN。我所需要的只是一种单向解决方案。我希望某个地方有一个工具可以做到这一点!
最佳答案
我想我找到了一个潜在的解决方案,所以我自己回答。
有一个工具叫做 Tailor可以做到这一点。它是一个通用解决方案,因此适用于大多数流行的版本控制系统(例如 CVS、SVN、Bazaar、Mercurial、Git、Darcs 等)。
为了完成我所要求的,我需要以下配置文件,例如 freebsd-tailor.conf
:
[DEFAULT]
verbose = True
projects = freebsd-current
[freebsd-current]
root-directory = /home/tailor/freebsd-current
subdir = upstream
source = svn:freebsd-current
target = bzr:freebsd-current
start-revision = 225424
[svn:freebsd-current]
repository = svn://svn.freebsd.org/base
module = /head
encoding = iso-8859-1
[bzr:freebsd-current]
然后我只运行 tailor -c freebsd-tailor.conf
在 revno 225424 进行初始同步,然后每次我想增量获取新更改时重新运行命令。
我目前正在测试这个。无论成功或失败,我都会更新我的答案。其他解决方案仍然受欢迎。 :)
更新:
我简化了配置示例并添加了 encoding
条目,这似乎是许多项目所必需的。
到目前为止,我的测试结果是 tailor 不幸的是对于大型项目(例如在我的示例中)不是很健壮。由于某种原因,我的 bzr 存储库中缺少一个子目录,并且使用 tailor 拉取更新非常缓慢并且占用大量资源。也许它适用于小型项目。我喜欢 tailor 有这么多不同 VCS 的后端,并且对它们的差异持中立态度。
关于svn - 在不导入完整历史记录的情况下使用 Bazaar 镜像 Subversion 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7419484/
在我的本地机器上,配置与测试和生产服务器不同。 每次我想提交我的本地代码时,它都会注意到(Bazaar Explorer)我编辑了配置文件。现在我在每次提交时都明确地忽略了这个文件。然而,这偶尔会出错
Bazaar 有没有办法自动检测对部分工作目录所做的更改(添加、删除、重命名等)并自动应用它们? 我的存储库中有一个目录树,它是由另一个进程生成的,所以我不能执行所有的 bzr add、bzr del
我正在编写一个框架以及一个使用该框架的项目。该项目是一个 Bazaar 存储库,框架位于项目下方的子文件夹中。 我想为框架提供一个自己的 Bazaar 存储库。我该怎么做? 最佳答案 您使用 spli
这是为了避免在存在冲突时该文件中出现一些 >>。 如果存在冲突,我只想要一条消息告诉我存在冲突,并且 bazaar 不应该弄乱该文件。 使用 subversion,您可以修改 svn:mime-typ
给定以下场景: $ bzr init-repo foo $ bzr init foo/bar $ cd foo/bar $ echo 'some text' > a_file $ bzr add a_
如何通过 HTTP 代理使用 Bazaar?我在他们的文档中找不到任何内容。 最佳答案 设置 http_proxy指向您的代理的环境变量,例如。 (在 Windows 上): set http_pro
有没有办法告诉 bzr 不要将所有内容都记录到 ~/.bzr.log 或者配置它以将日志文件放入 ~/.bazaar/` 而不是? 最佳答案 environment variable BZR_LOG允
有时,我键入bzr add并没有注意到我不在分支的根目录中,而是被忽略的子文件夹。然后,这会将所有文件添加到该文件夹中-通常是一个包含很多文件的build文件夹。因此出现了一个问题:如何撤消bzr
有没有办法找出 bzr 更新会在不实际执行的情况下进行哪些更改。 具体来说,如果发生冲突,我想发出一点警告。 最佳答案 不是我直接知道的,这就是 bzr revert是为了。但是,有一种常见的方法可以
我的Bazaar工作树中有一堆我不再想要的未知文件。我可以使用bzr stat获得它们的列表,但是我想要一种简单的方法来摆脱它们。 (我希望bzr revert有一个选项可以做到这一点,但我找不到。)
我想提议对 Launchpad 中托管的项目的源代码进行更改。 问题是:我不知道如何使用 bazaar 版本控制系统,我从来没有使用过 Launchpad,那么发出 Github pull reque
我正在集市的一个功能分支上工作。为了在本地构建项目,我在本地修改了一个文件 (build),尽管我不希望此更改包含在我的提交中。大多数时候我记得从 bzr commit 中排除该文件,或者在看到摘要时
我目前正在使用 bzr (bazaar) 源代码管理软件进行编码项目。我想在我的项目的文件代码中包含版本号 这样我就可以调用变量“VERSION”并回显我当前的工作版本。在代码中能够做到这一点: va
我在共享服务器上有一个集市存储库。我想清理 repo 并从头开始设置它,但要保留我的历史记录。我不知道最初是如何创建存储库的(有没有办法找出来?)。 我可以建立一个分支并将其添加到我的主要共享存储库中
我们有一个集中式开发服务器,每个人都在本地结账处工作。我们如何仅忽略本地存储库中的特定目录,而不忽略集中存储库中的特定目录? 一些背景资料: 该项目是一个Drupal站点,该站点的文件目录一直在变化。
我已经使用 the instructions 获得了 OpenERP 源代码. 我已经搬了整个source在我的其他地方的目录 home . 现在,当我尝试 pull更改它会引发错误: shahar@
我希望 bazaar 在提交时写入修订号到已提交分支中的文件,以便此修改包含在提交中。 我查看了钩子(Hook),但 pre_commit 钩子(Hook)仅在创建变更集后运行,因此它执行的修改不会提
我希望能够设置/获取与 bzr 中的工作树相关的一些自定义属性。当我在特定工作树中开始构建源代码时,可以使用这些属性。例如,我们的软件使用 PostgreSQL 数据库实例,每个构建(在工作树/分支内
我使用 Bazaar,我喜欢它。一般来说,我只是创建不同的分支并分别管理它们。我刚刚发现所有这些分支都可以放入存储库中。如果我理解正确,这应该可以节省内存并提高速度,因为分支之间的一些共同祖先是共享的
有人将所有二进制文件提交到我们的 bazaar 主干,我想摆脱它。 `bzr del file' 只从当前修订版中删除文件,而不是文件的历史记录。 有没有办法可以删除文件历史记录,这样我们就不必下载数
我是一名优秀的程序员,十分优秀!