hggit 不导出未合并的分支
hggit doesn't export unmerged branches
我正在使用 hggit 将我们的 Mercurial 存储库导出到 git。我在这里学习教程:http://arr.gr/blog/2011/10/bitbucket-converting-hg-repositories-to-git/
然而,这会错过所有未合并到默认值的分支。我想这是因为单个书签(hg bookmark -r default master)。我需要分别为每个打开的分支添加书签吗? hggit 能否以某种方式选择所有打开的分支(因为我们可能有很多分支)?
Can hggit somehow pick all open branches
是的。您错过了 hg-git
中的选项
branch_bookmark_suffix = SOME-STRING
翻译(透明地)在 Git 的 "branches" 中命名的 Mercurial 分支(如果需要,还向后翻译)。来自我个人配置的示例
[git]
branch_bookmark_suffix =_bkm
所有 HG-branches 将在 Git-repo 中获得此 _bkm
后缀,并将以 Git-branches 这个全名为人所知,但 return以 "stripped" 形式出现在任何 HG-repo 中,设置与我的
相同
值得注意的是,虽然 hggit
branch_bookmark_suffix
会将带有该后缀的 Mercurial bookmarks 转换为 Git branches没有那个后缀,不说明这不直接适用于Mercurial命名的分支。 Git 分支不同于 Mercurial 分支,更类似于 Mercurial 书签,只是它们在存储库中共享,而不仅仅是本地的。
为了 hggit
branch_bookmark_suffix
应用到 Mercurial 命名分支,这些分支需要具有适当后缀的 Mercurial 书签才能转换为 Git 分支。
例如,除了在hgrc中加入hggit:
[extensions]
hgext.bookmarks =
hggit =
[git]
branch_bookmark_suffix = _bookmark
还需要为每个命名分支添加一个 Mercurial(本地)书签。
例如,下面的 bash 脚本可用于执行此操作 - 请注意,它单独处理 Mercurial default 分支,因此它对应于 Git master branch.
#!/bin/bash
BRANCHES=`hg branches`
for BRANCH in ${BRANCHES[@]}; do
if [[ ! "$BRANCH" =~ ^([0-9]+:)|(inactive)|(closed) ]];
then
echo $BRANCH
if [[ "$BRANCH" =~ "default" ]];
then
`hg bookmark -r "${BRANCH}" "master"`
else
`hg bookmark -r "${BRANCH}" "${BRANCH}_bookmark"`
fi
fi
done
我正在使用 hggit 将我们的 Mercurial 存储库导出到 git。我在这里学习教程:http://arr.gr/blog/2011/10/bitbucket-converting-hg-repositories-to-git/ 然而,这会错过所有未合并到默认值的分支。我想这是因为单个书签(hg bookmark -r default master)。我需要分别为每个打开的分支添加书签吗? hggit 能否以某种方式选择所有打开的分支(因为我们可能有很多分支)?
Can hggit somehow pick all open branches
是的。您错过了 hg-git
中的选项branch_bookmark_suffix = SOME-STRING
翻译(透明地)在 Git 的 "branches" 中命名的 Mercurial 分支(如果需要,还向后翻译)。来自我个人配置的示例
[git]
branch_bookmark_suffix =_bkm
所有 HG-branches 将在 Git-repo 中获得此 _bkm
后缀,并将以 Git-branches 这个全名为人所知,但 return以 "stripped" 形式出现在任何 HG-repo 中,设置与我的
值得注意的是,虽然 hggit
branch_bookmark_suffix
会将带有该后缀的 Mercurial bookmarks 转换为 Git branches没有那个后缀,不说明这不直接适用于Mercurial命名的分支。 Git 分支不同于 Mercurial 分支,更类似于 Mercurial 书签,只是它们在存储库中共享,而不仅仅是本地的。
为了 hggit
branch_bookmark_suffix
应用到 Mercurial 命名分支,这些分支需要具有适当后缀的 Mercurial 书签才能转换为 Git 分支。
例如,除了在hgrc中加入hggit:
[extensions]
hgext.bookmarks =
hggit =
[git]
branch_bookmark_suffix = _bookmark
还需要为每个命名分支添加一个 Mercurial(本地)书签。 例如,下面的 bash 脚本可用于执行此操作 - 请注意,它单独处理 Mercurial default 分支,因此它对应于 Git master branch.
#!/bin/bash
BRANCHES=`hg branches`
for BRANCH in ${BRANCHES[@]}; do
if [[ ! "$BRANCH" =~ ^([0-9]+:)|(inactive)|(closed) ]];
then
echo $BRANCH
if [[ "$BRANCH" =~ "default" ]];
then
`hg bookmark -r "${BRANCH}" "master"`
else
`hg bookmark -r "${BRANCH}" "${BRANCH}_bookmark"`
fi
fi
done