問題タブ [hgsubversion]
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.
tortoisesvn - subversion/tortoisesvn-リポジトリのディレクトリを変更する
ディレクトリprojects/projectAにプロジェクトがあります。対応するSubversionリポジトリがあります。フロントエンドとしてTortoisesvnを使用しています。
プロジェクトをprojects/projectA_oldに移動しようとしていますが、その方法が見つかりません。tortoiseからの名前変更は、プロジェクト内のディレクトリでのみ機能し、プロジェクトディレクトリ自体では機能しないようです。
ありがとう
mercurial - Mercurial を Subversion にクローンするには?
私は何年にもわたって Subversion (および CVS、SourceSafe など。SCCS を覚えている人はいますか?) に耐えてきたので、bitbucket と mercurial の非常に満足したユーザーです。現在、ローカルの hg リポジトリにかなりのプロジェクト履歴があり、毎日 bitbucket にプッシュされ、そこから自宅のマシンにプッシュされています。
問題は、私の会社が、この履歴のコピーを Subversion で維持することを望んでいることです。そして、これを設定しようとして石の壁にぶつかりました。hgsubversion をインストールしました。正しいと思います。そして、svnadmin を使用して、hg 履歴を保持する準備ができている空の svn リポジトリを作成しました。
しかし、今は何ですか?指示には、クローンをプルすることから始めるように書かれています(鼻の?それは何ですか?これは、新しい空のsvnディレクトリのコピーをチェックアウトすることを意味すると思います。OKでした。
しかし、今は何ですか?次のステップは、実際のローカル hg クローンを、チェックアウトしたばかりの空の svn リポジトリにプッシュすることだと思います。しかし、私が試したことは何もありません。プルは次のように失敗し、「関連のないリポジトリ」と報告されます (覚えているように、私が試した他のすべての「URL が必要です」ポップアップを回避するために、マスター ローカル hg リポジトリの URL をゲートします。
4e97a23b6815:342df9e52cec を調べる新しい変更セット 139d02f4b233 が見つかりました: リポジトリは無関係です [コマンドはコード 255 Mon Apr 25 11:29:33 2011] を返しました
この手探りの結果、.hg、.svn、および .hgignore エントリのみを含むディレクトリが作成されます。
だから、何百人もの他の人が今までに試したに違いない基本的な何かが欠けているように感じます. 誰かが私が始めるのを手伝ってくれますか? ありがとう!
PS: 現在の目的は、チーム リポジトリとして SVN を永続的に維持し、Hg から定期的に変更をプッシュすることです。これは、私にとって無期限にメイン クライアントのままになります。これが重要な場合...
svn - 分散型 (Git、Mercurial) よりも集中型 (SVN) を選択する時期と理由
最近、私の新しい仕事で、私の部門(私たちは主に株と競馬のウェブサイトを構築していて、オフィスでウェブサイトに取り組んでいます)はSVNまたはMercurialの使用を検討しています。私たちのプロジェクト マネージャーは、SVN を支持すると言います (理由は教えてくれませんでした) が、Mercurial を選択する選択肢も与えてくれ、私たちの意見を求めました (最終的な決定はまだ彼にあります)。
オンラインのほとんどの記事は、SVN (または同様のもの) ではなく Mercurial を選択する理由を説明するものです。逆に聞きたい。
では、SVN よりも Mercurial/Git の方が多くの利点があるにもかかわらず、新しいプロジェクトで Mercurial よりも SVN を選択するのはいつ、どのような理由でしょうか?
svn - hgsubversion プルでの svn UTF-8 データの問題の修正
svn の変更を Mercurial リポジトリにプルしているときにエラーが発生しました。
svnでそれを検出する方法を見つけました(ファイル名は修正されていますが、コンテンツは修正されていません)。この検出を hgsubversion に適用して、プルを続行するにはどうすればよいですか??
git - Git または Hg で Activecollab を使用している人はいますか?
現在、subversion で activecollab を使用していますが、分散ソース管理を提供するために Git または Hg を使用することを検討したいと考えています。
SVN の場合と同じように、リビジョンを activecollab のチケットにリンクできるように、この作業を行っている人はいますか?
svn - 2 人の drupal プロジェクトの Svn/Git?
drupal 開発で遠隔地の人と作業するための最良の方法は何ですか? 私たちは 2 人しかいないので、cvs /svn はやり過ぎですか? 物事のためのオンラインソリューションはありますか?
git - hg-git を使用して既存の Mercurial と git リポジトリを関連付けるにはどうすればよいですか?
これは非常に難解な質問なので、ここで最初から明確にしておくと、svn から git へ、git から mercurial へ、または mercurial から git への変換について話しているわけではありません。Mercurial が git および SVN とある程度相互運用できるようにする「クロスシステム」プラグインを利用することから生じた複雑な状況について話しています。
しばらくの間、私は hg-subversion プラグインを Mercurial に使用して、code.google.com のアップストリーム SVN リポジトリを「追跡」しました。このプラグインのおかげで、Mercurial はリポジトリが「関連」していると見なし、最後にリポジトリから取得した後に発生した変更のみを取得できます。これにより、プライベートの変更セット、ブランチ、タグなどを含む独自のプライベート Mercurial リポジトリを維持できますが、アップストリームの SVN リポジトリで発生した変更と定期的に同期およびマージされます。
アップストリーム リポジトリは、SVN から git にきれいに移動しました。はっきり言って、彼らはコミット ツリー全体、または少なくとも私が気にかけている default/master ブランチに影響を与える部分を持ってきたということです。
I am now in a situation where I have a Mercurial repository that is up-to-date merged with the very last checkin on the now-defunct SVN repository, and I want to start pulling in changes from the new upstream git repository, starting at the change that occurred just after the svn repository was moved to github.
I can use the wonderful hg-git plugin to pull changes from this repository, but as the current repository has no notion of being "related" to the git upstream repo, it will pull ALL changes, including all the changes whose mirror-image changesets are already present in my repository.
したがって、私が探しているのは、上流の git リポジトリに関連する hg-git を介して、Mercurial リポジトリに自分自身を考慮させる方法と、git リポジトリからのすべての適切なコミットを「既にプル済み」と見なす方法についてのアドバイスです。変更セットのパリティを維持する目的。
内部で hg-git がファイル .hg/git-mapfile を使用しているように見えます。これは、アップストリームの git とローカルの Mercurial リポジトリの間で変更セットをマップしていると思われます。これはおそらく手がかりです。
ローカルの Mercurial リポジトリを、基本的にアップストリームの git リポジトリのクローンとして開始したかのように動作する状態にする最も簡単な方法は何ですか?
(注: 新しいクローンで「最初からやり直して」プライベートな変更を適用するのは避けたいと思います。これは、自分のビルド/デバッグの目的でこのリポジトリの履歴の整合性を維持したいためです)。
mercurial - さまざまなチェンジセットに水銀バンドルファイルを適用する
TLDR:親Xを持つHGバンドルがありますが、リビジョンXがリポジトリに存在しません。ただし、リビジョンYのファイルはリビジョンXと同じであると確信しています。バンドルを適用するにはどうすればよいですか?
バックグラウンド:
hgsubversion
私はSVNリポジトリと対話するために使用します。
コミットしたくない変更がいくつかありました。hgsubversion
部分的なプッシュはサポートしていません。
以前は、一時的なエクスポート/パッチファイルを手動で作成するか、.origファイル(の結果hg revert
)を手動で復元することで回避策を実行していました。
この場合、プッシュしたくない変更をコミットしてから使用hg strip
し、次にプッシュしてから使用しようとしましたhg unbundle .hg/strip-backup/file
。
問題:hgsubversion
元のチェンジセットを、コミット後にSVNからインポートした新しいチェンジセットに置き換えます。結果:チェンジセットIDが変更されます。hg unbundle
親のチェンジセットがそこにあることに依存しているため、これは機能しなくなったため、これは問題です(ただし、削除されています)。
皮肉なことに、hgsubversion
それ自体がstrip
バックアップファイルを使用しているため、新しいリビジョンを削除し、削除された古いリビジョンを追加し、バンドルをリビジョンとともに適用し、パッチをエクスポートし、両方を削除し、SVNリビジョンを復元するために使用できます。しかし、これは聞こえます...非常に苦痛で愚かです。私にできることは他にありませんか?
(hg transplant
リポジトリに親がいない場合もバンドルが気に入らないようです)
svn - Mercurial + hgsubversion + svn:2つのリポジトリの物語...(または、チェンジセットを交換しますか?)
シナリオ:
私は2つのHgリポジトリを持っています。1つはSVNリポジトリ、たとえばSVN-trackを追跡し、もう1つは最初からチェンジセットをプルするローカルのpure-Hgリポジトリです。
チェンジセットをpure-HgリポジトリからSVN-trackリポジトリにプッシュし、次に、履歴が適切でまっすぐになるまで、プッシュされたチェンジセットをSVN -trackリポジトリにリベースして、SVNリポジトリにプッシュできるようにします。
SVNにプッシュした後、hgsubversionはチェンジセットをSVNからプルバックし、元のチェンジセットを削除します。これはそれが追跡する方法です、私は集めます(しかし...なぜオリジナルを保持してそれを追跡しないのですか?)。
問題:
さて、これだけ長く待ち続けていると、問題が発生します。SVNチェンジセットをpure-Hgリポジトリに戻したいのですが、元のチェンジセットはすべて、別のヘッドで重複として(ただしノードIDが異なる)戻ってきます。pure-Hgリポジトリに追加したすべてのチェンジセットをリベースできる可能性がありますが、その後は履歴が失われ、実際には、作業が多すぎるように見えます。重複したコンテンツを含むプルされたSVNチェンジセットを使用してローカルにマージすることもできますが、これにより、SVNトラックへのプッシュバックがますます困難になります。
質問:
- 私が支援なしで神聖にすることができないこのワークフローを実行するためのより良い方法はありますか?
- そうでない場合、hgsubversionが純粋なHgでSVNからプルバックする元のチェンジセットを置き換えるにはどうすればよいですか?
- なぜhgsubversion(ほとんどの場合素晴らしい有効化ツール)がSVNチェンジセットをプルして、それらを追跡する必要があるのですか?元のチェンジセットを保持して
.hg/svn/rev_map
、元のチェンジセットIDを示す行を追加するだけではいけませんか? - もしそうなら、これへのトリックは何ですか?