問題タブ [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.
svn - Mercurial と Subversion の相互運用
同様の質問が最近尋ねられましたが、同じではありません。
Mercurial の Web サイトには、Mercurial と Subversion を相互運用するための 4 つの異なるオプションを比較した詳細なページがあります。
誰かがこれらの 1 つまたは複数を試して、本当に良い経験または本当に悪い経験を関連付けることができるかどうか疑問に思っています. hgsubversion ダウンロードに関するメモには、
hgsubversion は、Mercurial を Subversion クライアントとして使用できるようにする Mercurial の拡張機能です。現在、本番環境で使用する準備はできていません。ハッキングする準備ができており、Mercurial や Subversion の内部に飛び込む準備ができている場合にのみ、これを使用する必要があります。
それは、「希望を捨てよ、ここに入る者はみな」とか「不法侵入者は逮捕される」というサインと同じくらい私を誘っている。したがって、ハッキングする時間があまりない人のために、これまたは他の代替手段を試す価値があるかどうか疑問に思っています.
svn - Subversion:コミットコメントを編集するかどうか
私はSubversionの慣行について経営陣と話し合っています。校正を見逃した場合に備えて、後でコミットコメントを変更できるように、管理者にSubversionリポジトリを構成するように依頼しました:-)。
私の議論は、
- より広範なコメントや間違ったスペルなど、改善が必要なログメッセージは変更できます。
- ログメッセージを入力するときに間違いが簡単に発生するため、元に戻すことができます。
- 間違いがあったとき、誰もが二度目のチャンスに値する:-)
- ソースコードとコメントをリポジトリからサードパーティにエクスポートする場合、誤ったログメッセージが見つかった場合に役立ちます。コメントを変更できない場合、またはエクスポートされたテキストファイルでのみ変更できる場合は、すべてが非同期になります。
短所は、
- ログメッセージの変更自体は検証されないため、古いメッセージは明らかに失われます。
私たちの経営陣は、「管理コストの増加」と「後で変更できるリスクが高い」という理由で、私の変更要求を拒否しました。明らかに、私はより広範な説明を求めてきました。
とにかく、皆さんはこれについて何かコメントがありますか?どう思いますか?後でログメッセージを編集しても大丈夫ですか?経営陣に伝えるために、これ以上プロを教えてもらえますか。
これは開発者の自由を制限すると思います、そして私が開発者として私は最大の自由が繁栄することを望んでいます:-)
svn - hg で特定のディレクトリだけを複製しますか?
私は Subversion のバックグラウンドを持っていますが、ゆっくりと Mercurial に移行しています。
多くのプロジェクトを開始するとき、アプリ/ウェブアプリ/プログラム (Maven 2 アーキタイプによく似ていますが、必ずしも Java/Maven とは限りません) を開発する際の特定の開始点に合わせて構成された開発環境をセットアップします。
後で、特定のパスで svn リポジトリからこのアーキタイプ/テンプレート プロジェクトをチェックアウトします。そして、リポジトリによるバージョン管理から作業コピーをエクスポートします。これにより、作業コピーに加えた変更をテンプレート/アーキタイプ プロジェクトのベースに追加することなく、作業コピーを別のリポジトリにインポートし直すことができました。
Mercurial で同じことを試みましたが、hg リポジトリから特定のパスを チェックアウト、er..um..noのクローンを作成できないため、壁にぶつかりました。
Mercurial を使用して同じ種類の機能を実現したい場合、どうすればよいですか?
タグ付きブランチを使用しますか? アーキタイプ/テンプレート プロジェクトは大きく異なりますが、同じリポジトリに保持したいと考えています。
mercurial - Mercurial共通の祖先を共有しているが、同じリポジトリのクローンではない2つのリポジトリをマージする方法
私はhg-subversionを使用しており、2つの異なるhgリポジトリがあります。1つはsvnトランクからのもので、もう1つはトランクのブランチからのものです。なんとかリンクしたいです。歴史のある時点で、両方のHgリポジトリは同一になりますが、それらに参加する方法はありますか?
言い換えれば、Hg内からリポジトリを関連付ける方法はありますか?
私が現在使用している手法は、共有するリビジョンの作業コピーの上に2番目のリポジトリをエクスポートし、その作業コピーをHgのブランチとしてコミットすることですが、この方法で履歴が失われます。
どんなアドバイスも素晴らしいでしょう
svn - Mercurialをローカルで使用し、Subversionリポジトリから更新/プッシュすることはできますか?
フリーランサーとして、私はSubversionリポジトリを使用する会社でよく働いています。
Mercurialを使用してこれらのリポジトリからコードを取得し、オフラインのときに変更を追跡し、オンラインに戻ったときにすべてのローカル変更を会社のSubversionサーバーにコミットできると便利です。
これは機能しますか?詳細についての良いチュートリアルを読んだことがありますか?
svn - MercurialからMercurial、Subversionワークフローの問題
SubversionからMercurialに移行しています。移行を容易にするために、Subversionリポジトリのクローンである中間のMercurialリポジトリを作成しています。すべての開発者はMercurialリポジトリへの切り替えを開始し、変更を中間のMercurialリポジトリから既存のSubversionリポジトリに定期的にプッシュします。しばらくすると、Subversionリポジトリは廃止され、中間のMercurialリポジトリが新しい記録システムになります。
私はこれをテストしてきましたが、ローカルリポジトリから中間のMercurialリポジトリに、そしてSubversionリポジトリに変更をプッシュすると、問題が発生し続けます。
代替テキストhttp://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/01.png
ローカルマシンには、コミットされ、中間のMercurialリポジトリにプッシュする準備ができているチェンジセットがあります。ここでは、ハッシュ625を使用したリビジョン#2263であることがわかります。
代替テキストhttp://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/02.png
このチェンジセットのみをリモートリポジトリにプッシュします。
代替テキストhttp://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/03.png
これまでのところ、すべてが良さそうです。チェンジセットがプッシュされました。
ここで、リモートリポジトリに切り替えて、作業ディレクトリを更新します。
次に、変更をSubversionにプッシュします。これは、うまく機能します。この時点で、変更はSubversionリポジトリにあり、ローカルクライアントに注意を戻します。
代替テキストhttp://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/04.png
ローカルマシンに変更をプルします。は?2つのチェンジセットがあります。私の元のチェンジセットは現在、ローカルブランチとして表示されます。
代替テキストhttp://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/05.png
他のチェンジセットには、新しいリビジョン番号2264と新しいハッシュ10c1があります...
代替テキストhttp://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/06.png
とにかく、ローカルリポジトリを新しいリビジョンに更新します。
代替テキストhttp://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/07.png
私は今切り替えられました。
代替テキストhttp://bmurphy.mediafly.com.s3.amazonaws.com/images/mercurial/08.png
それで、私はついに「発信チェンジセットを決定してマークする」をクリックします。ご覧のとおり、Mercurialは、以前のチェンジセットがすでにプッシュされていても、プッシュしたいと思っています。
明らかに、私は何か間違ったことをしています。
また、2つのリビジョンをマージすることはできません。ローカルマシンで2つのリビジョンをマージすると、「マージ」コミットが発生します。そのマージコミットを中間のMercurialリポジトリにプッシュすると、変更をSubversionリポジトリにプッシュできなくなります。私は次の問題に行き着きます:
マージをロールバックして、動作状態に戻す必要があります。
私は何が欠けていますか?
version-control - hgsubversion でマージを処理するには?
Subversion を使用するプロジェクトに貢献しようとしています。Mercurial とその hgsubversion 拡張機能を使用してレポを複製しました。私の作業は機能ブランチで行われます。
デフォルトのブランチ (hg speak) 別名トランク (svn speak) で発生するもので機能ブランチを最新の状態に保つにはどうすればよいですか?
そのため、以前hg up feature
は機能ブランチに更新していたhg pull
ので、デフォルト ブランチに変更セットがありました。だから私はhg merge default
マージをhg push
コミットし、変更セットをSubversionに送信しようとしました。Mercurial は次のように述べています。「申し訳ありません。マージ リビジョンの svn 親が見つかりません。」
svn - 大きなsvnリポジトリのサブセットのgit-svn
レポレイアウト:a / 1 a / 2 a / 3 ... b / 1 b / 2 ... c / 1 c /2..。
1 svn repo subdirで作業している場合、git-svnは私にとって完璧に機能します。しかし、現在、私はいくつかのサブディレクトリ(a / 1、a / 2、b / 1など)で作業する必要に直面しており、それら以外のリポジトリには多くのたわごとがあります。私はこれのために正規表現を書くことができましたが、-ignore-pathsを指定したgit-svnは、フォルダー全体をスキップするのではなく、この正規表現に対して各ファイルの名前をチェックするようです。/*おそらくこれに関するバグレポートを提出する必要があります*/
だから-これを処理するアイデアはありますか?一部のMercurialsvnエージェントが選択的なクローンを作成できる場合は、それでも問題ありませんが、gitを使用することをお勧めします。私の別のアイデアは、いくつかの選択的なsvnプロキシでしたが、そのようなものをグーグルすることに成功していません。ありがとう!
svn - git-svn(または同様のもの)を*ただ*使用してsvnマージを支援しますか?
私のプロジェクトでは、いくつかの複雑なサブバージョンのマージが行われています。長い間離れていた大きなブランチです。Svnはあまりにも多くの競合を与えます-そしてそれらのいくつかは偽物のようです。
git
それが優れたマージエクスペリエンスで賞賛されていることを考えると、マージをより管理しやすくするためgit-svn
だけに使用するのは良いことでしょうか?
マージの痛みを軽減するために、他の選択肢(たとえばsvk
、 )をお勧めできますか?hgsvn
一部の競合は簡単に解決できます(Javaインポート、空白など)。そのため、それらの自動化されたソリューションがあるかどうかも疑問に思います。
DVCSへの完全な切り替えは将来行われる可能性がありますが(私たちの中にはそれを気に入る人もいます)、現時点ではそうではありません。(更新:これはもう真実ではありません-チームは最近完全に切り替えて、それに満足しています)。
前もって感謝します。
PS:関連しているように見える投稿があります(例:git-svn merge 2 svn branchs)が、この質問に完全には答えていません。
更新:この道を下り(そして上り:)した後、私の-初心者-の答えを参照してください。
svn - どのように hgsubversion を動作させますか?
hgsubversion のオンライン ドキュメントはひどいものです、IMO (言いたくないです)。クイック スタートの手順に従っています。
私が何をした?
Mercurial をインストールしました:
D:\repos\experimental>hg --version Mercurial 分散 SCM (バージョン 1.6)
Mercurial のバージョンに合わせて TortoiseHg をインストールしました。
hgsubversion リポジトリをダウンロードしました。
D:\devapps> hg clone http://bitbucket.org/durin42/hgsubversion
.hgrc を次のように変更しました。
[拡張子] hgsubversion=D:\devapps\hgsubversion\hgsubversion
D:\repos\experimental>hg ヘルプ hgsubversion hgsubversion 拡張機能 - Subversion リポジトリとの統合
hgsubversion は Mercurial の拡張機能で、Subversion クライアントとして動作できるようにし、高速でインクリメンタルな双方向同期を提供します。
Python 2.5 用の PySVNをインストールしました。
SVN リポジトリのクローンを作成しようとしました:
...> hg クローンhttp://path/to/repository/ repository-hg
そして、私は次の結果を得ました:
なんてこと?私が従う指示には、これをインストールする方法を示すものは何もありません。どんな助けでも大歓迎です!! (できるだけSVNなしで作業する方法が欲しいだけです-助けてください!)。