問題タブ [hg-git]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Windows で git-remote-hg を使用する
この回答https://stackoverflow.com/a/13354944/867294によると、git をセットアップして水銀の「依存関係などなし」で動作するようにするのはかなり簡単なはずです。
これは、Windows タフではそれほどスムーズに動作しないようです。
このガイドに従おうとしました
https://github.com/msysgit/msysgit/wiki/Guide-to-git-remote-hg
私のシステムで動作するようにmakeFileを修正し、gitを構築した後、git-remote-hgを呼び出すことができませんでした.pythonインタープリターが見つからないと不平を言っていたためです。だから私は手動でそれを呼び出しました
これにより、次のエラーが表示されます。
どうすればこれを修正できますか?
どこかにビルド前のバージョンがあれば、それはとても素晴らしいことです。
git - Hg-git が Github でコミットをプッシュしない
hg-git
もうコミットをプッシュできないという問題がありGithub
ます。以前はまったく問題がありませんでした。
Bitbucket
Github にプッシュする場所にMercurial リポジトリがあります。
これは以前は機能していましたが、今ではこれを行うと、hg
常に変更がなく、コミットが に更新されないことが返されGithub
ます。接続できます、そのような問題はありません。本当に奇妙です。何かが破損している可能性があります。だから私は新鮮にしました
からのレポのBitbucket
、コミット履歴があるかどうかを確認してから、Github への hg プッシュを再度実行しますが、変更は見つかりません。
何が問題なのですか?
git - 同じプロジェクトであるが履歴を失った Git リポジトリから Hg リポジトリにプルする
私のシナリオは次のとおりです。
私が複製したプロジェクトは、もともと Mercurial を使用してバージョン管理されていたもので、その元のレポの複製とそのすべての履歴があります。ある時点で、プロジェクトの所有者は GitHub に移行することを決定しましたが、移行のすべての履歴を失ったため、この新しいリポジトリは古いプロジェクトの継続ですが、リビジョン 0 から事実上新たに開始しています。
Hg に固執したいのですが、Hg-Git を使用すると明らかに Git リポジトリからプルできますが、Hg リポジトリの先頭と Git リポジトリの末尾をくっつける方法がわからないので、以前と同じように、定期的な更新を引き続けることができます。Hg リポジトリの先頭に一致する Git での実際のコミットは最初のコミットではないため、尾の先端ではありません。
hg convert と --splicemap が役立つかもしれないと思ったのですが、それについて読めば読むほど、私にとっては解決策とは思えなくなりました。
どうすればこれを達成できるかについて、誰かが提案できますか?
更新
同様のことをしようとしているかもしれない人の情報のために、私は最終的に私が望んでいた結果を達成することができましたが、それは長く曲がりくねった道でした。
- hg-git プラグインを使用して Github から Git リポジトリを取得しました。
- 次に、それを新しいリポジトリに複製し、関連するが切断された Hg リポジトリの内容をhg pull --forceを使用してプルしました。
これで、レポに関する限り共通の祖先を持たない 2 つの異なる開発ブランチを持つレポができました。これをhydraと呼びます。 - hg convertとsplicemapを使用して、履歴の一致するポイントでブランチを新しいレポに結合し、hg stripを実行して不要なビットを取り除きました。
- ただし、トリックは、元の Git リポジトリが更新されるということでした。この結合されたリポジトリに新しい変更を取り込めるようにしたかったのです。
ソリューション?バッチ ファイル。
そうですね、バッチ ファイルです。
解決策は実質的に 3 つのセットでした。まず、Github から Git リポジトリを保持するリポジトリにプルします。2 番目は Git リポジトリから hydra にプルされます (Hg ソースは変更されないため、そこから再度プルする必要はありません)。3 番目にhg convertコマンドを再実行して、結合されたリポジトリを hydra からの新しい情報で更新します。
それは不快で、長々としたもので、設定するのは少し悪夢のようなものでしたが、今では問題なく動作し、最終的なレポは予測可能で妥当なサイズです.
hg-git - hg-git で別のブランチにプッシュするには?
Git リポジトリのクローンを作成しているときに、リモート コンテンツが次のように変更されました。
マージする代わりに、コミットをローカル コピーから別のリモート ブランチにプッシュしたいと考えています。どうすればいいですか?
git - アップストリームの mercurial から git フォークにリベースするにはどうすればよいですか?
Python ライブラリは安定したメンテナsuds
を見つけることができないようであり、たるみを拾った少数の人々は共通の VCSに同意していないようです。
git と hg の間でさまざまなことを行う方法に関するガイドはたくさんありますが、それらのほとんどはサブモジュールとリポジトリの相互変換を中心に展開しているようです。リモートの hg ブランチからローカルの git ブランチにアップストリームの変更を取り込むにはどうすればよいですか? 理想的には、次のことを行いたいと思います。
git - Mercurial: パブリック変更セットを取り消して、新しいパブリック ブランチに再適用しますか?
Kiln と Fogbugz を使用しています。Kiln は、git と hg がシームレスに連携できるようにすることになっています。ただし、git ブランチが Mercurial のブックマークのように扱われるという問題に遭遇しました。変更がプッシュされるまで、リポジトリでこれをキャッチできませんでした。現在、ブランチは少し汚染されています。
カスタムブランチにあるはずのデフォルトブランチに公開変更セットがあります。それらを元に戻すことはできますが、他のパブリック ブランチに再適用する必要があります。これらは公開の変更であるため、リベースについて心配しています。
この状況を処理する最善の方法は何ですか?
編集:mercurial キューを使用して変更セットをパッチに変換できると思いましたが、変更セットは公開されているため変更できません。私も同様の理由で hg ストリップを行うことができません。
git - https 経由で hg-git、TortoiseHg、および github を使用すると、401 が返されます
TortoiseHg で hg-git を使用して、既存のリポジトリを GitHub にプッシュしようとしています。SSH ではなく HTTPS で認証しています。BitBucket と同じように、ユーザー名とパスワードを TortoiseHg に追加しました。
しかし、TortoiseHg は、削除サーバーが 401 を返すと言っています。
hg-git で認証するために見つけたすべての例では、HTTPS ではなく SSH を使用しています。
どうすれば TortoiseHg に自分のユーザー名とパスワードを GitHub に渡すよう説得できますか?
git - パッチを適用して Hg リポジトリの Git フォークを維持する
いくつかの追加パッチを使用して、hg リポジトリの git フォークを維持しています。これが意味することは、hg リポジトリを複製してから、これらの指示に従ってそのリポジトリを git リポジトリにプッシュしたということです。
次に、git リポジトリのクローンを作成し、いくつかのコミットを適用してから、それらのコミットを git リポジトリにプッシュしました。
私の履歴は次のようになります。
とは私F'
のG'
パッチです。
hg 開発者はいくつかのパッチを hg リポジトリにプッシュするようになりました。これらの変更を自分のフォークに組み込みたいと考えています。hgの履歴をそのまま維持したいと思います。つまり、git での最終的な履歴を次のようにしたいと考えています。
E
hg の新しいコミットはどこにありますか。
rebase
git 用語では、これは「 master を origin/master にブランチしたい」という意味になります。
私の質問は、これを実現するために hg や git で実行するコマンドは何ですか?
github - Mercurial ローカル リポジトリを GitHub/Bitbucket にエクスポートする
机の上にローカル mercurial リポジトリがあり、それを bitbucket または github にアップロードして、Web 上で表示できるようにしたいと考えています。
これまでのところ、インポート段階で立ち往生しています.GitHubまたはBitbucketの両方が、リポジトリのURLを提供するように要求しています(ディスク上のリポジトリへの単純なパスを好むでしょう)。
ローカル サーバーを起動しましたが、アドレスは http://localhost:8000/Myrepo/ です。
アクセスできませんでした。
tortoiseHg Hg-Git プラグインについて知っていて、git://... をプッシュしようとしましたが、失敗しました。
だから私の最初の質問は、インポートできるように水銀レポをウェブに置くにはどうすればよいですか?
私の 2 番目の質問は、ウェブ上にオンラインの公開水銀サーバーを設定してプッシュする必要がある場合、bitbucket / github アカウントを持つ意味は何ですか?
私が望むのは、ローカルで作業を続けてから、mercurial サーバーをセットアップすることなく、bitbucket / github にプッシュすることです。
ありがとう
github - ローカル (hg-git) クローンのアップストリームを (github) オリジナルからフォークに変更
私が貢献した OSS プロジェクトが github に移動したことを発見しました。hg-git をインストールし、git:// URL からローカル リポジトリを複製しました。それから私は変更を加えました。
その後、自分の github フォークが本当に必要であることに気付き、作成しました。しかし、既存のローカルリポジトリを切り替える方法を完全に理解することができませんでした. フォークの git:// URL を使用するようにローカル リポジトリの設定を変更しました。しかし、変更をプッシュできません。https:// URL を使用するように指示されていますが、その変更を行うと、プルもプッシュもできません。エラー 406、「受け入れられません」が表示されます。
ローカル リポジトリでの作業は最小限なので、やり直すことはできますが、ローカル リポジトリとフォークが今すぐ接続できれば簡単です。
アップデート
SSHキーを管理できるように、Github for Windowsをインストールしました。キー (github_rsa) を生成し、それを私の Github アカウントに添付しました。
hgrc ファイルを編集[ui]ssh=
し、ローカルの git 'ssh' コマンドを指す設定を追加しました ( に埋め込まれてい%APPDATA%\Local\Github
ます)。
これで、ssh-agent を生成すると思われる「git-shell」ウィンドウに入ると、「hg incoming」などのコマンドを入力でき、接続が確立されます。これで、リモート リポジトリの URL が正しく設定され、git-shell エコシステム内で SSH キーが正しく設定されました。
通常の CMD.EXE ウィンドウから、同じコマンドを実行すると、「許可が拒否されました (公開鍵)」というメッセージが表示されます。TortoiseHg から、「incoming」アクションを試みると同じエラーが表示されます。TortoiseHg を使い続けたいのですが、SSH を使用する方法がわかりません。
最終更新
何らかの理由で、TortoisePlink は github の SSH サーバーを操作したくありません。少なくとも、Github-for-Windows で生成されたキーは操作したくありません。そのため、Github for Windows はまだインストールされています (必ずしも悪いことではありませんが、私がやりたかったことには不要です)。
hg と TortoiseHg を接続するには、プロジェクトの設定を変更する必要がありました。
つまり、ポータブル GitHub と共にインストールされた SSH コマンドをポイントし、コマンド ラインで github が生成したキーを指定します。この構成では、ssh-agent を実行する必要はありません。