問題タブ [mergeinfo]
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 - サブフォルダで svn:mergeinfos を回避するには?
'svn:mergeinfo' プロパティをルート ブランチ フォルダーのみに保持しようとします。ただし、サブフォルダーに忍び寄るのが見られます。いくつかの考えられる原因を特定できました。
- リポジトリブラウザーでのフォルダーの移動
- IntelliJ でのパッケージの移動および/または名前の変更
- 古い svn クライアントの使用
これらのプロパティを誤って作成することを避けるために、すべきでないことのリストを誰か提供できますか?
私たちが使用しているツールは、IntelliJ 8 (まもなく 9)、Ankh、TortoiseSVN、および SlikSvn です。
svn - mergeinfo プロパティを使用して SVN へのコミットを防止するトリガーを設定するには?
ブランチのルート以外にsvn mergeinfo プロパティを作成することは避けたいと思います。トランクブランチとその他のブランチがあります。
svn トリガーについてまったく知らないと仮定すると、ブランチのルート以外への mergeinfo プロパティの追加を防ぐ pre-commit フックを設定するには、どのような手順に従う必要がありますか?
トランクはリポジトリのベース「/trunk」にあり、すべてのブランチは「/branches/foo」にあります。
svn - Svn:関連するmergeinfoを元に戻さずにファイルコンテンツの変更を元に戻しますか?
マージを行った場合、変更をコミットする前に、影響を受けるファイルの1 つにマージされた変更を実際には受け入れたくないことに気付く場合があります。だからあなたは例えば:
$ svn revert foo.c
ただし、これはこのファイルに関連するmergeinfoも元に戻すようです。したがって、その後のマージを行うと、まったく同じ変更が再びマージされます。
元に戻すのではなく、次のことができます。
$ svn cat foo.c > foo.c
しかし、これは物事を行う正しい方法のように思えませんか? 私が達成しようとしていることをより明確に示すものはありますか、つまり、「このファイルのマージを検討しますが、その内容は変更しないでください」と言うことはありますか?
svn - mergeinfo プロパティを無視する Subversion diff サマリーを取得するにはどうすればよいですか?
Subversion 1.6.5 クライアントと 1.5.4 サーバーがあります。また、作業コピーではなく、完全なリポジトリ パスの差分のみを気にします。
ブランチを比較すると、マージされたブランチは、 mergeinfoプロパティを除いてすでに同一として表示されます。
これは、実際の変更である可能性のあるものを探して変更を調べなければならない人間にとっては面倒です。
ただし、さまざまなもののマージ状態をチェックするために実行されるスクリプトがあり、mergeinfo プロパティにより、多くのものが同期されていないときに同期されていないと強調表示されるため、ユースケースではやや悪化します。
mergeinfo プロパティを無視するように差分サマリーを取得する方法はありますか?
svn - 単一のファイルのmergeinfoは常に触れられています
svn:mergeinfo
マージの通常の作業サイクルを通じて実行されるさまざまなマージタスクで常に新しいセットを取得しているように見えるファイルがいくつかあります。
ファイルは何ヶ月も変更されていませんが、mergeinfoは永続的に変更されています。ある時点でmergeinfoが混乱し、回復しなかったような気がします。mergeinfoをハックして修正するために何を探すべきかわからない、または単にすべてを削除して先に進む。
任意のヒント?
svn - ルート以外のディレクトリでsvn:mergeinfoを禁止するSvnpre-commitフック
開発者がルート以外のディレクトリにsvn:mergeinfoを設定できないようにするpre-commitフックを使用したいと思います。つまり、svn:mergeinfoは「trunk」や「branches/branchName」などのディレクトリにのみ設定できるようにしたいと思います。開発者は、ルートのサブディレクトリをマージターゲットとして使用することは適切ではないことを「思い出させる」必要がある場合があります(ここにリストされているベストプラクティスに従って)。誰かがそのようなフックスクリプトを持っているか、私がそれを見つけることができる場所を知っていますか?私はWindows環境にいるので、バッチまたはPowerShellが望ましいですが、何でも確かに役立ちます。
svn - トランクをSVNの機能ブランチにマージするときに、多数のsvn:mergeInfoを回避するにはどうすればよいですか?
トランクをブランチにマージすることにより、機能ブランチを最新の状態に保とうとしています。問題は、ブランチが作成されたときにそこにあり、ブランチとトランクの両方で変更されていない約2000個のファイルが、svn:mergeinfoだけで更新されていることです。プロジェクトはかなり大規模であり、SVN履歴への影響が非常に大きいため、これらのファイルへの唯一の変更はSVNによって行われるにもかかわらず、文字通り何千ものファイルが変更されたとマークされるため、マージコミット履歴が使用できなくなります。自体。
私が試してみました
- リポジトリと同じクライアントバージョンを使用する(1.5.2)
- 現在のクライアントバージョン1.6.10を使用
- ブランチの開始からヘッドまで、さまざまなリビジョンをマージします
これを試すとき、私はSVNのドキュメントを注意深く見ていました。したがって、ルールを破ってはなりません(たとえば、サブツリーの切り替え、ローカルコピーのクリーンアップなど)。
svn - 長い svn:mergeinfo SVN ディレクトリのプロパティ
トランクへのすべてのブランチの再統合により、トランクの svn:mergeinfo プロパティに余分なエントリが追加されたようです。これは SVN の動作ですか、それとも TortoiseSVN ですか?それについて悪いことはありますか? SVN がプロパティを機能のコア部分として使用しているとは思わなかったので、それを見て少し驚きました。
svn - svn:mergeinfo のエントリはいつ削除できますか?
私は数年間 TortoiseSVN を使用してきました。
いくつかのブランチが作成され、トランクにマージされてから削除されました。
削除されたブランチの例:
https://SvnServer/svn/MyProject/branches/branch1 https://SvnServer/svn/MyProject/branches/branch2 https://SvnServer/svn/MyProject/branches/branch3
トランク (https://SvnServer/svn/MyProject/trunk) の svn:mergeinfo には、削除されたブランチのマージ追跡情報がまだ含まれています。
svn:mergeinfo の例:
/branches/branch1:2106-2146
/branches/branch2:1983-2028
/branches/branch3:1698-1741
これらの情報はまだ必要ですか? それらを svn:mergeinfo プロパティから削除できますか?
c# - ログをスキャンするときに、無関係な mergeinfo の変更を無視するにはどうすればよいですか?
最近、関連する変更のスキャンに、関連のない mergeinfo の変更が含まれていました。ログ項目の変更が、繰り返しているフォルダー内の項目を変更しないこれらのリビジョンを無視したいと思います。
svnChangeItems を反復処理して mergeinfo プロパティを確認することはできますが、ログ項目をスキャンしているフォルダーにコミットされたファイルに対して ChangeItem が作成されたかどうかを確認するにはどうすればよいですか。ログ ビューアでこのオプションをオンにした場合を除いて、関連のない変更パスを非表示にするのと同じように、スキャンしていたフォルダが移動する前の変更を含む関連するリビジョンが表示されません。何か案は?