我有一个项目,其主要(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.
我正在尝试让 hg-git 扩展与 TortoiseHg(Win10 上的 v5.8)一起使用。我在设置中启用了“hggit”扩展。但是当我尝试推送到 github 时出现错误:
*** failed to import extension hggit: No module named hggit
Run Code Online (Sandbox Code Playgroud)
搜索我的驱动器时,我只有 TortoiseHg 目录中的 hg 可执行文件,但找不到任何 hggit 或 hg-git 二进制文件。为了使扩展正常工作还需要做其他事情吗?
我开始使用Mercurial的HgGit扩展来在GitHub上拥有存储库的副本.几乎所有东西都运行良好,但在GitHub的提交信息中,我看到的invalid-email-address (author)不是我的用户名.在这种情况下,有没有办法正确显示用户名?
我有一份新工作,但他们使用mercurial作为他们的版本控制,我的大多数经验都是使用git.我尝试学习mercurial,但它的分支方式(即使像书签这样的扩展)只是让我完全没有意义.有没有人知道在本地使用git的方法,但推动mercurial?
我已经尝试过hg-git插件并且已经达到了我可以在git中提交并将这些更改推送到远程mercurial repo的程度但是我遇到的问题是无论我找到什么教程,我都不能似乎将mercurial的新变化拉回到git(这使得整个事情在这一点上毫无用处).如果你有关于如何设置hg-git工作推送到mercurial的链接,请告诉我.
解决方案(我认为)
根据Lazy Badger的评论,我认为这将起作用:http://ryanzec.com/index.php/blog/details/9
根据这个答案/sf/answers/934846111/,设置git以使用mercurial"无依赖关系或任何东西"应该相当容易.
这似乎并不适用于所有在Windows上顺利进行的操作.
我试着按照这个指南
https://github.com/msysgit/msysgit/wiki/Guide-to-git-remote-hg
在修复makeFile以便在我的系统上工作并构建git后,我无法调用git-remote-hg,因为它抱怨它无法找到python解释器,所有这些都很难正确配置.所以我手动调用它
C:/Python27/python.exe git-remote-hg clone C:/TestMercurialRepo
Run Code Online (Sandbox Code Playgroud)
这现在给我以下错误.
Traceback (most recent call last):
File "git-remote-hg", line 99, in <module>
sys.exit(HgRemoteHelper().main(sys.argv))
File "d:\development\msysgit\git\git_remote_helpers\helper.py", line 196, in m
ain
repo = self.get_repo(alias, url)
File "git-remote-hg", line 33, in get_repo
if repo.capable('branchmap'):
File "c:\Python27\lib\site-packages\mercurial\repoview.py", line 205, in __get
attr__
return getattr(self._unfilteredrepo, attr)
AttributeError: 'mqrepo' object has no attribute 'capable'
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题 ?
如果在任何地方都有预构建版本那么那将是非常棒的,因为我觉得我正在努力让这个工作.
我刚刚安装了Hg-Git,我想知道是否有可能从同一个存储库推送到Bitbucket.org和Github.com.我想的是:
$ #make commits
$ hg push #pushes to Bitbucket since it is set as `default` in hgrc
$ hg push "github remote alias" #push to Github
Run Code Online (Sandbox Code Playgroud)
因此,默认情况下它会推送到Bitbucket,并通过指定"远程"别名来推送到Github.
我有一个在Bitbucket上托管的HG项目,我想把它移到Github.
我遵循这里的指南在我的TortoiseHG上安装hg-git扩展.
我已经在Github上创建了一个存储库,但还没有初始化它(它显示了该指令页面),所以我无法克隆那个git存储库.
接下来我该怎么办?
编辑:抱歉忘记添加,然后我将使用git.
更新:我借了一个mac并且fast-git-import无痛地转换它.如果有人尝试过以下解决方案并在Windows下工作,那就投票吧,我会把它作为答案.
我想配置我的Mercurial项目,使其能够将其推送到gitHub存储库中。
使用命令时:
hg push git + ssh://git@github.com/myusername/myproject.git
我收到一条消息:
中止:找不到存储库git + ssh://git@github.com/myusername/myproject.git!
我已经检查并建立SSH连接,看起来还可以:
嗨,myusername!您已成功通过身份验证,但是GitHub不提供Shell访问。
我从github复制的存储库URL(这是来自其他开源项目的fork):https : //github.com/myusername/myproject.git
我还要检查什么?为什么我有一个实际上不存在的信息?哪里可能有问题?
我想把一个项目从TortoiseHg推到GitHub.我知道,TortoiseHg是Mercurial分布式版本控制系统的前端; GitHub与Git一起工作的地方.但我喜欢使用TortoiseHg(而不是TortoiseGit或GitGui),并希望将我的项目保留在GitHub中.
所以,我配置了TortoiseHg(文件>设置>扩展> hggit)并且能够将测试项目推送到GitHub(跟随这个精彩的博客).但后来当我试图用它推动一个C#MVC项目时,情况发生了变化.它很好地开始推送,然后要求进行身份验证,然后显示此错误 -
以下是日志中显示的内容
Run Code Online (Sandbox Code Playgroud)% hg push git+https://github.com/MinhasKamal/MVCPracticeWork pushing to git+https://github.com/MinhasKamal/MVCPracticeWork http authorization required for https://github.com/MinhasKamal/MVCPracticeWork/info/refs realm: GitHub searching for changes adding objects URLError: [Errno 10054] An existing connection was forcibly closed by the remote host [command returned code 255 Thu Feb 04 16:17:02 2016]
我不明白 - 为什么会发生这种错误.这是GitHub或TortoiseHG的问题,还是我做错了什么?如何解决?
编辑1:我能够推送到存储库,但只能通过"不添加"某些特定目录到我的存储库.是出现此错误的文件类型或名称是什么?
编辑2:问题再次发生在我身上,这次是Java项目.一切都很好,直到我在存储库中添加了一个*.jar文件.我做了一个提交,但是当我试图将它推送到GitHub时,TortoiseHg向我展示了相同的消息.我删除了*.jar,已经提交,并试图再次推送,但不能.
现在,我再次做了我之前做过的事情(编辑1) - 我将整个存储库从GitHub拉到另一个文件夹,从我当前的存储库中替换了已更改的文件(没有添加*.jar),已提交并已推送; 这次我成功了.所以,这次*jar文件没有添加到版本控制数据库中,这就是它工作的原因.