【问题标题】:How can I use fossil (DVCS) in a home environment?如何在家庭环境中使用化石 (DVCS)?
【发布时间】:2009-08-30 07:51:55
【问题描述】:

我正在尝试将化石作为我的新 VCS,因为我是一个独自从事小型项目的开发人员。我开始测试化石,但遇到了一个(可能是主要的新手)问题。一个人如何推或拉到另一个目录(这在 Hg 上很容易)。 Fossil 拉取或推送命令需要 URL 而不是目录。当我在一个目录中启动服务器并尝试从另一个目录推送时,我收到“服务器循环”错误消息。有什么想法吗?

【问题讨论】:

  • 我忘了说我通过复制存储库文件绕过了“克隆”命令上的 URL 问题。

标签: version-control fossil


【解决方案1】:

当我尝试这个时,克隆和拉取工作就像预期的那样,没有运行化石服务器。

创建一个主存储库

>mkdir master

>cd master

>fossil new master_repos.fsl
project-id: dbcb1863865d7d3ed74f873df6daf07c5853df5e
server-id:  ea7a2e2496cc9c958cb7cc50bf48c0810b25a0a0
admin-user: james (initial password is "89ef88")

>fossil open master_repos.fsl


>echo "hello world" > a.a

>fossil add a.a
ADDED  a.a

>fossil ci -m "add a.a"
New_Version: 80b67a84ff276e559328f373008ff3014a869170

克隆主存储库

>cd ..

>mkdir trial

>cd trial

>fossil clone ../master/master_repos.fsl trail_repos.fsl
Repository cloned into trail_repos.fsl
Rebuilding repository meta-data...
3 (100%)...
project-id: dbcb1863865d7d3ed74f873df6daf07c5853df5e
server-id:  24da0b614d1a1d6cd8ac5a86200390b47b87ee27
admin-user: james (password is "89ef88")

>fossil open trail_repos.fsl
a.a
project-name: <unnamed>
repository:   C:/Documents and Settings/james/My Documents/code/test/trial/trail
_repos.fsl
local-root:   C:/Documents and Settings/james/My Documents/code/test/trial/
project-code: dbcb1863865d7d3ed74f873df6daf07c5853df5e
server-code:  24da0b614d1a1d6cd8ac5a86200390b47b87ee27
checkout:     80b67a84ff276e559328f373008ff3014a869170 2009-11-12 15:19:51 UTC
parent:       b04cc7533753a8a8a1f8a92b1be8b73cbc368660 2009-11-12 15:18:11 UTC
tags:         trunk


>type a.a
"hello world"

修改母版

>cd ../master

>echo "hello #2" > b.b

>fossil add b.b
ADDED  b.b

>fossil ci -m "add b.b"
New_Version: 863e2501037e9f215ff3ec08a1d7802315151e7b

从修改后的master中拉取

>cd ../trial

>fossil pull ../master/master_repos.fsl
                Bytes      Cards  Artifacts     Deltas
Send:             130          1          0          0
Received:         230          6          0          0
Send:             224          2          0          0
Received:         590          8          2          0
Total network traffic: 649 bytes sent, 806 bytes received

>fossil update
Autosync:  file://C:/Documents and Settings/james/My Documents/code/test/master/
master_repos.fsl
                Bytes      Cards  Artifacts     Deltas
Send:             130          1          0          0
Received:         230          6          0          0
Total network traffic: 295 bytes sent, 337 bytes received
ADD b.b


>type b.b
"hello #2"

【讨论】:

  • 我会试试这个方法。谢谢。两个月前你在哪里? ;)
【解决方案2】:

根据this fossil ticket,克隆、推送和拉取需要运行化石服务器。你不能只使用repo,你必须启动一个服务器,然后参考http://localhost/whatever,你应该是golden。

  1. 在原始存储库中运行 fossil server
  2. 转到目标目录并运行fossil clone http://localhost:8080 &lt;repository name&gt;(或推或拉)

【讨论】:

  • 感谢您的回复。我试过了,我仍然得到以下回复:“2fossil:服务器说:服务器循环”。有什么想法吗?
  • 万岁!有用。以防万一其他人偶然发现同样的问题。在原目录中打开“化石服务器”。转到目标目录和化石克隆(或推送或拉取)localhost:8080 现在看起来很明显,再次感谢。
  • 请注意,在前面的评论中,Stackoverflow 按字面意思理解了 http 地址。有编辑权限的人可以解决这个问题吗?
  • @Mosh 使用反引号 ``` 引用代码:fossil clone (or push or pull) http://localhost:8080 &lt;repository name&gt;
【解决方案3】:

如果内容相同,我使用相同的化石文件。(你不需要拉/推) 例如。

fossil new ~/fs/prj1.fossil
(mkdir prj1 ; fossil open ~/fs/prj1.fossil)
(mkdir prj1_feature1 ; fossil open ~/fs/prj1.fossil)

在某些情况下(prj1 已满,prj2 是 prj1 的子集),我使用更安全的方法“fossil ui”。 例如。

fossil new ~/fs/prj1.fossil
(mkdir prj1 ; fossil open ~/fs/prj1.fossil; fossil ui &) 
mkdir prj1_subset
fossil clone http://localhost:8080 prj1_subset.fossil
fossil open prj1_subset.fossil

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    相关资源
    最近更新 更多