問題タブ [svn-merge]
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 - Pythonでsubprocess.Popenを呼び出すときに「システムは指定されたファイルを見つけることができません」
svnmerge.py を使用していくつかのファイルをマージしようとしています。内部では python を使用しており、使用するとエラーが発生します - 「システムは指定されたファイルを見つけることができません」。職場の同僚は、同じバージョンの svnmerge.py と python (2.5.2、具体的には r252:60911) を問題なく実行しています。
私の問題を説明するこのリンクを見つけました。そこで概説されていることを試して、Pythonがsvnを見つけることができることを確認しました(それは私のパスにあります):
ただし、svnmerge.py コードを見ると、python バージョン 2.4 以降では、別の実行パスをたどっていることに気付きました。os.popen4() を呼び出す代わりに、subprocess.Popen() を使用します。エラーを再現しようとしています:
今のところ、2.4 以降固有のコードはコメントアウトしていますが、適切な解決策を見つけたいと考えています。
明らかでない場合、私は完全な Python 初心者ですが、Google は役に立ちませんでした。ポインタはありますか?
svn - SVN でのマージ後に変更をコミットできません
TortoiseSVN を使用してプロジェクトの 2 つのブランチをマージした後、変更をコミットする際に問題が発生しました。
詳細は次のとおりです。
私が取り組んでいるプロジェクトのトランクにブランチをマージしました。
プロジェクトには、プロジェクトのサブディレクトリとしてsvn external (ライブラリも分岐) として、メイン リポジトリとメイン リポジトリに結合されたライブラリが含まれます。
変更をコミットしようとしたとき、TortoiseSVN は次のように言いました。
もちろん、クリーンアップは役に立ちませんでした。
プロジェクトディレクトリのsvn:externalキーワードは明確に定義されており、 libフォルダにも適切なバージョンのライブラリ (トランク バージョン) が含まれていました。
SVN サーバーとクライアントの両方が 1.5.x バージョンです (TortoiseSVN は 1.5.3.x)。
技術的な観点からは、プロジェクトとライブラリの両方が同じ SVN リポジトリ内のプロジェクトです。
何がうまくいかなかったのですか?
私は解決策を少しグーグルで調べていましたが、何も役に立たなかったので、2 つのステップで変更をコミットしようとしました。
- プロジェクト フォルダーからの変更をコミットする
- ライブラリ フォルダーからの変更をコミットする
これは問題なく進みました。
しかし、なぜ1回のコミットですべてをコミットできなかったのか、まだ疑問に思っています。
編集:
- (Ken G の回答後) TortoiseSVN 1.3.x -> 1.5.3.x のバージョンを修正しました。
svn - 特定のリビジョン セットをトランクからサブバージョンのブランチにマージするとどうなりますか?
トランクで 3 つの異なるファイル、たとえばリビジョン 40、45、47 に変更を加えた場合、リビジョン 15 以降変更されていないファイルがある場合、これらのリビジョンをブランチにマージするにはどうすればよいですか (リビジョン 30 で作成され、それ以降は変更されていません)。 ) それぞれのファイルのリビジョン 15 とリビジョン 40、45、および 47 の間の変更のみを取得するにはどうすればよいですか?
中間のリビジョンで他の変更が行われましたが (明らかに)、問題のファイルには影響しません。これらの変更をブランチに反映させたくありません。
mercurial - Mercurial で svnmerge ワークフローをどのように使用すればよいですか?
svnmerge は、特定のブランチからのいくつかの変更セットをブロックするのに役立ちます。これは Mercurial でどのように達成できますか?
svn - svnmerge とディレクトリに置き換えられたファイル
svnmerge.py を使用してリポジトリを管理しています。トランクでは、ファイル X がディレクトリに置き換えられました。これをブランチにマージしようとすると、次のエラーが発生します。
svn: 'X' を異なるタイプのノードに置き換えることはできません。「X」を追加する前に、削除をコミットし、親を更新する必要があります。svn: スプールされた REPORT 要求応答の読み取りエラー
ブランチで X を削除してコミットしましたが、同じエラーが続きます。考え?
svn - svnmerge とブランチ ブレーク トラッキングの名前を変更しますか?
ブランチの変更を追跡するためにを使用svnmerge
していて、ブランチの名前を ( を実行してsvn mv
) 変更したい場合、変更の追跡方法に問題が発生しますか? これは安全なことですか?
eclipse - コミット中のSVNマージの競合
Eclipse + Subversive プラグイン
SVN と同期していないディレクトリをコミットすると、次のメッセージが表示されます。
Eclipse ナビゲーター ビュー (右クリック > [更新] または [F5]) からプロジェクト全体を更新しようとしましたが、問題は解決しません。
この場合、何かできることはありますか?
svn - svnmerge と svn マージ
「svnmerge」(エイリアスsvnmerge.py、svn に付属の python スクリプト) と「svn merge」(Subversion 1.5 のネイティブ マージ トラッキング)の違いは何ですか? どれをお勧めしますか?
svn - SVN Merge はディスク容量を節約しますか?
SVN book では、差分化について「ファイルの新しいバージョンがリポジトリにコミットされるたびに、Subversion は以前のバージョン (実際にはいくつかの以前のバージョン) を新しいバージョンに対する差分としてエンコードします」と説明しています。
このcollab.net ブログ記事 には、「BDB (Berkeley Database) では、ファイルの履歴の各行の先頭にフルテキストがある」と書かれています。一方、「FSFS は逆方向にデルタを格納するため、古いバージョンを書き換える必要はありません。」
これが正しい場合、SVN (BDB を使用) はファイルの完全なコピーを各ブランチの HEAD に保存し、ブランチがマージされた場合にファイルのコピーを 1 つ削除しますか?