标签: hg-git

如何正确安装dulwich以使hg-git在Windows上运行?

我正在尝试在Windows上使用hg-git Mercurial扩展(Windows 7 64位,具体而言).我安装了Mercurial和Git.我安装了Python 2.5(32位).

我按照http://hg-git.github.com/上的说明安装了扩展程序.最初的easy_install失败,因为没有Visual Studio 2003它无法编译dulwich.

我手动安装了德威:

  • git clone git://git.samba.org/jelmer/dulwich.git
  • cd dulwich
  • c:\ Python25\python setup.py --pure install

现在当我运行easy_install hg-git时,它会成功(因为dulwich依赖性得到满足).

在我的C:\ Users\username\Mercurial.ini中,我有:

[extensions]
hgext.bookmarks =
hggit =
Run Code Online (Sandbox Code Playgroud)

当我在命令提示符下键入'hg'时,我看到:"***无法导入扩展名hggit:没有名为hggit的模块"

在我的c:\ Python25文件夹下查看,我看到的对hggit的唯一引用是Lib\site-packages\hg_git-0.2.1-py2.5.egg.这应该被提取到某个地方,还是应该按原样运行?

由于失败了,我尝试了hg-git页面中的"更多参与"指令,建议克隆git://github.com/schacon/hg-git.git并引用我的Mercurial配置中的路径.我克隆了repo,并将我的扩展文件更改为:

[extensions]
hgext.bookmarks =
hggit = c:\code\hg-git\hggit
Run Code Online (Sandbox Code Playgroud)

现在当我运行hg时,我看到:***无法从c:\ code\hg-git\hggit导入扩展名hggit:没有名为dulwich.errors的模块.

好的,所以这告诉我它现在正在寻找hggit,因为我可以在hg-git\hggit\git_handler.py中看到它调用

from dulwich.errors import HangupException
Run Code Online (Sandbox Code Playgroud)

这让我觉得dulwich没有正确安装,或者没有安装在路径中.

更新:

从Python命令行:

import dulwich
Run Code Online (Sandbox Code Playgroud)

产量 Import Error: No module named dulwich

但是,在C:\ Python25\Lib\site-packages下,我有一个似乎已填充的dulwich-0.5.0-py2.5.egg文件夹.这是由上述步骤创建的.我需要采取额外的步骤使其成为Python"路径"的一部分吗?

从Python命令行(如其中一个答案中所建议的):

import pkg_resources
pkg_resources.require('dulwich')
Run Code Online (Sandbox Code Playgroud)

产量 [dulwich 0.5.0 (c:\python25\lib\site-packages\dulwich-0.5.0-py2.5.egg)]

那告诉我什么呢?导入dulwich失败,但显然pkg_resources可以找到它.我该怎么处理这些信息?

python windows mercurial hg-git dulwich

52
推荐指数
3
解决办法
1万
查看次数

Mercurial错误***无法导入扩展名hggit:没有名为hggit的模块

我在我的Mac上安装了Mercurial,这太棒了.对我来说,它比Git更容易掌握,所以我想用它来管理git-repositories.因此我按照以下说明安装了hg-git:

http://hg-git.github.com/

但是每次发出hg命令时都会返回以下错误消息:

  Mercurial error *** failed to import extension hggit: No module named hggit 
Run Code Online (Sandbox Code Playgroud)

我可能很重要的是要注意我在Mac上而不是Windows PC.

有谁知道如何解决这个问题

python macos mercurial hg-git

27
推荐指数
4
解决办法
2万
查看次数

如何使用hg-git关联现有的Mercurial和git存储库?

这是一个非常深奥的问题,所以只是从头开始说清楚:我不是在谈论从svn转换为git,git转换为mercurial,或者mercurial转换为git.我说的是利用"跨系统"插件产生的一种复杂情况,这种插件允许Mercurial在某种程度上与git和SVN进行互操作.

有一段时间我使用了Mercurial的hg-subversion插件来"跟踪"code.google.com上的上游SVN存储库.感谢这个插件,Mercurial认为存储库是"相关的",并且能够提取自我上次从回购中提取以来发生的变化.这允许我维护我自己的私有Mercurial存储库,其中包括私有变更集,分支,标记等,但它会定期与上游SVN存储库中发生的更改同步并合并.

上游回购已经从SVN干净地移动到git.当我干净利落地说,我的意思是他们已经把整个提交树,或至少影响我关心的默认/主分支的部分.

我现在处于这样一种情况:我有一个Mercurial存储库,它最近与现已解散的SVN存储库中的最后一次签入合并,我想开始从新的上游git存储库中提取更改,从在svn存储库移动到github之后发生的更改.

我可以使用精彩的hg-git插件从这个存储库中提取更改,但由于当前存储库没有与git上游存储库"相关"的概念,它将提取所有更改,包括镜像更改集的所有更改已存在于我的存储库中.

所以我正在寻找的建议是如何让我的Mercurial存储库通过hg-git考虑自己,与上游git存储库相关,并且还考虑git存储库中所有适当的提交为"已经拉出"维持变更集平等的目的.

我看到内部的hg-git似乎使用了一个文件.hg/git-mapfile,我认为它可以映射上游git和本地Mercurial存储库之间的变更集.这可能是一个线索.

什么是让我的本地Mercurial存储库进入这样一种状态的最简单方法,它本质上就像它是作为上游git存储库的克隆而开始的,但是保留了我自己随时间添加的所有不相关的变更集?

(注意:我不希望用新的克隆"重新开始",然后应用我的私有更改,因为我想保持此存储库的历史完整性以用于我自己的构建/调试目的).

git mercurial hgsubversion hg-git

18
推荐指数
1
解决办法
1671
查看次数

将一个Git子存储库添加到Mercurial

我一直在尝试使用bitbucket建立一个项目,它在github上托管了项目依赖项.使用Hg-Git Mercurial插件我几乎可以到达那里.

但是,当需要推动时,事情变得麻烦.

Mercurial子存储库的文档指出:

2.4推

当您推送时,Mercurial将自动尝试首先推送当前存储库的所有子库.这将确保在由顶级存储库引用时,subrepos中的新变更集可用.

但这会引起一个大问题,因为我不想推送所有的子库(我为什么会这样做?) - 我只有读取权限,所以github不会允许它.只需将主存储库推送到远程服务器,但我无法弄清楚如何做到这一点.hg无论是否有变化,都希望控制并推送所有子存储库.有没有办法绕过这个功能

唯一需要推动的是.hgsub.hgsubstate.一旦他们通过替代路由推送(更新到不存在子存储库的变更集),就可以更新并从远程存储库中提取更改,但是如果我要在变更集上再次推送子仓库,整个考验重演.

git version-control mercurial hg-git

17
推荐指数
2
解决办法
3203
查看次数

在Windows 7 64位上安装Hg-Git

我正在尝试将Hg-Git插件安装到我的Windows 7操作系统上一段时间

  1. 我遇到了一些困难,例如安装Python和本博客中描述的其他实用程序.

  2. 我甚至在这个手动问题之后,由于此日志中描述的错误而无法安装此插件.

  3. 我搜索了谷歌,我找到了这本手册

  4. 现在我在这个日志中显示了这些错误.

对这些错误有任何帮助吗?谢谢您的帮助.

git hg-git mercurial-extension

16
推荐指数
2
解决办法
6292
查看次数

使用hg-git时不会推送任何更改

我正在尝试让hg-git扩展在Windows下工作,经过几个小时的摆弄,我似乎终于有了它的工作.但是,即使hg push的输出读取,我的git存储库中也没有显示任何内容:

importing Hg objects into Git
creating and sending data
    github::refs/heads/master => GIT:8d946209
[command completed successfully Wed Oct 20 15:26:47 2010]
Run Code Online (Sandbox Code Playgroud)

mercurial github hg-git

15
推荐指数
2
解决办法
1823
查看次数

用hggit克隆github repo

我试图用hggit在本地克隆一些github repos.我正在按照教程说明去做

$ hg clone git://github.com/schacon/hg-git.git
abort: repository git://github.com/schacon/hg-git.git not found!

$ hg clone git+ssh://git@github.com/schacon/hg-git.git
abort: repository git+ssh://git@github.com/schacon/hg-git.git not found!
Run Code Online (Sandbox Code Playgroud)

我知道我有hggit,因为以下工作

$ python -c "import hggit"
$ head -n1 `which hg`
#!/opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
$ /opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python -c "import hggit"
Run Code Online (Sandbox Code Playgroud)

另外,我还有另一个github repo,我经常使用hg.我忘了我最初是如何开始工作的,但我认为这是一个新的回购,我推入了github.在我有一个工作回购的文件夹中,我的.hg/hgrc中有以下内容(隐私权转让):

github = git+ssh://git@github.com:myname/repo.git

[ui]
username = Fname Lname <email@gmail.com>

[extensions]
hgext.bookmarks =
hggit =
Run Code Online (Sandbox Code Playgroud)

当然,我只是试图克隆的回购没有hgrc.

更新

$ hg help 给出类似的东西

Mercurial Distributed SCM

list of commands:

 add          add the specified files on the next commit
 addremove    add all new …
Run Code Online (Sandbox Code Playgroud)

git mercurial clone github hg-git

14
推荐指数
2
解决办法
3948
查看次数

hg-git push无声地失败

我正在尝试使用hg pushgit存储库,但它默默地失败了.我在邮件列表上发现了一个帖子一个注册的hg-git问题,但两者都是大约半年没有太多活动.所以我开始认为我误解/错误配置了一些东西.我的~/.hgrc包含

[extensions]
hgext.bookmarks =
hgext.git =
#hggit = /path/to/hg-git-0.3.1/hggit
[bookmarks]
track.current = True
Run Code Online (Sandbox Code Playgroud)

此代码段重现了此问题:

mkdir /tmp/Git
cd /tmp/Git
git init
echo 'something' > myfile
git add .
git commit -m 'Started'
cd ..
hg clone /tmp/Git /tmp/Hg
cd /tmp/Hg
echo 'another thing' >> myfile
hg ci -m 'Working'
hg log
# Two items listed
hg push
cd ../Git
git log
# Only one item listed, but two expected
Run Code Online (Sandbox Code Playgroud)

我尝试了 …

git mercurial hg-git

13
推荐指数
1
解决办法
2691
查看次数

hg-git:删除远程分支?

是否可以使用hg-git删除远程分支?

我可以删除local(hg bm -d old-branch)标签,但是如何告诉git服务器执行相同的操作并不明显.

git mercurial hg-git

11
推荐指数
1
解决办法
1165
查看次数

来自Github的hg-git克隆给出了"abort:repository is unrelated"

我有一个项目,其主要(Mercurial)存储库位于SourceForge上,但Bitbucket(Mercurial)和Github(Git)上有克隆.

现在我一直在使用hg-git将Mercurial存储库推送到Github,根据我对该过程的理解,一些元数据在过程中保存在Mercurial存储库中.

现在,当重新克隆Bitbucket存储库并重新克隆Github存储库时,如果我发出一个hg pull ../github-repo我得到:

pulling from ../github-repo
searching for changes
abort: repository is unrelated
Run Code Online (Sandbox Code Playgroud)

为什么这样,我怎么能说服Mercurial确实他们有关系呢?或者我是否必须依赖我最初推送到Github的原始存储库?我仍然有,但假设我失去了它,我有什么选择,缺少手动变更集移植?


注意:由于拉取请求,Github仓库已更改(新变更集).但SourceForge和Bitbucket repos仍​​然认为彼此是相关的.现在的任务是将变换集从Github Git repo拉到本地,并分别将它们推回到SourceForge和Bitbucket.

git mercurial github hg-git mercurial-extension

9
推荐指数
1
解决办法
2847
查看次数